我有一个运行在 AlmaLinux 上的 VPS。对于 SMTP,我使用 sendmail,它成功地为我的两个域名发送和接收了电子邮件。我设置了 Dovecot 来处理 IMAP/POP3。我想允许 Gmail 帐户使用 Gmail 提供的“检查来自其他帐户的邮件”功能从我的一个域名(我们称之为 example.com)接收电子邮件。不幸的是,我无法让它发挥作用。
事情是这样的:
我很确定 Dovecot 已正确配置以处理 POP3 连接。在我的电脑上,我可以在命令行中输入以下内容:
openssl s_client -starttls pop3 -connect mail.example.com:110
如果我然后输入USER fake_username
and PASS fake_password
,我可以执行 POP 命令(例如LIST
and STAT
)并获得正确的响应。
此外,我在本地计算机上配置 Thunderbird 使用 POP3 从 mail.example.com 读取电子邮件。在 Thunderbird 中,我可以使用以下帐户设置阅读电子邮件:
Server Name: mail.example.com
Port: 110
User Name: fake_username
Connection Security: STARTTLS
Authentication Method: Normal Password
...虽然电子邮件来得很顺利。
但是,当我在 Gmail 中使用相同的信息(mail.example.com、端口 110、正确的用户名、正确的密码)时,我收到两条错误消息之一,具体取决于我是否选中了“始终使用安全连接 ( SSL) 在检索邮件时。”
如果我未选中该复选框,在 Web 表单上,我会看到以下错误消息:
“服务器拒绝对给定的用户名和密码进行 POP3 访问。”
在我的服务器日志 ( dovecot.log
) 上,我看到以下内容:
Mar 19 12:27:36 pop3-login: Info: Disconnected: Disconnected: Too many bad commands (no auth attempts in 0 secs): user=<>, rip=209.85.128.137, lip=103.72.79.234, session=<cR/KSUP3MIvRVYCJ>
如果我选中“始终使用 SSL”复选框,在前端 Gmail 会显示此错误消息:
“连接到 mail.example.com 时出现问题”
在 中dovecot.log
,我看到:
Mar 19 12:27:01 pop3-login: Debug: SSL: where=0x2001, ret=1: before SSL initialization
Mar 19 12:27:01 pop3-login: Debug: SSL: where=0x2002, ret=-1: before SSL initialization
Mar 19 12:27:01 pop3-login: Debug: SSL: where=0x2002, ret=-1: before SSL initialization
Mar 19 12:27:01 pop3-login: Debug: SSL: where=0x2002, ret=-1: before SSL initialization
Mar 19 12:27:01 pop3-login: Debug: SSL: where=0x2001, ret=1: before SSL initialization
Mar 19 12:27:01 pop3-login: Debug: SSL: where=0x2001, ret=1: SSLv3/TLS read client hello
Mar 19 12:27:01 pop3-login: Debug: SSL: where=0x2001, ret=1: SSLv3/TLS write server hello
Mar 19 12:27:01 pop3-login: Debug: SSL: where=0x2001, ret=1: SSLv3/TLS write change cipher spec
Mar 19 12:27:01 pop3-login: Debug: SSL: where=0x2001, ret=1: TLSv1.3 write encrypted extensions
Mar 19 12:27:01 pop3-login: Debug: SSL: where=0x2001, ret=1: SSLv3/TLS write certificate
Mar 19 12:27:01 pop3-login: Debug: SSL: where=0x2001, ret=1: TLSv1.3 write server certificate verify
Mar 19 12:27:01 pop3-login: Debug: SSL: where=0x2001, ret=1: SSLv3/TLS write finished
Mar 19 12:27:01 pop3-login: Debug: SSL: where=0x2001, ret=1: TLSv1.3 early data
Mar 19 12:27:01 pop3-login: Debug: SSL: where=0x2002, ret=-1: TLSv1.3 early data
Mar 19 12:27:01 pop3-login: Debug: SSL: where=0x2002, ret=-1: TLSv1.3 early data
Mar 19 12:27:01 pop3-login: Debug: SSL: where=0x2002, ret=-1: TLSv1.3 early data
Mar 19 12:27:01 pop3-login: Debug: SSL: where=0x2002, ret=-1: TLSv1.3 early data
Mar 19 12:27:01 pop3-login: Debug: SSL: where=0x2001, ret=1: TLSv1.3 early data
Mar 19 12:27:01 pop3-login: Debug: SSL: where=0x2001, ret=1: SSLv3/TLS read finished
Mar 19 12:27:01 pop3-login: Debug: SSL: where=0x20, ret=1: SSLv3/TLS write session ticket
Mar 19 12:27:01 pop3-login: Debug: SSL: where=0x2001, ret=1: SSLv3/TLS write session ticket
Mar 19 12:27:01 pop3-login: Debug: SSL: where=0x2001, ret=1: SSLv3/TLS write session ticket
Mar 19 12:27:01 pop3-login: Debug: SSL: where=0x2002, ret=1: SSL negotiation finished successfully
Mar 19 12:27:01 pop3-login: Info: Login: user=<fake_username>, method=PLAIN, rip=71.232.112.192, lip=[MY SERVER'S IP ADDRESS], mpid=949498, TLS, session=<waq2R0P3fM1H6HDA>
Mar 19 12:27:01 pop3(fake_username)<949498><waq2R0P3fM1H6HDA>: Info: Disconnected: Logged out top=0/0, retr=0/0, del=0/0, size=0
Mar 19 12:27:01 pop3-login: Debug: SSL alert: close notify
在我的文件中/etc/dovecot/10-auth.conf
,我唯一没有注释的行是:
auth_mechanisms = plain login
!include auth-system.conf.ext
并且没有任何与 auth 相关的内容dovecot.conf
我认为一方面我通过命令行授权会话和在 Thunderbird 中授权会话之间存在一些不匹配(Thunderbird 无法通过 POP3 连接到 mail.example.com,除非我使用 ),以及STARTTLS
Gmail 尝试连接的方式另一方面。不幸的是,错误日志对我来说都是希腊语,我无法充分理解 Dovecot 文档以弄清楚如何让 Dovecot 授予对 Gmail 的访问权限。
有没有好心人知道这里发生了什么/可能发生了什么以及我该如何解决?
Google 不期望 STARTTLS。他们期望 POP3S,可能在端口 995 上。你必须在 dovecot 中启用它。