Java应用调用Gmail SMTP发邮件遇535-5.7.8认证失败求助
Gmail SMTP 认证失败(535-5.7.8)排查指南
以下是你遇到的javax.mail.AuthenticationFailedException: 535-5.7.8错误的常见排查方向:
App Password 细节排查
- 必须是开启MFA后生成的App Password,未开启MFA的账户无法创建有效密码
- 生成时选择的应用类型需为「Mail」,设备类型选「Other (Custom name)」即可,选错类型大概率会导致密码无效
- 复制密码时要完整拿16位字符,别带空格,也别多/少复制一位,很多时候都是复制环节出了小问题
Google账户安全拦截
- 登录Gmail网页版,查看安全通知里有没有「可疑登录尝试」的提醒,得手动允许该请求才能继续使用
- 进入账户「安全性」页面,确认没有开启额外登录限制(比如仅允许信任设备登录),这类限制会直接拦截Java应用的请求
Java邮件配置参数检查
- SMTP服务器地址必须是
smtp.gmail.com,端口用587(TLS模式)或者465(SSL模式),别写错 - 代码里必须加上这两个关键配置:
props.put("mail.smtp.auth", "true"); props.put("mail.smtp.starttls.enable", "true"); // 587端口必须开启,465端口可忽略 - 用户名得填完整的邮箱地址(比如
xxx@gmail.com),只填前缀绝对不行
- SMTP服务器地址必须是
网络环境问题
- 要是在公司内网或使用代理,防火墙可能会拦截SMTP请求,换个手机热点之类的公共网络试试
- 本地IP若被Google标记为可疑也会被拒绝,换个IP就能验证是不是这个问题
Google账户状态检查
- 登录Gmail网页版,确认账户没被暂停,也没有未处理的安全验证提示
- 若账户近期有异常活动,Google可能临时限制SMTP服务,需完成账户验证才能解除限制
内容的提问来源于stack exchange,提问作者Test Automation
相关产品推荐
相关产品推荐

