我正在尝试让 sendmail 正常工作。正在给自己发送电子邮件,看来电子邮件已送达...
May 24 06:55:13 example sendmail[29544]: x4O6tDOL029544:
to=<[email protected]>, [email protected] (0/0),
delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30113,
relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (x4O6tDVt029545
Message accepted for delivery)
但几分钟后我收到这样的错误:
May 24 07:27:47 example sm-mta[30712]: x4O74rBD029756:
to=<[email protected]>, ctladdr=<[email protected]> (0/0),
delay=00:22:53, xdelay=00:04:21, mailer=esmtp, pri=210301,
relay=mail.protonmail.ch. [185.70.40.103], dsn=4.0.0, stat=Deferred:
Connection timed out with mail.protonmail.ch.
我在 VPS 上使用 Debian 9。迄今为止:
- 我设置我的主机名
hostnamectl
- 改变了
/etc/hosts
(不确定这是否有帮助) - 已添加
SPF
记录 - 已添加
DKIM
记录
解决了:是 ISP 干的。我一开始没有想到这一点,因为我有多个提供商,而我通常使用的提供商不会阻止端口 25。我开了一张票,现在只是等待重新启动。 “我们已删除您帐户上的默认 SMTP 阻止。”
答案1
您的第一条消息仅表明您的本地 sendmail MTA 接受该消息以进行本地处理。第二条消息是关于无法连接到 的mail.protonmail.ch
主 MX 记录所指示的服务器protonmail.com
。这将是邮件到达目的地的路径上的下一跳。
当地监管机构可能会要求您的 VPS 提供商将端口 25 中的传出未经身份验证的 SMTP 连接仅限于 VPS 提供商的本地 SMTP 服务器,以确保可以检测到垃圾邮件发送者和电子邮件发送恶意软件,并在尽可能靠近源的位置停止其流量。
在这种情况下,您可能必须指定适当的外发电子邮件服务器作为您的“智能主机”,所有外发电子邮件都将通过该服务器发送。这可以通过在您的中添加类似的内容来完成/etc/mail/sendmail.mc
:
define(`SMART_HOST',`smtp.example.com')
然后重新生成你的sendmail.cf
(通常使用cd /etc/mail; make
)。
你还应该知道一个叫做灰名单:当收到来自先前未知来源的连接时,邮件服务器可能最初会拒绝该连接/消息,但会记住它来自的 IP 地址。合法的邮件服务器会在几分钟后重试,然后会被接受;垃圾邮件发送者/恶意软件可能会跳到更容易的目标。在以这种延迟的方式提交了一些有效的邮件消息之后,远程邮件服务器可以省略延迟机制。
答案2
你是当然您的传出 SMTP 连接没有(由您的 ISP)防火墙阻止?
下面的命令是否会收到 SMTP 问候消息(几秒钟后)?
[是sendmail的错吗?]
telnet mail.protonmail.ch. 25