odesílání mailů přes smtpmailer i sendmailer

jarda256
Člen | 130
+
0
-

Ahoj chtěl bych se zeptat, jestli je nějaký problém ve využívání sendmaileru i smtp maileru zároveň. Lidi kterým měl přijít mail přes sendmailer, tak občas nedorazil. Lze to nějak zjistit, jestli byl mail úspěšný. Případně nevadí použití obojího.

V configu smtp nemám…mám to pouze takto.

Díky za rady

class MailSender
{

	/** @var SmtpMailer */
	protected $smtpMailer;

	/** @var  SendmailMailer */
	protected $sendMailer;

	/** @var EntityManager */
	protected $em;

	/** @var LinkGenerator */
	private $linkGenerator;

	/** @var ILatteFactory */
	private $latteFactory;

	public function __construct(EntityManager $em, LinkGenerator $lg, ILatteFactory $latteFactory)
	{
		$this->em = $em;
		$this->linkGenerator = $lg;
		$this->latteFactory = $latteFactory;
		$this->smtpMailer = new SmtpMailer([
			'host' => 'smtp.mailgun.org',
			'username' => 'user',
			'password' => 'pass',
			'secure' => 'ssl',
		]);
		$this->sendMailer = new SendmailMailer();
	}

	public function sendEmail(Message $message, $template, $variables, $useQueue = TRUE)
	{
		$latte = $this->latteFactory->create();
		UIMacros::install($latte->getCompiler());
		$latte->addProvider('uiControl', $this->linkGenerator);
		$html = $latte->renderToString(__DIR__ . '/' . $template, [
			'variables' => $variables,
		]);
		$message
			->setFrom('info@domain.cz', 'Domain')
			->setHtmlBody($html);
		if ($_SERVER['REMOTE_ADDR'] !== '127.0.0.1') {
			if ($useQueue === TRUE) {
				try {
					$this->smtpMailer->send($message);
				} catch (SmtpException $e) {
					$this->sendMailer->send($message);
				}
			} else {
				$this->sendMailer->send($message);
			}
		}
	}
}