问题描述
在this guide对IMAP / SMTP的OAuth2支持之后,我能够检索访问令牌并对IMAP和SMTP进行身份验证,但是对于某些Office 365帐户(例如从GoDaddy购买的AUTH XOAUTH2命令)返回身份验证失败,如下面的日志所示。
Connecting to 'smtp.office365.com:587',SSL/TLS: False.
S: 220 AM7PR02CA0017.outlook.office365.com Microsoft ESMTP MAIL Service ready at Fri,14 Aug 2020 12:24:06 +0000
C: EHLO [127.0.0.1]
S: 250-AM7PR02CA0017.outlook.office365.com Hello [79.185.54.24]
S: 250-SIZE 157286400
S: 250-PIPELINING
S: 250-DSN
S: 250-ENHANCEDSTATUSCODES
S: 250-STARTTLS
S: 250-8BITMIME
S: 250 SMTPUTF8
C: STARTTLS
S: 220 2.0.0 SMTP server ready
C: EHLO [127.0.0.1]
S: 250-AM7PR02CA0017.outlook.office365.com Hello [79.185.54.24]
S: 250-SIZE 157286400
S: 250-PIPELINING
S: 250-DSN
S: 250-ENHANCEDSTATUSCODES
S: 250-AUTH LOGIN XOAUTH2
S: 250-8BITMIME
S: 250 SMTPUTF8
C: AUTH XOAUTH2 *PASSWORD*
S: 535 5.7.3 Authentication unsuccessful [AM7PR02CA0017.eurprd02.prod.outlook.com]
以下URL用于授权:
- https://login.microsoftonline.com/common/oauth2/v2.0/authorize
- https://login.microsoftonline.com/common/oauth2/v2.0/token
使用的SMTP范围:https://outlook.office.com/SMTP.Send(如Microsoft指南中所述)。在Azure门户中,将其添加到Graphs API下的Permissions API中(因为在Exchange下不再可用)。
该应用程序已在Azure中为个人outlook.com用户和Office 365组织进行了注册(这就是为什么在身份验证URL中将common用作承租人的原因)。
它适用于我们的开发人员许可Office 365组织,但对于通过GoDaddy购买(在https://www.godaddy.com/email/professional-business-email上的组织),它无法验证SMTP(IMAP可以正常工作)。
已尝试的事情:
- 将范围限制为与Exchange资源相关的范围(如https://docs.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth中的建议)
- 通过身份验证URL(而不是常见的URL)将租户更改为组织
- 使用https://outlook.office365.com/SMTP.Send作为SMTP的作用域
有什么建议吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)