如何使用 Google 的 IMAP 服务器获得 PLAIN 身份验证?

How can I get PLAIN authentication working with Google's IMAP server?

所以一段时间以来,我一直依赖 PLAIN 支持在我的电子邮件客户端中登录 Google 的 IMAP 服务器。最近他们开始阻止它并 return 一个错误(尽管将其列为受支持的身份验证方法)。

例如举这个例子:

Connected to 'imap.gmail.com:993' using SSL
A0001 CAPABILITY
* OK Gimap ready for requests from ##.##.##.## cd6mb38777249ieb
* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 XYZZY SASL-IR AUTH=XOAUTH2 AUTH=PLAIN AUTH=PLAIN-CLIENTTOKEN AUTH=XOAUTH
A0001 OK Thats all she wrote! cd6mb38777249ieb
A0002 AUTHENTICATE PLAIN
+
####################################
* NO [WEBALERT https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbszktZSU6iVmh...snip....] Web login required.
A0002 NO [ALERT] Please log in via your web browser: http://support.google.com/mail/accounts/bin/answer.py?answer=78754 (Failure)
SSL connection closed.
ScribeImap_Thread.cpp:647 - Connect to imap.gmail.com:993 failed.

我试过在我的浏览器中打开“https://accounts.google.com/ContinueSignIn...”URL:

我被重定向到 https://myaccount.google.com/ 但下一次登录尝试也失败了。所以它似乎根本没有改变身份验证。

PLAIN 身份验证是完全被阻止还是我做错了?

或者是否有一种有效且不需要浏览器组件即可登录的身份验证方法? (XOAUTH2 似乎也需要网络登录)

非常官方:
http://googledevelopers.blogspot.com.au/2015/04/a-final-farewell-to-clientlogin-oauth.html

他们已经完全关闭了 PLAIN 登录并且不会再回来了。

所以有两种选择:

  1. 开启"less secure apps"
  2. 实施 OAUTH2。

我已决定实施 OAUTH2 支持(这离实际工作并不太远)。最初我以为我的应用程序中需要一个嵌入式浏览器组件,但事实证明我可以启动系统浏览器并且用户可以通过一些手动过程复制令牌。

有趣的是,对于那些在他们的软件中致力于 OAUTH2 支持的人来说,Google 已经设置了一个游乐场来实际查看整个过程:
https://developers.google.com/oauthplayground/

我看到这是一个旧的 post,但是在与 Outlook 斗争了一年多才收到我的邮件之后,我终于让它重新工作了。

我要做的第一件事是登录我的 Gmail 帐户并关闭标有 "Less secure apps" 的按钮,因为 Outlook 属于该类别。 转到“我的帐户”中的 "Less secure apps" 部分。 在 "Access for less secure apps," select 旁边打开。 (Google 应用程序用户请注意:如果您的管理员锁定了不太安全的应用程序帐户访问权限,则此设置会隐藏。) 如果您启用了两步验证(就像我所做的那样),它仍然会使 Outlook 失败。因此,您接下来要做的是创建一个应用密码,它会为您生成一个密码,您可以在 Outlook 中使用该密码以使其正确同步。

访问您的应用密码页面。系统可能会要求您登录 Google 帐户。 在底部,点击 Select 应用并选择您正在使用的应用。 单击 Select 设备并选择您正在使用的设备。 由于不会列出 Outlook,因此 select 其他并键入 Outlook 以供将来参考。 Select生成。 按照说明在您的设备上输入 App 密码(黄色栏中的 16 位字符代码)。 Select完成。 复制生成的密码。 打开 Outlook 并将密码粘贴到“密码”部分。不要使用您的常规密码。 您的邮件将同步而不会再出现问题。 (希望) 完成后,您将不会再看到该 App 密码。但是,您会看到已为其创建应用密码的应用和设备列表。

我希望这对遇到问题的每个人都有帮助。我希望这些指示很容易遵循!祝大家好运! :-)