我正在使用骆驼邮件插件来阅读使用 IMAP 的电子邮件,它运行良好。
但是越来越多的电子邮件提供商弃用/禁用基本身份验证,以将其替换为基于 OAuth 2.0 令牌的授权。
例子:
来自 Microsoft Exchange:Exchange Online 中基本身份验证的弃用
我们将取消在 Exchange Online 中为 Exchange ActiveSync (EAS)、POP、IMAP 等使用基本身份验证的功能
有没有办法将 OAuth 2 与骆驼邮件一起使用?还有其他解决方案吗?
谢谢你的帮助
Apache camel 具有用于自定义身份验证的身份验证器功能。有一个默认的 Authenticator 类,您需要扩展它并覆盖 getPassword 方法。 GetPassword 应该返回访问令牌而不是普通密码。您可以将您的自定义身份验证器绑定到您的上下文,您只需要从您的端点调用
<from uri="imaps://[email protected]&authenticator=#yourCustomAuthenticator>
您还需要执行以下步骤:
在“来自”端点上使用以下属性禁用普通身份验证: mail.imap.auth.plain.disable=true
使用以下属性启用 oauth:
mail.imap.auth.xoauth2.disable=false
Camel 将使用访问令牌 (base64(auth=Bearer adfdfdf)) 自动调用 imap 登录。
[编辑] 我写了一篇带有示例的博客文章。你可以在这里找到它: https://how2all.com/how-to-authenticate-with-microsoft-outlook-using-oauth2-and-apache-camel/
您可以使用 Camel-Box 阅读使用 OAuth 2 的电子邮件。
我认为你必须使用骆驼邮件组件的 authenticator 参数并实现你自己的 OAuth2 MailAuthenticator。看起来有点笨拙,为此需要一个实现。