使用带有 Laravel 的 Outlook / Office365 发送电子邮件 - 无法在 SMTP 服务器上进行身份验证

Posted

技术标签:

【中文标题】使用带有 Laravel 的 Outlook / Office365 发送电子邮件 - 无法在 SMTP 服务器上进行身份验证【英文标题】:Sending Email using Outlook / Office365 with Laravel - Failed to authenticate on SMTP server 【发布时间】:2021-03-16 02:15:15 【问题描述】:

我正在尝试使用 Office365/Outlook 通过我们的 Laravel 应用发送电子邮件。它与 gmail 配合得很好,但是当我切换到 Office365 时,出现以下错误:

无法使用用户名在 SMTP 服务器上进行身份验证 “xxxxxx@companyname.co”使用 2 个可能的身份验证器。身份验证器 LOGIN 返回了预期的响应代码 235,但得到了代码“535”,其中 消息“535 5.7.3 身份验证不成功 [HKAPR03CA0035.apcprd03.prod.outlook.com] ”。身份验证器 XOAUTH2 返回了预期的响应代码 235,但得到了代码“535”,消息为“535 5.7.3 身份验证不成功” [HKAPR03CA0035.apcprd03.prod.outlook.com] ”。

这是我的 .env 文件中的内容:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.office365.com
MAIL_PORT=587
MAIL_USERNAME=xxxxxx@companyname.co
MAIL_PASSWORD=emailPassword
MAIL_ENCRYPTION=tls
MAIL_SMTPAuth=true
MAIL_FROM_NAME=CompanyName
MAIL_FROM_ADDRESS=xxxxxx@companyname.co

*注意:这不是真实的用户名、密码和发件人地址。

我也尝试将端口更改为 25,但我得到了同样的错误

我正在使用我公司的专用支持电子邮件。根据我与我们的 IT 部门的确认,支持电子邮件没有 2 因素身份验证,并且还通过 Office365 的管理面板启用了“Authenticated SMTP”设置,所以我不知道问题出在哪里。

【问题讨论】:

【参考方案1】:

我遇到了同样的问题,我致电 Microsoft 支持。他们指示我更改 Microsoft Azure 中的一些安全属性。 Here is my answer.

【讨论】:

【参考方案2】:

请记住,对于新租户,Microsoft 会关闭 SMTP 身份验证,并且需要启用它。请参见 Enable or disable authenticated client SMTP submission (SMTP AUTH) in Exchange Online 也 What are security defaults?

【讨论】:

以上是关于使用带有 Laravel 的 Outlook / Office365 发送电子邮件 - 无法在 SMTP 服务器上进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章

已发送邮件不显示带有自定义 Outlook 消息表单的邮件跟踪

如何使用 Outlook 2010(无 smtp)和 python 发送带有嵌入图像(不是附件)的 HTML 格式电子邮件

Outlook 2007 的解决方法,用于在带有边距的图像周围环绕文本?

带有 FormRegion 的 VSTO Outlook 约会 - 删除收件人时保存异常

VBA 在 Outlook 中粘贴带有图表的特定 excel 范围

如何将带有图像(base 64 字符串)的电子邮件中的 html 发送到 Outlook、gmail 等