Symfony 发送邮件错误(Mailer 和 SwiftMailer)
Symfony send mail error (Mailer and 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 emails were successfully sent.
过了一会儿我得到:
ERROR [app] Exception occurred while flushing email queue: Expected response code 250 but got code "554", with message "554 5.2.0 STOREDRV.Submission.Exception:SendAsDeniedException.MapiExceptionSendAsDenied; Failed to process message due to a permanent exception with message Cannot submit message. [Hostname=XXXX.eurprd04.prod.outlook.com]
在 Mailer 和 SwiftMailer 中,其他电子邮件提供商也会发生这种情况。
我从服务提供商(本例中为 Outlook)收到(错误)响应这一事实让我认为这不是端口问题,因为电子邮件确实到达了提供商。
有什么想法吗?我完全坚持这一点。
谢谢。
这是outlook365的问题,你的认证账号和From
地址不一样,除非你明确授权,否则这是被禁止的。
您可以使用与您用于验证的帐户相同的 From
地址轻松解决此问题。否则,您将需要 grant SendAs
permission 或 SendOnBehalf
。
根据您的示例,您需要设置 ex@example.com
邮箱的权限,并按照 env
.
中的配置将其授予 authuser@example.com
用户
您需要对尽可能多的邮箱执行此操作,以便 authuser
能够发送邮件。
要检查配置,您可以作为 authuser
访问 Office 365,并在撰写新电子邮件时尝试更改 From
地址。您应该会看到已授予该用户权限的所有地址。
我正在尝试在我的 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 emails were successfully sent.
过了一会儿我得到:
ERROR [app] Exception occurred while flushing email queue: Expected response code 250 but got code "554", with message "554 5.2.0 STOREDRV.Submission.Exception:SendAsDeniedException.MapiExceptionSendAsDenied; Failed to process message due to a permanent exception with message Cannot submit message. [Hostname=XXXX.eurprd04.prod.outlook.com]
在 Mailer 和 SwiftMailer 中,其他电子邮件提供商也会发生这种情况。
我从服务提供商(本例中为 Outlook)收到(错误)响应这一事实让我认为这不是端口问题,因为电子邮件确实到达了提供商。
有什么想法吗?我完全坚持这一点。
谢谢。
这是outlook365的问题,你的认证账号和From
地址不一样,除非你明确授权,否则这是被禁止的。
您可以使用与您用于验证的帐户相同的 From
地址轻松解决此问题。否则,您将需要 grant SendAs
permission 或 SendOnBehalf
。
根据您的示例,您需要设置 ex@example.com
邮箱的权限,并按照 env
.
authuser@example.com
用户
您需要对尽可能多的邮箱执行此操作,以便 authuser
能够发送邮件。
要检查配置,您可以作为 authuser
访问 Office 365,并在撰写新电子邮件时尝试更改 From
地址。您应该会看到已授予该用户权限的所有地址。