是否可以将 OAuth 2.0 用于 Office365 SMTP?
Is it possible to use OAuth 2.0 for Office365 SMTP?
我有一个内部编写的用于发送电子邮件的电子邮件应用程序。我们已将其设置为可以毫无问题地将 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 这将解决这个问题并允许应用程序像其他电子邮件提供商一样流动。
我真的也想要这个功能。它将使需要发送邮件的 Office365 应用程序变得更加容易!
我做了一些搜索,发现 这似乎与我们将要得到的官方答案非常接近(答案是肯定的否定)。
我为桌面应用程序使用 javax.Mail 和 OAuth 制作了一个示例。它打开登录屏幕以获取 acccessToken。我遵循了多个说明,所以可能是 JavaMail 中的权限和道具太多,但我成功发送了邮件。
不确定我是否遗漏了什么,但这不是您想要的吗?看起来这是二月份发布的。有趣的是,这篇文章说 M365 支持 Oauth,但不支持 outlook.com 用户。
我有一个内部编写的用于发送电子邮件的电子邮件应用程序。我们已将其设置为可以毫无问题地将 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 这将解决这个问题并允许应用程序像其他电子邮件提供商一样流动。
我真的也想要这个功能。它将使需要发送邮件的 Office365 应用程序变得更加容易!
我做了一些搜索,发现
我为桌面应用程序使用 javax.Mail 和 OAuth 制作了一个示例。它打开登录屏幕以获取 acccessToken。我遵循了多个说明,所以可能是 JavaMail 中的权限和道具太多,但我成功发送了邮件。
不确定我是否遗漏了什么,但这不是您想要的吗?看起来这是二月份发布的。有趣的是,这篇文章说 M365 支持 Oauth,但不支持 outlook.com 用户。