部署至AWS EC2的Spring应用发送Gmail失败报认证错误该如何解决?
问题原因分析
- Gmail安全策略限制:目前普通Gmail账号已不支持第三方应用直接使用账号登录密码访问SMTP服务,本地运行正常是因为你的本地IP属于账号常用登录IP,被Gmail临时放行,而AWS EC2的公网IP属于陌生登录地址,直接触发安全拦截导致认证失败。
- 配置项不匹配:你当前配置的邮件协议为
smtp,但认证配置项写的是mail.smtps.auth: true,属性前缀和协议不匹配会导致认证配置不生效,也可能引发认证错误。 - AWS网络配置问题:需确认EC2实例的安全组、网络ACL是否放开了587端口的TCP出站流量,若流量被拦截也可能返回认证失败类报错。
解决方法
- 修正配置错误:将配置中的
mail.smtps.auth: true调整为mail.smtp.auth: true,和协议配置保持一致。 - 优先使用官方推荐的认证方式:开启Gmail账号的两步验证,生成专属的应用专用密码,替换配置中使用的普通账号密码,该方式不受登录IP限制,稳定性更高。
- 临时放行方案:若不开启两步验证,可登录Gmail账号的安全中心,在「最近安全活动」中找到来自EC2 IP的拦截记录,手动标记为可信操作,不过该方案仅临时生效,后续更换EC2 IP后会再次触发拦截。
- 网络校验:确认EC2实例的安全组出站规则允许TCP 587端口的访问请求,网络ACL没有对应端口的出站限制。
内容的提问来源于stack exchange,提问作者user15076617
相关产品推荐
相关产品推荐

