You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 8使用Office365发信提示SMTP服务器认证失败如何解决?

Laravel 8 对接Office365 SMTP 535认证错误解决方案

核心原因说明

你已经确认账号密码正确的前提下,出现535认证失败基本是Office365账号的安全配置限制、或者Laravel邮件配置的隐性参数缺失导致的,按以下顺序排查即可:

排查步骤

1. 优先检查Office365账号侧配置

  • 确认该SMTP账号没有开启多重身份验证(MFA),如果开启了MFA,必须创建应用专用密码代替普通账号密码来做SMTP认证
  • 检查Office365 admin后台的SMTP认证开关:进入Microsoft 365 管理中心→用户→活跃用户→选中对应SMTP账号→邮件→管理电子邮件应用→确认「已验证的SMTP」选项是勾选状态
  • 确认账号没有被限制使用SMTP提交,也没有触发临时安全风控冻结

2. 修正Laravel配置缺失

你当前的.env配置缺少Office365要求的特定认证参数,需要先修改config/mail.php文件,找到smtp mailer的配置段,新增auth_mode配置:

'mailers' => [
    'smtp' => [
        'transport' => 'smtp',
        'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
        'port' => env('MAIL_PORT', 587),
        'encryption' => env('MAIL_ENCRYPTION', 'tls'),
        'username' => env('MAIL_USERNAME'),
        'password' => env('MAIL_PASSWORD'),
        'timeout' => null,
        'auth_mode' => 'login', // 新增这行,强制使用LOGIN认证,跳过Office365不兼容的XOAUTH2认证
    ],
],

3. 配置更新后刷新缓存

执行Laravel配置清理命令,确保新配置生效:

php artisan config:clear
php artisan cache:clear

验证

配置调整完成后重新测试忘记密码发信功能即可正常发送。

内容的提问来源于stack exchange,提问作者Shimul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 18:54:05