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

Spring Boot集成Gmail发邮件连smtp.gmail.com:25超时如何解决

问题根因

异常日志明确显示程序连接smtp.gmail.com:25超时,核心原因有三点:

  • Gmail官方早已下线25端口的非加密SMTP服务,目前仅支持465(SSL加密)、587(TLS加密)两个对外服务端口
  • 家庭宽带运营商、云服务厂商默认封禁25出站端口,用于防范垃圾邮件滥发
  • 独立项目测试时邮件配置正确可正常运行,集成到主项目后邮件配置缺失、或被自定义Bean配置覆盖,导致JavaMailSender走了默认的25端口配置,最终连接超时。
修复步骤
  • 补全正确的邮件配置
    打开项目的配置文件(application.properties/application.yml),替换为Gmail官方推荐的加密连接参数,禁止使用25端口:
    properties 配置示例:
    spring.mail.host=smtp.gmail.com
    spring.mail.port=465
    spring.mail.username=你的Gmail邮箱账号
    # 注意:此处需填写Gmail两步验证生成的16位应用专用密码,不能使用邮箱登录密码
    spring.mail.password=你的应用专用密码
    spring.mail.properties.mail.smtp.auth=true
    spring.mail.properties.mail.smtp.ssl.enable=true
    spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
    spring.mail.properties.mail.smtp.socketFactory.port=465
    
    yml 配置示例:
    spring:
      mail:
        host: smtp.gmail.com
        port: 465
        username: 你的Gmail邮箱账号
        password: 你的应用专用密码
        properties:
          mail:
            smtp:
              auth: true
              ssl:
                enable: true
              socketFactory:
                class: javax.net.ssl.SSLSocketFactory
                port: 465
    
  • 排查配置冲突
    扫描项目中是否存在手动注册JavaMailSender Bean的配置类,若存在自定义配置,核对端口、加密参数是否和上述配置一致,无特殊需求可直接删除自定义邮件配置,统一使用配置文件参数即可,避免配置覆盖。
  • 网络连通性校验
    在项目运行环境执行telnet smtp.gmail.com 465命令,若端口可正常连通说明网络层无拦截;若连接失败,检查本地防火墙、服务器安全组出站规则,放行465端口访问权限。
  • 账号权限配置
    Gmail已关闭低安全性应用访问入口,必须先开启对应账号的两步验证,再生成应用专用密码用于SMTP认证,直接使用账号登录密码会触发认证失败。
验证方式

重启Spring Boot项目后调用注册接口,日志正常打印Simple Email sent、目标邮箱成功收到注册邮件即为修复完成。


内容的提问来源于stack exchange,提问作者Nitin Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 17:27:23