可以使用 JavaMail 和 Apache Camel Mail (IMAP) 通过服务帐户连接 Microsoft Exchange 共享邮箱吗?

Posted

技术标签:

【中文标题】可以使用 JavaMail 和 Apache Camel Mail (IMAP) 通过服务帐户连接 Microsoft Exchange 共享邮箱吗?【英文标题】:Possible to connect with a Microsoft Exchange shared mailbox via service account using JavaMail and Apache Camel Mail (IMAP)? 【发布时间】:2017-04-27 15:13:32 【问题描述】:

我们正在使用 Apache Camel 通过 IMAP 连接到我们的收件箱。 Apache Camel Mail 组件构建在 JavaMail 之上。

我们的测试服务器使用 Outlook 和 Office 365。我们使用 Outlook.office365.com 作为主机/域,个人用户的电子邮件帐户是用户名,等等以及他们的密码。考虑到凭据是连接到其个人收件箱的注册个人用户的凭据,这很有效。

<from uri=imaps:outlook.office.365.com:993?username=un@domain.com&password=blah/>

生产服务器是一个共享邮箱,我们在其中设置了服务帐户。理想情况下,此服务帐户将充当邮箱的“用户”。邮箱没有附加“实际用户”。我们希望使用服务帐户用户名作为“un”字段,并使用该帐户的密码来获得访问权限。

<from uri=imaps:host-domain:993?username=ServiceAccuntUN&password=ServiceAccountPW/>

或者

<from uri=imaps:sharedmailbox@domain.com:993?username=ServiceAccuntUN&password=ServiceAccountPW/>

或者

<from uri=imaps:domain:993?username=sharedmailbox@domain.com/ServiceAccuntUN&password=ServiceAccountPW/>

是否有人愿意分享使用 Microsoft Exchange 服务帐户访问共享邮箱的经验?我不应该认为这是一个 Microsoft Exchange 2010 Server。

【问题讨论】:

This Microsoft article 可能会有所帮助。 感谢@BillShannon 提供链接。当我可以尝试连接时,这实际上是我保存在后备箱中的文章之一。我几乎 100% 确定服务帐户需要对邮箱的“完全访问”权限才能通过 imap 接收消息。这是另一篇好文章供您记录...ingogegenwarth.wordpress.com/2016/04/11/… 感谢您的指点。我添加了指向JavaMail Exchange web page 的链接。 【参考方案1】:

作为记录,使用 Apache Camel 组件连接的工作方式与典型的 Exchange 2010 登录相同。

用户名属性应该是:DOMAIN\SERVICE_ACCOUNT\SHARED_MAILBOX_ALIAS

密码应该是服务帐户的密码。

我们发现 JavaMail 和 Apache Camel Mail 在我们的用例中非常可靠。

(有关更多信息,请参阅上面的 cmets)

【讨论】:

你能分享一个骆驼路线的有效 uri 吗?用于划分共享邮箱的反斜杠无效,我还尝试使用另一个反斜杠对其进行转义,但出现错误消息:“轮询端点失败”和“javax.mail.AuthenticationFailedException: AUTHENTICATE failed.”。这是我尝试过的: from("imaps://outlook.office365.com?debugMode=true&username=myuser@mydomain.com\\shared_mailbox_name&password=my_password&delete=false&unseen=true&delay=60000")【参考方案2】:

巫婆版的javamail? 对我来说 DOMAIN\SERVICE_ACCOUNT\SHARED_MAILBOX_ALIAS 直到 1.4.2 版本都可以,从 1.4.3 开始它不连接

【讨论】:

以上是关于可以使用 JavaMail 和 Apache Camel Mail (IMAP) 通过服务帐户连接 Microsoft Exchange 共享邮箱吗?的主要内容,如果未能解决你的问题,请参考以下文章

Java 中的 IMAP 客户端:JavaMail API 还是 Apache Commons Net?

如何使用 Apache 和 CA 证书配置 Docker Registry V2?

Apache-SimpleEmail 简单应用

Linux下导入SSL证书(配置用于Apache)

JavaMail 读取消息

Apache Httpd 2.2 配置CA证书,实现Https加密通讯