我在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' }
代码不会引发异常,但是电子邮件永远不会将其发送给用户。
有人知道如何解决此问题吗?
答案 0 :(得分:0)
在try and catch块中放置send函数,您肯定会得到任何线索:
try {
$this->mailer->send($message);
} catch (\Swift_RfcComplianceException $e) {
echo "\nException :: " . $e->getMessage();
}