通过 CLI IMAP 登录 Gmail 服务器失败

通过 CLI IMAP 登录 Gmail 服务器失败

我尝试使用终端中的 OpenSSL 手动登录我的 Gmail 帐户。但由于某种原因,即使密码正确,Gmail 也不会授权我的登录。以下是我的终端的概要:

openssl s_client -crlf -connect imap.googlemail.com:993
CONNECTED(00000003)
.......
# Some stuff displayed here
.......
* OK Gimap ready for requests from <my-ip> f75mb26659817ybg
01 login [email protected] password
01 NO [AUTHENTICATIONFAILED] Invalid credentials (Failure)

为什么会失败?另外,我是这方面的新手,对此非常好奇,因此,如果能提供一些关于这方面的文章建议就太好了。

我也尝试自己搜索相关文章,但搜索了好几页仍然无果。

答案1

经过几次尝试,我发现 Gmail 已经放弃了对基本 IMAP 登录的支持,因为它“不太安全”。因此,我最终使用 OAuth2 进行身份验证。我还发现,我的目标(获取未读电子邮件计数)也可以在之后使用 Gmail API 实现。为了实现它,我用 bash 编写了一个脚本。

以下是该脚本的简要功能:

  • 创建凭证对于可以访问 Gmail API 并设置必要范围的客户端。

  • 使用这些凭证为用户帐户生成授权码。

    在此期间,终端打开用户同意网页询问用户是否授权客户端。一旦授权,OAuth2 授权代码被发送到localhost指定的端口(我使用了 5000),然后被 TCP 监听器捕获,脚本在后台临时运行并存储。

  • 存储授权码后,生成 API 访问令牌并将其存储在某处以供使用。

  • 发出如下 curl 请求来访问 API:

    curl -H "Authorization: Bearer <the access token>" <the request>
    

以下是相关链接:

答案2

对我来说很管用。一定要让不太安全的应用程序访问你的账户但是,否则简单的登录(用户+密码)可能不起作用。

相关内容