我有一个电子邮件应用程序,用于发送内部写的电子邮件。我们已将其设置为使用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可以解决此问题,并允许应用程序像其他电子邮件提供商一样流动。
答案 0 :(得分:1)
我真的也想要这个功能。它会使Office365应用程序更容易发送邮件!
我做了一些狩猎,并发现this似乎与我们将得到的官方答案一样接近(答案是平坦的否定)。
答案 1 :(得分:0)
我使用了javax.Mail和OAuth作为桌面应用程序的一个示例。它打开登录屏幕以获取acccessToken。我遵循了多条指令,因此JavaMail中可能有太多权限和道具,但是我成功发送了邮件。
答案 2 :(得分:0)
不确定我是否缺少什么,但这不是您想要的吗?看起来这是二月份发布的。有趣的是,本文说M365支持Oauth,而Outlook.com用户不支持。