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

Office365 POP3 over SSL连接失败:AuthenticationFailedException排查

问题描述

通过本地配置了SSL加密的Office365 POP3服务器下载邮件附件时连接失败,抛出错误:

AuthenticationFailedException: Logon failure: unknown user name and bad password.

已确认邮箱账号与密码正确,且该功能此前可正常使用,相关配置代码如下:

// ready to connect server
Properties props = new Properties();
props.setProperty("mail.store.protocol", "pop3");
props.setProperty("mail.pop3.port", port);
props.setProperty("mail.pop3.host", host);

props.setProperty("mail.pop3.socketFactory.fallback", "false");
props.setProperty("mail.pop3.socketFactory.port", port);
props.setProperty("mail.pop3.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

// create session
Session session = Session.getInstance(props);

store = session.getStore("pop3");
store.connect(emailAddress, password);

// retrieve
folder = store.getFolder("INBOX");
//inbox
folder.open(Folder.READ_WRITE);
遗漏的配置及修复方案
  • 启用POP3强制认证:Office365 POP3服务器要求必须开启认证才能登录,当前代码未配置该属性,需添加:
    props.setProperty("mail.pop3.auth", "true");
    
  • 替换旧版SSL配置为官方推荐方式:原代码使用的socketFactory是JavaMail旧版SSL配置逻辑,现在推荐使用更简洁的SSL启用配置,可替换原socketFactory相关属性为:
    props.setProperty("mail.pop3.ssl.enable", "true");
    
    同时需确保端口设置为Office365 POP3 SSL标准端口995,服务器地址为outlook.office365.com。
  • 适配多因素认证(MFA)场景:如果邮箱账号开启了MFA,普通密码无法用于POP3登录,需前往微软账号中心生成应用密码,并用该密码替换代码中的普通登录密码。
  • 简化协议配置(可选):直接使用pop3s协议(POP3 over SSL的标准协议),无需额外配置socketFactory,简化后的核心配置如下:
    props.setProperty("mail.store.protocol", "pop3s");
    props.setProperty("mail.pop3s.host", "outlook.office365.com");
    props.setProperty("mail.pop3s.port", "995");
    props.setProperty("mail.pop3s.auth", "true");
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 13:54:36