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

配置Office365与Laravel SMTP邮件服务后发送邮件报错550.5.7.708

解决Laravel配置Office365 SMTP时的550 5.7.708错误

嘿,这个550 5.7.708错误我之前在配置Laravel对接Office365 SMTP时也碰到过,结合你的情况,给你几个具体的排查和解决方向:

1. 修正SMTP端口配置

你的.env里用了MAIL_PORT=25,但很多云服务器提供商(比如AWS、阿里云等)会默认封禁25端口,而且Office365推荐的SMTP提交端口是587,这是最容易踩的坑。修改配置:

MAIL_PORT=587

保持MAIL_ENCRYPTION=tls不变,587端口和TLS是配套的正确组合。

2. 确认服务器出口IP是否正确添加到允许列表

有时候我们以为加了服务器的公网IP,但实际服务器可能通过NAT或者代理访问外网,出口IP和你看到的服务器IP不一致。你可以在服务器上执行以下命令确认实际出口IP:

curl ifconfig.me

确保这个IP已经添加到Office365 admin中心的连接过滤器允许IP列表里,并且等待5-10分钟让规则生效。

3. 检查Office365账户的SMTP AUTH权限

现在微软默认对新租户禁用了基本验证(包括SMTP AUTH),如果你的邮箱账户没有开启SMTP AUTH权限,即使IP在允许列表里也会被拒绝。你需要:

  • 登录Office365 admin中心,找到对应的用户邮箱
  • 进入邮箱的邮件流设置 -> 邮件应用程序
  • 确保SMTP AUTH选项是开启状态

如果是全局设置禁用了SMTP AUTH,你需要先在全局设置里允许,再开启单个用户的权限。

4. 排查Exchange Online的安全默认值

如果你的租户开启了安全默认值,它会阻止一些传统的验证方式(包括SMTP基本验证)。你可以在Office365 admin中心的Azure Active Directory -> 安全性 -> 安全默认值里检查是否开启,如果开启了,可以暂时关闭测试,或者配置OAuth2验证(不过Laravel配置OAuth2需要额外的包支持)。

5. 确认连接过滤器规则的优先级

有时候你添加了允许IP的规则,但如果有更高优先级的拒绝规则(比如阻止所有未知IP),会覆盖你的允许规则。进入连接过滤器页面,检查规则的顺序,确保允许IP的规则排在拒绝规则前面。

最后,修改完配置后,记得清除Laravel的配置缓存:

php artisan config:clear

然后再测试邮件发送。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:43:59