SMTP 发信报错'535 5.7.8 Authentication failed'或'535 5.7.139 Authentication unsuccessful',认证总是失败怎么排查?

41 SMTP 发信报错"535 5.7.8 Authentication failed"或"535 5.7.139 Authentication unsuccessful",认证总是失败怎么排查?
原因

SMTP 用户名或密码未通过服务器验证。最常见 6 种原因:(1) 使用了网页登录密码而非 SMTP 授权码/客户端专用密码;(2) 用户名格式错误;(3) 邮箱开启了二次验证但没生成应用专用密码;(4) 服务器地址或端口/加密方式配错;(5) 账户因异常活动被临时锁定;(6) IP/客户端被服务商标记为不安全。

操作

1. Gmail:需开启二次验证 → 在 Google 账户 → 安全性 → App passwords 生成应用专用密码。
2. QQ 邮箱:设置 → 账户 → POP3/SMTP 服务 → 生成授权码。
3. 常见免费邮箱:设置 → POP3/SMTP/IMAP → 客户端授权密码。
4. 企业邮箱:部分服务 SMTP 密码与网页登录密码独立设置。
5. 确认用户名:大多数服务需要完整邮箱地址(如 user@gmail.com),少数只要 @ 前部分。
6. 确认端口和加密:SMTP SSL 用 465、STARTTLS 用 587、无加密用 25。
7. 如多次失败账户被锁:检查邮箱是否有安全提醒邮件,按提示解锁。
8. 测试连接:openssl s_client -connect smtp.xxx.com:465 -crlf 然后 EHLO test AUTH LOGIN 手工测试。

参考:RFC 4954 (SMTP AUTH) §4 · Gmail App Passwords · 邮件系统帮助文档