Использование Swift Mailer с smtp на Symfony 4 - PullRequest
0 голосов
/ 22 мая 2019

Я установил Swift Mailer на Symfony 4, чтобы отправить регистрационное письмо новым пользователям.Что я заметил, так это то, что он отлично работает, когда я использую свою учетную запись Gmail для отправки электронных писем, но не работает, когда я использую свой Outlook.

Поэтому после прочтения документации я установилMAILER_URL в моем файле .env, подобном этому

>  MAILER_URL=smtp://localhost:25?encryption=ssl&auth_mode=login&username=*****%40live.com&password=******

Я также использовал:

>  MAILER_URL=smtp://smtp-mail.outlook.com:25/encryption=ssl&auth_mode=login&username=*******%40live.com&password=********

Я изменил порт с 25 на 587 на 465, и ни один из них не работал.

Это метод, в котором я вызываю почтовую программу:

public function sendMail($subject, $fromEmail, $toEmail, $emailTemplate, $argumentsArray, $emailType, $imgPath)
{
    $message = $this->setBasicEmailMessage($subject, $fromEmail, $emailTemplate, $argumentsArray, $emailType, $imgPath);
    $message->setTo($toEmail);
    $this->mailer->send($message);
}


private function setBasicEmailMessage($subject, $fromEmail, $emailTemplate, $argumentsArray, $emailType, $imgPath)
{
    $message = (new \Swift_Message($subject))->setFrom($fromEmail);
    $img = $message->embed(\Swift_Image::fromPath($imgPath));
    $argumentsArray['img'] = $img;
    $message->setBody(
        $this->templating->render(
            $emailTemplate,
            $argumentsArray
        ),
        $emailType
    );

    return $message;
}

А это мой swiftmailer.yaml:

swiftmailer:
    url: '%env(MAILER_URL)%'
    spool: { type: 'memory' }

Код не вызывает исключение, ноэлектронное письмо никогда не доставляется пользователям.

У кого-нибудь есть идеи, как это исправить?

1 Ответ

1 голос
/ 23 мая 2019

Поместите функцию отправки в блок try и catch, вы определенно получите любую подсказку:

try {
   $this->mailer->send($message);

 } catch (\Swift_RfcComplianceException $e) {

            echo "\nException :: " . $e->getMessage();
        }

...