我正在尝试在 Debian/Buster 服务器上设置 exim4 以与我的新 ISP (Rogers.com) 配合使用。它们需要端口 465 上的 SSL 连接,这并不罕见,但我无法让它工作。他们确实需要一些他们称之为异常程序的应用程序密码,这似乎只是他们为帐户生成的一个非常强的密码。
我已将 passwd.client 设置为在发送电子邮件时使用似乎与 smtp.broadband.rogers.com 连接的所有各种服务器(例如 *.yahoo.com、*.yahoodns.net),以便它应该无论何处要求输入应用程序密码,都请使用该应用程序密码。
我也使用了来自的建议https://halon.io/blog/how-to-test-smtp-servers-using-the-command-line/测试我的连接。特别是,在尝试命令之后
openssl s_client -connect smtp.broadband.rogers.com:465 -starttls smtp
没有 -starttls smtp 也是同样的事情,我得出的结论是它不需要 starttls。我的 Thunderbird 设置证实了这一点。
我能够使用我尝试发送邮件的帐户的 Base64 编码用户名和应用程序密码(按照 halon.io 的说明)登录 smtp 服务器。
当然,rogers 不支持 Linux,所以我需要帮助来了解如何使其工作。
我相信 Debian 针对 GnuTLS 而不是我用于测试的 OpenSSL 包编译 exim4,但 Debian 的 wiki 表明这不应该是问题。
有任何想法吗?
答案1
将 rogers.com SMTP 服务器设置为您的智能主机。附加
:465
到名称,即smtp.broadband.rogers.com:465
使用该端口而不是 25。这应该使用命令设置dpkg-reconfigure exim4-config
。将该服务器的名称放入您的 passwd.client 中,而不是目标地址(否则您需要该文件中的整个世界)。进一步挖掘,似乎
smtp.broadband.rogers.com
是链接到 的 CNAMEsmtp-rog.mail.a03.yahoodns.net
,因此您对 的引用yahoodns.net
。因此,您需要将转发 DNS 条目的 rDNS 名称放入您的passwd.client
文件中。您可以使用这个小脚本来确定这些
for ip in $(dig +short smtp.broadband.rogers.com | grep -v '[[:alpha:]]') do dig +short -x "$ip" done | sed 's/\.$//' smtp.rog.mail.vip.bf1.yahoo.com smtp.rog.mail.vip.ne1.yahoo.com smtp.rog.mail.vip.gq1.yahoo.com
您可能需要告诉 Exim 配置 465 是 SSL。对此的调用应放置在配置文件的顶部附近
exim4
(我使用conf.d/main/00_local-config
):tls_on_connect_ports = 465
update-exim4.conf
每次更改配置文件的任何部分时都重新运行。exim4
如果您将其用作守护程序,您还需要重新启动。