是否可以将OAuth 2.0用于Office365 SMTP?

时间:2016-05-07 15:21:52

标签: oauth-2.0 office365

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

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

我们现在要求为Office365帐户执行此操作。

我注意到Office365 smtp服务器上的hello消息(smtp.office365.com端口587)不提供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可以解决此问题,并允许应用程序像其他电子邮件提供商一样流动。

3 个答案:

答案 0 :(得分:1)

真的也想要这个功能。它会使Office365应用程序更容易发送邮件!

我做了一些狩猎,并发现this似乎与我们将得到的官方答案一样接近(答案是平坦的否定)。

答案 1 :(得分:0)

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

My example program (Github)

答案 2 :(得分:0)

不确定我是否缺少什么,但这不是您想要的吗?看起来这是二月份发布的。有趣的是,本文说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