我正在使用以下代码使用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");

09-04 15:58
查看更多