docker - 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)收到(错误)响应的事实让我认为这不是端口问题,因为电子邮件确实到达了提供商。
有任何想法吗?我很坚持这一点。
谢谢你。
解决方案
这是一个outlook365问题,您的身份验证帐户与From
地址不同,除非您明确授予这样做的权限,否则这是禁止的。
From
您可以使用与您用于身份验证的帐户相同的地址轻松解决此问题。否则,您需要授予SendAs
权限或SendOnBehalf
.
鉴于您的示例,您需要设置ex@example.com
邮箱的权限,并将其授予authuser@example.com
您在env
.
您需要对尽可能多的邮箱执行此操作,authuser
以便能够发送邮件。
要检查配置,您可以访问 Office 365并尝试在撰写新电子邮件时authuser
更改地址。From
您应该看到已授予该用户权限的所有地址。