我有一个发送电子邮件的电子邮件应用程序,这是在家里写的。我们已经将其设置为将OAuth 2.0与Gmail(个人和商业帐户)和Outlook.com帐户一起使用,没有问题。
我们也可以使用用户ID和密码进行身份验证,但我们更喜欢OAuth 2.0,因为我们不会以这种方式将密码保存在任何地方。
我们现在收到了对Office365帐户执行此操作的请求。
我注意到Office365 SMTP服务器(smtp.office e365.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来发送电子邮件,因为每个提供者的REST风格的API当然会有很大的不同。
使用Office365帐户发送电子邮件时使用OAuth 2.0的原因是我们不想将密码存储在服务器上。此外,如果用户更改了他们的密码,我们不会知道,除非他们告诉我们或在我们的系统端手动更新。
使用OAuth 2.0,这将解决这个问题,并允许应用程序像其他电子邮件提供商一样流动。
3条答案
按热度按时间nkoocmlb1#
我“真的”也想要这个功能。这将使需要发送邮件的Office365应用程序变得更容易!
我做了一些调查,发现了this,这似乎是我们将得到的最接近官方答案的答案(答案是明确的否定)。
cedebl8k2#
不知道我是不是错过了什么,但这不就是你想要的吗?看起来这张照片是在二月份发布的。有趣的是,这篇文章说OAuth支持M365,但不支持outlook.com用户。
https://docs.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth
r1zk6ea13#
我举了一个使用javax.mail和OAuth作为桌面应用程序的例子。它会打开登录屏幕以获取acccessToken。我遵循了多个指令,所以可能在Java Mail中有太多的权限和道具,但我成功地发送了邮件。
My example program (Github)