自 2022 年 5 月 30 日起,我们将需要使用 OAuth2(而不是普通密码)来登录 Gmail 帐户。谷歌的这一声明将如何影响 Thunderbird?因此,我尝试过多次将我的 Thunderbird 实例(在 Kubuntu Linux 20.04 上,不同时间的版本 91.7.0、91.7.1 和 91.8.1)中的 Gmail 帐户更改为使用 OAuth2。
但是,当我尝试所需的步骤时:
- 账户设置 > 服务器设置 > 身份验证方法 = OAuth2
- 删除现有密码
- 重启 Thunderbird
在预期的 OAuth2 登录页面(电子邮件地址,然后是密码,然后是“Mozilla Thunderbird 电子邮件想要访问您的 Google 帐户”)之后,我收到了意外的“安全连接失败“ 页。
安全连接失败
这可能是服务器配置问题,也可能是有人试图冒充服务器。
如果您以前曾成功连接到此服务器,则错误可能是暂时的,您可以稍后再试。
或者您可以添加例外...
添加例外链接没有任何作用。除了关闭对话框之外没有其他办法。身份验证不成功。
该对话框的标题栏显示https://192.168.xx/?code=... 使用我自己的 IP 地址。我不清楚为什么 OAuth2 流程需要调用本地计算机上的 Web 服务器。
恢复为“普通密码”可使帐户在 Thunderbird 中正常工作,但这在 5 月 30 日之后将无法实现。
答案1
就我而言,这就是解决问题的方法,或者看起来是这样(我不能排除我对系统做了其他更改)。
我正在运行一个使用 apache2 和自签名 SSL 证书的本地 Web 服务器,这对于公共 Web 服务器来说不安全,并且需要浏览器例外。在 Firefox/Thunderbird 连接到此类服务器时,通常会看到“安全连接失败”页面。
如果我停止 apache2:
sudo systemctl stop apache2
然后 Gmail OAuth2 身份验证完成,我可以接收和发送电子邮件 - 再次启动 apache2 不会干扰此操作,只会干扰初始密码输入。
笔记:任何在默认端口 443 (https) 或 80 (http) 上运行且使用自签名、过期或无效 SSL 证书的本地 Web 服务器都可能出现同样的问题,但我尚未对其他服务器进行测试。其他人报告称,nginx 也会出现同样的问题。
(我仍然不知道为什么需要调用本地网络服务器。)
答案2
这答案是正确的,但扩展性不强。任何在 localhost 上侦听端口 80 的应用程序都可能导致此行为。在 Linux 上,只需检查在 localhost:80 上侦听的应用程序或服务。您可以运行:
sudo netstat -plant | grep 80
并检查你的电脑中有哪些应用程序,然后将其关闭。我电脑中是:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1628/nginx: master
调用(在 Ubuntu 上):
sudo systemctl stop nginx
已解决的问题
答案3
如果 GMail OAuth2 出现无法正常工作,请 THUNDERBIRD 用户注意。
https://support.mozilla.org/en-US/questions/1373706
看起来,如果您对端口 443 有任何本地响应,即使弹出凭证请求得到满足,雷鸟也会拒绝使用 oauth2 登录。
就我而言,我的笔记本电脑上已安装并运行 IIS,但我使用自签名证书添加了对 https/443 的绑定(这是为了使用安全协议测试传入连接)。这也会干扰 thunderbird,并可能导致使用 oauth2(目前唯一的选项)的 gmail 身份验证失败。
当我关闭 iis(或删除 https2/443 绑定)时,thunderbird 重新启动以正确验证 gmail IMAP 服务器。
答案4
在我的例子中,Thunderbird 也尝试重定向到本地主机并拒绝连接,并出现错误:“Thunderbird 检测到潜在的安全威胁,并且没有继续到本地主机”
我必须停止 Apache 服务才能解决这个问题,并在 Google 身份验证完成后再次打开它。