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

Spring Boot集成Java Mailer发送邮件时出现连接超时错误求助

Gmail SMTP连接超时问题排查方案

错误回顾

"Mail server connection failed. Failed messages: org.eclipse.angus.mail.util.MailConnectException: Couldn't connect to host, port: smtp.gmail.com, 587; timeout -1;\n nested exception is:\n\tjava.net.ConnectException: Connection timed out: connect".

以下是针对该问题的排查步骤:


1. 网络连通性验证

  • 先确认运行环境能访问Gmail的SMTP服务:
    • 执行命令测试端口连通性:telnet smtp.gmail.com 587,如果无法连接,说明存在网络限制。
    • 可能原因:本地防火墙拦截、公司网络屏蔽587端口、运营商限制,需联系网络管理员开放端口,或配置代理。
    • 若需代理,在application.yml中添加代理配置:
      spring:
        mail:
          properties:
            mail.smtp.proxy.host: 代理IP
            mail.smtp.proxy.port: 代理端口
            # 代理需认证时添加
            mail.smtp.proxy.user: 代理用户名
            mail.smtp.proxy.password: 代理密码
      

2. Gmail账号权限配置

Gmail对第三方邮件客户端有严格的权限限制,需按以下步骤配置:

  • 开启两步验证:进入Google账号安全设置,启用两步验证。
  • 创建应用专用密码:两步验证开启后,在安全设置中找到“应用专用密码”,生成一个用于邮件服务的密码,替换配置中的password字段(原账号密码无法用于第三方客户端)。
  • 若未开启两步验证,可尝试临时开启“不太安全的应用访问”(Google已逐步淘汰该选项,优先推荐应用专用密码)。

3. 配置文件修正

检查application.yml的格式与参数:

  • 确保配置层级正确,mail节点属于spring节点,修正后的完整配置:
    spring:
      mail:
        host: smtp.gmail.com
        username: myemail@gmail.com
        password: 生成的应用专用密码
        port: 587
        protocol: smtp
        properties:
          mail.transport.protocol: smtp
          mail.smtp.auth: true
          mail.smtp.starttls.enable: true
          # 添加超时配置,避免无限等待
          mail.smtp.connectiontimeout: 5000
          mail.smtp.timeout: 5000
          mail.smtp.writetimeout: 5000
    
  • 移除properties中key的引号,Spring可直接识别无引号的配置项。

4. 代码与注入验证

  • 代码逻辑无明显问题,可添加初始化日志确认配置是否正确加载(注意不要打印密码):
    @PostConstruct
    public void verifyMailConfig() {
        Properties props = _javaMailSender.getJavaMailProperties();
        log.info("Loaded SMTP host: {}", props.getProperty("mail.smtp.host"));
        log.info("Loaded SMTP port: {}", props.getProperty("mail.smtp.port"));
        log.info("Sender email: {}", sender);
    }
    
  • 确保JavaMailSender由Spring自动注入,没有自定义配置覆盖默认的邮件发送器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 23:46:16