【问题标题】:Using Swift Mailer with smtp on Symfony 4在 Symfony 4 上使用 Swift Mailer 和 smtp
【发布时间】:2019-05-22 13:06:10
【问题描述】:

我在 Symfony 4 上安装了 Swift Mailer 来为新用户发送注册邮件。我注意到当我使用我的 Gmail 帐户发送电子邮件时它工作正常,但当我使用我的 Outlook 时它不起作用。

所以在阅读了documentation 之后,我像这样在我的 .env 文件中设置了 MAILER_URL

>  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' }

代码不会引发异常,但电子邮件永远不会发送给用户。

有人知道如何解决这个问题吗?

【问题讨论】:

    标签: symfony smtp symfony4 swiftmailer


    【解决方案1】:

    将 send 函数放入 try 和 catch 块中,你肯定会得到任何线索:

    try {
       $this->mailer->send($message);
    
     } catch (\Swift_RfcComplianceException $e) {
    
                echo "\nException :: " . $e->getMessage();
            }
    
    

    【讨论】:

    • 这不起作用,因为代码不会引发异常
    猜你喜欢
    • 2019-11-30
    • 2019-05-25
    • 1970-01-01
    • 2022-10-06
    • 2011-04-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-19
    相关资源
    最近更新 更多