我在 Linux Mint 21.2 上使用 Thunderbird 收发工作邮件。我们有一个 IMAP 服务器用于接收邮件,一个 SMTP 服务器用于发送邮件。登录 IMAP 工作正常,我可以接收并阅读所有电子邮件。但是,当我尝试发送电子邮件时,我得到了Login to server name.domain with username myusername failed
,其中包含输入新密码、取消或重试的选项。但是,当我单击“输入新密码”时,对话框会快速关闭并再次弹出,我根本无法输入新密码。当然,当我单击“重试”时也是一样的。
当我点击取消时,我得到一个新对话框Send Message Error: Sending of the message failed. Unable to authenticate to Outgoing server (SMTP) name.domain. Please check the password and verify the 'Authentication method' in 'Account Settings | Outgoing server (SMTP)'
。
因此,我检查了身份验证方法,即 Kerberos/GSSAPI,这与我所在组织关于设置 Thunderbird 的说明一致(如果重要的话,连接安全性是 STARTTLS,这也符合说明)。
当我转到已保存的密码时,我有一个 imap 提供商和 TbSync 的密码 - 没有保存的 SMTP 密码。我尝试删除现有的两个密码,并且在登录/同步 TbSync 时必须再次输入它们。但是,尝试发送电子邮件时仍然存在相同的错误。我从未被提示输入 SMTP 密码。
有什么方法可以修复这个问题吗?或者这听起来像是服务器端的问题?
答案1
我根本无法输入新密码。
[...]
因此,我检查了身份验证方法,即 Kerberos/GSSAPI,
这很正常——Thunderbird 根本不会保存或提示输入 Kerberos 密码。它认为操作系统已经拥有可用的 Kerberos 凭证。
确保 SMTP 服务器的主机名正确。Kerberos 依赖于应用程序知道它要连接到哪个服务器名称(甚至比 TLS 还要多),否则应用程序可能会获取错误的票证或根本无法获取票证。
(查看
klist
目前已获得哪些票。)确保连接到正确的端口(通常为 465 或 587,不是25)。
尝试清算“用户名”设置,让服务器从 Kerberos 票证中猜测。
设置后,从终端运行 Thunderbird
KRB5_TRACE=/dev/stderr
。查看尝试发送消息时输出的内容。测试其他软件;例如,安装 GSASL 工具并尝试使用它通过 Kerberos 身份验证连接到 SMTP 服务器:
gsasl --smtp mail.example.com 587