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

Java Mail使用IMAPS协议连接报MessagingException异常如何解决

Java Mail 邮件连接异常排查解决

核心错误定位

你收到的220 * ESMTP MAIL Service ready是SMTP服务的握手响应,说明你配置里填写的port参数是SMTP服务端口,而非IMAP/IMAPS服务的端口,协议和端口不匹配是导致两类异常的根本原因。

排查步骤

  • 首先核对你所用邮箱服务的官方IMAP端口参数:
    • 加密IMAPS默认端口为993
    • 非加密IMAP(支持STARTTLS升级加密)默认端口为143
      请勿错填为SMTP的25、465、587端口或者POP3的110、995端口
  • 其次清理配置冲突:你当前的配置同时开启了SSLSocketFactory、ssl.enable、starttls.enable三类加密配置,属于冗余冲突配置,不同版本Java Mail对冲突配置的处理逻辑不一致,易触发异常,需根据端口类型保留对应配置即可。

修正后参考配置

方案1:使用IMAPS 993隐式加密端口(推荐)

properties.setProperty("mail.imaps.host", host);
properties.setProperty("mail.imaps.port", "993");

properties.setProperty("mail.imaps.ssl.enable", "true");
properties.setProperty("mail.imaps.ssl.trust", "*");
properties.setProperty("mail.store.protocol", "imaps");
// Debug
properties.setProperty("mail.debug", "true");

方案2:使用IMAP 143端口+STARTTLS加密

properties.setProperty("mail.imap.host", host);
properties.setProperty("mail.imap.port", "143");

properties.setProperty("mail.imap.starttls.enable", "true");
properties.setProperty("mail.imap.ssl.trust", "*");
properties.setProperty("mail.store.protocol", "imap");
// Debug
properties.setProperty("mail.debug", "true");

验证方法

调整配置后启动程序,查看debug日志:如果服务端返回的首条响应是* OK ... IMAP4rev1 ...格式,说明端口匹配正确;如果仍然返回ESMTP相关响应,需联系邮箱服务商确认正确的IMAP接入端口。

内容的提问来源于stack exchange,提问作者Bi.Yo.Son

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:06:03