为啥我在通过 IMAP 连接到 Gmail 时收到“需要 Web 登录”消息?

Posted

技术标签:

【中文标题】为啥我在通过 IMAP 连接到 Gmail 时收到“需要 Web 登录”消息?【英文标题】:Why am I getting "Web Login Required" message while connecting to Gmail via IMAP?为什么我在通过 IMAP 连接到 Gmail 时收到“需要 Web 登录”消息? 【发布时间】:2014-10-23 14:43:16 【问题描述】:

我正在尝试通过 IMAP 从 Gmail 连接和检索邮件标头列表。

我收到了来自 Google 的回复,其中包含“需要 Web 登录”,然后是通过 Web 界面继续登录的 URL。日志:http://hastebin.com/odufaducew.vhdl

为什么会这样?如何处理这种情况?如果有帮助的话,我正在使用适用于 ios 的 MailCore2 库。

【问题讨论】:

this answer 有帮助吗? @legoscia 有趣。我会在今天晚些时候试一试。我不能要求我的所有用户都去更改该设置……从产品的角度来看,我该如何处理? 【参考方案1】:

正如 legoscia 指出的那样,当使用密码完成登录并被认为有风险时,就会发生这种情况。最好的选择似乎是避免存储和使用用户的 Gmail 密码,而是切换到 Oauth2。这个应用程序是邮件用户界面还是您使用 IMAP 作为 API? (或许https://developers.google.com/gmail/api/ 更合适?)

【讨论】:

错了。问题(在此页面上的标题中以粗体显示)“为什么我会得到……”,我回答的第一句话是“当……发生这种情况”,然后继续推荐如何避免得到首先是这个错误。你说这并没有提供问题的答案是不正确的,它只是没有提供你想要的答案。【参考方案2】:

您可以在此页面Google - Less secure apps中启用安全性较低的应用程序的访问权限

选择启用并重试!

【讨论】:

以上是关于为啥我在通过 IMAP 连接到 Gmail 时收到“需要 Web 登录”消息?的主要内容,如果未能解决你的问题,请参考以下文章

在 javascript/node.js 中连接到 Gmail IMAP API

尝试连接到 gmail IMAP 服务器时出现 javax.mail.MessagingException

使用 imap 访问电子邮件

使用 OAuth 2.0 和服务帐户的 Gmail IMAP 失败,状态为 400

为啥我在使用 Java (Netbeans) 连接到 MySQL 时收到此错误“通信链接失败最后发送的数据包...”? [复制]

通过命令行连接到 smtp.gmail.com