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

Java实现企业邮箱发信到Gmail等服务器连接超时报错如何解决

错误根因与修复方案

你触发的com.sun.mail.util.MailConnectException: Couldn't connect to host连接超时错误,结合提供的代码,修复方案如下:

  • 加密方式与端口不匹配
    465是SMTP SSL加密专用端口,你代码中配置的mail.smtp.starttls.enable = "true"对应STARTTLS加密,适配端口为587,两者不兼容,二选一修改即可:
    方案1:保留465端口,替换加密配置
    // 删除原有mail.smtp.starttls.enable配置,新增以下配置
    properties.put("mail.smtp.ssl.enable", "true");
    properties.put("mail.smtp.port", "465");
    
    方案2:保留STARTTLS加密,修改端口为587
    properties.put("mail.smtp.starttls.enable", "true");
    properties.put("mail.smtp.port", "587");
    
  • SMTP地址校验
    确认ABC企业邮箱对外发信SMTP地址确实为smtp.webmail.abc.com,可通过企业邮箱设置页的发信服务器信息核对,多数企业邮箱SMTP地址为smtp.abc.com,无webmail前缀。
  • 网络连通性验证
    企业内网通常有防火墙出口限制,先在运行代码的设备终端执行命令telnet smtp.webmail.abc.com 对应端口验证连通性,如果连接失败,联系企业IT开放对应SMTP端口的出口权限,或确认是否需要配置企业网络代理。
  • 代码优化
    你已经在Properties中配置了host、用户名、密码,调用transport.connect()时无需重复传参,直接调用无参方法即可;同时可添加超时配置避免无限制等待:
    // 新增超时配置,单位为毫秒
    properties.put("mail.smtp.connectiontimeout", "5000");
    properties.put("mail.smtp.timeout", "10000");
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 02:54:03