使用Javamail读取共享的Outlook365邮箱

时间:2017-03-20 19:44:48

标签: email office365 javamail imap starttls

我公司设有Outlook邮箱,每天都会接收客户的数据。我们设置了一个Javamail程序来读取此Exchange邮箱并处理每个客户的数据。

最近,IT将我们公司的几乎所有邮箱都移到了Office365。如果我更改我们的程序以查看我的Office365个人邮箱,这个相同的Javamail程序可以正常阅读我的电子邮件。但是,用于此数据的邮箱是“共享”邮箱。如果我通过网络https://outlook.office.com/owa/?realm=company.com访问它,我可以点击我的头像和“打开另一个邮箱”,我可以在没有密码请求的情况下打开这个邮箱。

我的问题是我无法通过javamail访问这个额外的邮箱。它没有密码,因此我无法登录为(shared_mailbox)@ company.com。 Microsoft页面https://social.technet.microsoft.com/Forums/office/en-US/6369118f-7dee-4728-ac1c-a0c706b3d290/office-365-exchange-online-how-to-access-a-shared-mailbox-using-thunderbird-or-other-imap-client?forum=onlineservicesexchange建议我以(my_account)@ company.com \ shared_mailbox身份登录。我已尝试使用和不使用密码,但我收到“ERROR [com.tek.cb.pr.localdbimport.EmailCheckerBean]检查电子邮件时发现异常:javax.mail.AuthenticationFailedException”。

当程序登录outlook.office365.com时,调试消息显示

2017-03-14 15:07:44,145 INFO  [STDOUT] DEBUG: setDebug: JavaMail version 1.4ea
2017-03-14 15:07:44,145 INFO  [STDOUT] DEBUG: getProvider() returning javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc]
2017-03-14 15:07:44,145 INFO  [STDOUT] DEBUG: mail.imap.fetchsize: 16384
2017-03-14 15:07:44,145 INFO  [STDOUT] DEBUG: enable STARTTLS
2017-03-14 15:07:44,246 INFO  [STDOUT] * OK The Microsoft Exchange IMAP4 service is ready. [TQBXAEgAUABSADIAMQBDAEEAMAAwADUANQAuAG4AYQBtAHAAcgBkADIAMQAuAHAAcgBvAGQALgBvAHUAdABsAG8AbwBrAC]
2017-03-14 15:07:44,246 INFO  [STDOUT] A0 CAPABILITY
2017-03-14 15:07:44,294 INFO  [STDOUT] * CAPABILITY IMAP4 IMAP4rev1 LOGINDISABLED STARTTLS SASL-IR UIDPLUS ID UNSELECT CHILDREN IDLE NAMESPACE LITERAL+^M
A0 OK CAPABILITY completed.
2017-03-14 15:07:44,294 INFO  [STDOUT] DEBUG: protocolConnect login, host=outlook.office365.com, user=<username>@<company>.com\<shared_mailbox>, password=<non-null>
2017-03-14 15:07:44,294 INFO  [STDOUT] A1 STARTTLS
2017-03-14 15:07:44,343 INFO  [STDOUT] A1 OK Begin TLS negotiation now.
2017-03-14 15:07:44,343 INFO  [STDOUT] A2 CAPABILITY
2017-03-14 15:07:44,607 INFO  [STDOUT] * CAPABILITY IMAP4 IMAP4rev1 AUTH=PLAIN AUTH=XOAUTH2 SASL-IR UIDPLUS ID UNSELECT CHILDREN IDLE NAMESPACE LITERAL+^M
A2 OK CAPABILITY completed.
2017-03-14 15:07:44,608 INFO  [STDOUT] IMAP DEBUG: AUTH: PLAIN
2017-03-14 15:07:44,608 INFO  [STDOUT] IMAP DEBUG: AUTH: XOAUTH2
2017-03-14 15:07:44,608 INFO  [STDOUT] A3 AUTHENTICATE PLAIN
2017-03-14 15:07:44,656 INFO  [STDOUT] +
2017-03-14 15:07:44,656 INFO  [STDOUT] YmNhbHZlcnRAbmV0c2NvdXQuY29tXGNhbHZlcnQgdGVzdABiY2FsdmVydEBuZXRzY291dC5jb21cY2FsdmVydCB0ZXN0AEhvdFdhdGVyMjQ=
2017-03-14 15:07:44,707 INFO  [STDOUT] A3 NO AUTHENTICATE failed.

我也尝试禁用不同类型的登录身份验证,例如“plain”和“xoauth2”,但我必须启用STARTTLS。以前有人试过这个吗?我正在使用IMAP,因为该程序始终具有。我应该试试SMTP吗?

请注意,我的问题与此StackOverflow问题类似,但这个问题涉及PHP:Access Office356 shared mailbox with PHP

0 个答案:

没有答案