首页 > 解决方案 > Symfony 发送邮件错误(Mailer 和 SwiftMailer)

问题描述

我正在尝试在我的 Symfony 4.4 应用程序中发送电子邮件,我尝试了 Mailer 和 SwiftMailer。

该应用程序在 Docker 容器中运行,共享端口 80 和 3306。

如果我使用 SwiftMailer 尝试控制台命令,我会得到:

bin/console swiftmailer:email:send --from=ex@example.com --to=ex@example.com --subject=hi --body=hi

[OK] 1 封邮件已成功发送。

过了一会儿,我得到:

错误 [app] 刷新电子邮件队列时发生异常:预期响应代码为 250,但得到代码“554”,消息为“554 5.2.0 STOREDRV.Submission.Exception:SendAsDeniedException.MapiExceptionSendAsDenied;由于消息的永久异常而无法处理消息无法提交消息。[主机名=XXXX.eurprd04.prod.outlook.com]

在 Mailer 和 SwiftMailer 中,其他电子邮件提供商也会发生这种情况。

我从服务提供商(在本例中为 Outlook)收到(错误)响应的事实让我认为这不是端口问题,因为电子邮件确实到达了提供商。

有任何想法吗?我很坚持这一点。

谢谢你。

标签: dockersymfonyswiftmailermailer

解决方案


这是一个outlook365问题,您的身份验证帐户与From地址不同,除非您明确授予这样做的权限,否则这是禁止的。

From您可以使用与您用于身份验证的帐户相同的地址轻松解决此问题。否则,您需要授予SendAs权限SendOnBehalf.

鉴于您的示例,您需要设置ex@example.com邮箱的权限,并将其授予authuser@example.com您在env.

您需要对尽可能多的邮箱执行此操作,authuser以便能够发送邮件。

要检查配置,您可以访问 Office 365并尝试在撰写新电子邮件时authuser更改地址。From您应该看到已授予该用户权限的所有地址。


推荐阅读