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

使用Gmail SMTP的Spring Mail Sender认证失败如何解决?

解决Spring Mail连接Gmail的AuthenticationFailedException问题

看到你遇到的javax.mail.AuthenticationFailedException,这是Gmail当前的安全机制导致的——它默认阻止第三方应用直接使用账号密码登录SMTP服务,下面是具体的解决步骤:

一、优先推荐:使用Google App Password(最安全)

Google要求开启两步验证的账号使用应用专用密码登录第三方邮件客户端,步骤如下:

  1. 先确认你的Google账号已开启两步验证(未开启的话,先去账号安全设置里完成开启)
  2. 登录Google账号后进入安全设置页面,找到「App Passwords」选项(仅开启两步验证后可见)
  3. 在「Select app」中选择「Mail」,「Select device」中选择「Other (custom name)」,随便填写一个标识名比如「Spring Mail App」
  4. 点击生成按钮,会得到一个16位无空格的密码,将这个密码替换你application.properties里的spring.mail.password值

二、检查配置与代码细节

1. 确认application.properties配置正确

你的现有配置框架没问题,只需替换密码,同时可以调整格式让配置更清晰:

spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=你的Gmail账号@gmail.com
spring.mail.password=刚才生成的16位App Password
# 邮件相关属性
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true

2. 保证发件人地址与配置的username一致

你的sendMail方法中传入的from参数必须和spring.mail.username完全匹配,Gmail不允许随意自定义发件人,否则也可能触发认证失败。

三、备选方案(安全性低,不推荐)

如果你的账号未开启两步验证,可临时开启「不太安全的应用访问」(Google已逐步淘汰该选项):

  • 登录Google账号安全设置,找到「不太安全的应用访问」并开启
  • 之后使用你的普通账号密码作为spring.mail.password即可,但此方法会降低账号安全性,不建议长期使用

四、额外检查点

  • 先登录网页版Gmail确认账号未被锁定,或无需完成额外安全验证(若提示异常登录,先通过网页完成验证)
  • 确保你的网络环境可正常访问Google服务,部分地区可能需要特殊网络设置

按上述步骤调整后,重新运行Spring Boot应用,应该就能解决认证失败的问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 09:04:09