使用 apache camel 通过 imaps 连接到 ms exchange 共享邮箱失败,错误 AUTHENTICATE failed

Connecting to ms exchange shared mailbox via imaps using apache camel fails with error AUTHENTICATE failed

是 运行 Apache Camel (2.25.2) 并通过 imaps 连接到邮箱。 我们的配置有效但不适用于共享邮箱。我们用来连接“普通”邮箱的连接字符串:

imaps://srv.Domain:993?username=UserMb@Domain&password=Pass&folderName=Inbox&consumer.delay=60000&copyTo=done&delete=true&mail.imap.starttls.enable=true&mapMailMessage=true

这很好用。骆驼能够 read/copy 等来自收件箱和其他文件夹的邮件。 为了连接到共享邮箱,我们使用相同的字符串仅调整 username=.

例如:

imaps://srv.Domain:993?username=UserMb@Domain\UserMb2&password=Pass&folderName=Inbox&...

.. 它不起作用。

我已经尝试过 Domain\UserMb\UserMb2 或 UserMb@Domain\UserMb2@Domain 或 UserMb@Domain\UserMb2 等。 还有

imaps://UserMb@Domain:Pass@srv.Domain:993?folderName=Inbox...

在添加共享邮箱 UserMb2 之前,UserMb 一切正常。

我还在 Thunderbird 中重新检查过,使用 UserMb@Domain\UserMb2@Domain 将 UserMb2 映射为共享邮箱,效果很好。

我已经在这里读过类似的东西 但没有适合我们的正确解决方案。

有人有想法吗? 谢谢!

经过几个小时的搜索找到 https://www.mulesoft.org/jira/browse/MULE-9355 添加

mail.imaps.auth.plain.disable=true&mail.imaps.auth.ntlm.disable=true&mail.imaps.auth.gssapi.disable=true

解决了我的问题。

使用 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" />