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

使用Java Mail连接IMAP邮箱报错:AuthenticationFailedException(Server Unavailable.15)

排查Java Mail IMAP认证失败(Server Unavailable. 15)的解决方案

我来帮你一步步排查这个问题——javax.mail.AuthenticationFailedException: Server Unavailable. 15这个错误通常和配置细节、账号权限或者网络限制有关,咱们从几个核心方向入手:

1. 补全IMAP SSL核心配置

你用了IMAPSSLStore,但要确保Java Mail的关键配置项没有遗漏,很多时候认证失败就是因为配置不全:

Properties props = System.getProperties();
// 替换成你的邮箱服务器地址,比如imap.gmail.com/imap.qq.com
props.setProperty("mail.imaps.host", "你的IMAP服务器地址");
props.setProperty("mail.imaps.port", "993"); // IMAP SSL默认端口是993,别写错
props.setProperty("mail.imaps.auth", "true"); // 必须开启认证开关
props.setProperty("mail.imaps.starttls.enable", "true"); // 部分服务器强制要求TLS

// 测试阶段可临时信任所有证书(正式环境请替换为指定证书)
props.setProperty("mail.imaps.ssl.trust", "*");

2. 确认账号认证方式匹配

现在绝大多数邮箱服务商都禁用了明文密码登录,别用账号原密码,改用应用专用密码/授权码:

  • Gmail:开启两步验证后,在安全设置里生成应用专用密码
  • QQ/163等国内邮箱:先在邮箱设置中开启IMAP服务,再生成对应授权码
  • 检查账号是否因多次登录失败被服务器临时锁定(去邮箱安全中心解锁)

3. 排查网络与服务器限制

  • 用telnet imap.你的服务器.com 993测试端口连通性,如果连接失败,说明网络屏蔽了993端口,需要联系运维开放
  • 企业邮箱通常会限制IP访问,把你的应用服务器IP加入邮箱白名单
  • 部分服务器会因负载过高返回“Server Unavailable”,可以换个时间重试

4. 开启Java Mail调试日志定位细节

开启调试日志能看到IMAP交互的完整过程,比单纯的错误提示有用得多:

props.setProperty("mail.debug", "true");

运行程序后,查看控制台输出的IMAP命令日志,服务器往往会返回更具体的错误原因(比如“认证方式不支持”“凭证无效”)

5. 升级Java Mail版本(可选但推荐)

你用的Java Mail 1.5.6是2016年的旧版本,虽然和Java 8兼容,但对新的SSL协议、服务器特性支持有限。建议升级到1.6.2版本(Maven依赖如下),很多老版本的兼容性问题会直接解决:

<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
    <version>1.6.2</version>
</dependency>

6. 检查代码中的认证逻辑

确保你正确调用了connect方法,并且传入的是正确的凭证:

// 这里要用应用专用密码/授权码,不是账号原密码
store.connect("你的邮箱账号", "应用专用密码/授权码");

别遗漏connect调用,也别把账号和密码的顺序搞反了

补充:错误码15是服务器自定义的错误码,不同服务商的含义略有差异——可能是认证方式不匹配、服务器临时过载,也可能是IP被限制,所以开启调试日志是最直接的排查手段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:32:22