【问题标题】:Is it possible to use OAuth 2.0 for Office365 SMTP?是否可以将 OAuth 2.0 用于 Office365 SMTP?
【发布时间】:2016-05-07 15:21:51
【问题描述】:

我有一个电子邮件应用程序,用于发送内部编写的电子邮件。我们已将其设置为将 OAuth 2.0 与 GMail(个人和企业帐户)和 Outlook.com 帐户一起使用而不会出现问题。

我们也可以使用用户 ID 和密码进行身份验证,但我们更喜欢 OAuth 2.0,因为我们不会以这种方式将密码保存在任何地方。

我们现在有为 Office365 帐户执行此操作的请求。

我注意到 Office365 smtp 服务器(smtp.office365.com 端口 587)上的 hello 消息不提供 XOAUTH2 选项。

250-BY2PR0601CA0005.outlook.office365.com Hello [xx.xx.xx.xx]
250-SIZE 157286400
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-AUTH LOGIN
250-8BITMIME
250-BINARYMIME
250 CHUNKING

但是,outlook.com 的 SMTP 服务器可以:

250-BLU436-SMTP14.smtp.hotmail.com Hello [xx.xx.xx.xx]
250-TURN
250-SIZE 41943040
250-ETRN
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-8bitmime
250-BINARYMIME
250-CHUNKING
250-VRFY
250-AUTH LOGIN PLAIN XOAUTH2
250 OK

这可能与 Office365 相关吗?如果不是,我们可以将 Office365 用户指向 outlook.com smtp 服务器(smtp-mail.outlook.com)还是完全不同?

如果可能的话,我们宁愿不要仅将 API 用于发送电子邮件,因为每个提供商的 RESTful API 当然会完全不同。

使用 Office365 帐户发送电子邮件时使用 OAuth 2.0 的原因是我们不希望将密码存储在我们的服务器上。此外,如果用户更改了密码,我们不会知道,除非他们告诉我们或在我们的系统端手动更新。

使用 OAuth 2.0 这将解决这个问题,并允许应用程序像其他电子邮件提供商一样流动。

【问题讨论】:

  • 那么,即使是来自微软的也没有?是要添加的东西吗?这肯定是其他电子邮件服务器云软件的一个不错的功能。

标签: oauth-2.0 office365


【解决方案1】:

真的也想要这个功能。这将使需要发送邮件的 Office365 应用程序变得更加容易!

我进行了一些搜索,发现this 似乎与我们将得到的官方答案最接近(答案是否定的)。

【讨论】:

  • 是的,我发现并决定,因为旧方法已被弃用(outlook.com 使用的方法)只是编写了一个应用程序来使用 Office365 API 发送电子邮件。如果我们需要开始编写特定于每个提供商的 API 的东西,那么标准就这么多了……呃……这没有任何意义,因为 SMTP 协议应该可以正常工作……我有成千上万的客户使用所有不同类型的提供商(谷歌、女士、godaddy 等)。
【解决方案2】:

不确定我是否遗漏了什么,但这不是您想要的吗?这个好像是二月份发的。有趣的是,这篇文章说 M365 支持 Oauth,但 Outlook.com 用户不支持。

https://docs.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth

【讨论】:

  • 现在它说它支持 outlook.com:“Microsoft 365(包括 Web 上的 Office)和 Outlook.com 都支持如下所述的 IMAP、POP、SMTP 协议的 OAuth2 支持用户。”
【解决方案3】:

我为桌面应用程序使用 javax.Mail 和 OAuth 做了一个示例。它打开登录屏幕以获取 accessToken。我遵循了多个说明,因此可能 JavaMail 中的权限和道具过多,但我成功发送了邮件。

My example program (Github)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 2016-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多