java - JavaMail - 阅读 Outlook 邮件时出现 AuthenticationFailedException
问题描述
我正在使用以下代码使用 Java 邮件 1.6.2 阅读 Outlook 电子邮件
Properties props = new Properties();
props.setProperty("mail.imap.ssl.enable", "true");
Session mailSession = Session.getInstance(props);
mailSession.setDebug(true);
Store mailStore = mailSession.getStore("imap");
mailStore.connect("outlook.office365.com", "abc@company.com", "password");
但是,即使登录凭据正确,我也会遇到错误。请在下面找到日志:
DEBUG: setDebug: JavaMail version 1.6.2
DEBUG: getProvider() returning javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle]
DEBUG IMAP: mail.imap.fetchsize: 16384
DEBUG IMAP: mail.imap.ignorebodystructuresize: false
DEBUG IMAP: mail.imap.statuscachetimeout: 1000
DEBUG IMAP: mail.imap.appendbuffersize: -1
DEBUG IMAP: mail.imap.minidletime: 10
DEBUG IMAP: closeFoldersOnStoreFailure
DEBUG IMAP: trying to connect to host "outlook.office365.com", port 993, isSSL true
* OK The Microsoft Exchange IMAP4 service is ready. [TQBBADEAsomeText]
A0 CAPABILITY
* CAPABILITY IMAP4 IMAP4rev1 AUTH=PLAIN AUTH=XOAUTH2 SASL-IR UIDPLUS ID UNSELECT CHILDREN IDLE NAMESPACE LITERAL+
A0 OK CAPABILITY completed.
DEBUG IMAP: AUTH: PLAIN
DEBUG IMAP: AUTH: XOAUTH2
DEBUG IMAP: protocolConnect login, host=outlook.office365.com, user=abc@company.com, password=<non-null>
DEBUG IMAP: AUTHENTICATE PLAIN command trace suppressed
DEBUG IMAP: AUTHENTICATE PLAIN command result: A1 NO AUTHENTICATE failed.
javax.mail.AuthenticationFailedException: AUTHENTICATE failed.
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:732)
at javax.mail.Service.connect(Service.java:366)
at javax.mail.Service.connect(Service.java:246)
知道可能是什么原因吗?
解决方案
问题是错误的主机!将 outlook.office365.com (imap-mail.outlook.com) 替换为公司特定的主机,它工作了!
mailStore.connect("mail.ad.company.com", "abc@company.com", "password");
推荐阅读
- typescript - SelectorEvent 在哪里定义以及如何将其导入以进行类型检查?
- java - Azure AD oauth springboot + vuejs
- python - 从网格中的特定输入框中获取文本并更新同一行中的组合框
- r - 为什么 R 包 `qtlbim` 安装在本地失败但在 docker 容器中成功?
- c - 值为 0 的套接字类型是什么类型?
- apache-spark - 为什么驱动程序内存不在我的 Spark 上下文配置中?
- c++ - 树遍历:从叶子到叶子,然后到根
- laravel - 如何通过另一个具有多对多关系的模型来获取模型的所有孩子?
- visual-studio-code - VSCode:无法弄清楚命中计数条件
- java - Java 是否根据结果假定类型?