尝试使用Chilkat IMAP电子邮件组件通过OAuth2通过IMAP访问谷歌电子邮件帐户。我收到了来自服务器的响应。。。
服务器响应:aaab NO〔AUTHENTICATIONFAILED〕无效凭据(故障(
我们使用的是VB.NET,我在https://www.example-code.com/csharp/gmail_imap_login_oauth2.asp.使用SSL和993端口连接到imap.gmail.com。我正在设置Imap.AuthMethod = "XOAUTH2"
,并使用AuthToken而不是密码。Imap.Login(LoginName, AuthToken)
是错误消息的来源。
我已经用Gmail帐户启用了IMAP,并且启用了不太安全的应用程序。我确认为密码设置了正确的auth令牌,并检查了API范围是否正确设置为https://mail.google.com/.如果我只是直接尝试登录名和密码,登录是成功的。
不确定还需要检查哪些内容以找出导致无效凭据错误的原因。
解决了这个问题。作为象征,我将其设置为";Bearer ya29.a0AfH6SMDF……";,这是我们为用于日历同步的nSoftware组件设置的。我删除了";Bearer";并且能够使用Chilkat IMAP电子邮件组件"良好登录;。
已找到此问题的原因。
在对Login的调用中;Bearer";而不仅仅是"密码:
正确:成功=imap。登录(";user@gmail.com&"quot;(;
不正确:成功=imap。登录(";user@gmail.com&"Bearer"(;
访问令牌被视为密码。Chilkat添加了所需的";Bearer";当组成发送到IMAP服务器的XOAUTH2数据时,内部字符串。
我写这篇博客文章是为了了解整个过程:https://cknotes.com/gmail-imap-oauth2-a-walkthrough/
- Athttps://console.developers.google.com/apis/credentials,创建凭据(客户端ID、客户端机密(,并定义重定向URL
- 用于从应用程序中获取初始OAuth2令牌的代码
- IMAP协议中使用OAuth2进行身份验证的代码
- 刷新令牌的代码
我还在YouTube上传了一些演示1和2的视频。