可以使用 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)?

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

我们的测试服务器使用的是 Outlook 和 Office 365。我们使用的是 outlook。office365.com 作为 host/domain,个人用户的电子邮件帐户是用户名,等等。考虑到凭据是连接到其个人收件箱的注册个人用户的凭据,这很好用。

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

生产服务器是一个共享邮箱,我们在其中设置了服务帐户。理想情况下,此服务帐户将充当邮箱的 'user'。邮箱中没有附加 'actual user'。我们希望使用服务帐户用户名作为 '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。

郑重声明,连接 Apache Camel 组件的工作方式与典型的 Exchange 2010 登录相同。

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

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

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

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

版本的 javamail? 对我来说 DOMAIN\SERVICE_ACCOUNT\SHARED_MAILBOX_ALIAS 在 1.4.2 版本之前是可以的,从 1.4.3 开始它不连接

使用 Camel-mail 2.x.x 和 Java-mail-1.6.x 通过 IMAP 访问共享邮箱:

参数:

  • 用户名=SERVICE_ACCOUNT_USERNAME
  • 密码=密码
  • mail.imaps.sasl.authorizationid=SHARED_MAILBOX_ALIAS
  • mail.imap.auth.plain.disable=真
  • mail.imap.auth.ntlm.disable=真
  • mail.imap.auth.gssapi.disable=真

示例:

<from uri="imaps://outlook.office365.com?username=XYZ@DOMAIN.COM&password=PASSWORD&mail.imap.auth.plain.disable=true&mail.imap.auth.ntlm.disable=true&mail.imap.auth.gssapi.disable=true&mail.imaps.sasl.authorizationid=SHARED_MAILBOX_ALIAS" />