我们的服务器已多次在 CBL 上列出(请参阅这个问题) 因为它 ”尝试在不使用 HELO/EHLO 命令的情况下发送电子邮件”。
在HELO
Exim 的日志中,我发现了来自 GMail 的可疑(但有用!)条目:
Remote host closed connection in response to HELO (EHLO response was: 501-5.5.4 Empty HELO/EHLO argument not allowed, closing connection.
以及任何电子邮件提供商或软件:
SMTP error from remote mail server after HELO : 501 Syntax: HELO hostname
在我看来,这些错误可能是我们的 IP 被列入 CBL 的真正原因。
我目前还不能确定 GMail 错误,因为这些消息不再在 Exim 的队列中(我会在收到新消息后立即确认),但另一条消息是退回邮件,正如我在另一个问题中所怀疑的那样(“重试超时“因为地址不存在)。
现在,我在网上找不到确认信息,但我猜退回的电子邮件中有一个空的 HELO 命令是不正常的,对吧?那么我该如何配置 Exim 以便它们不会发生这种情况?
注意:我知道我可以将此类消息删除,如果我找不到更好的解决方案,我最终会尝试这种方法,但这似乎不是正确的方法。
NB2:对于“常规电子邮件”,HELO 命令已设置如下,来自/etc/exim4/conf.d/main/00_local_settings
:
REMOTE_SMTP_HELO_DATA=$sender_address_domain
答案1
大多数服务器都会在 EHLO/HELO 命令中检查主机名是否有效。该参数必须是 Internet 上显示的服务器的 FQDN,并且正向和反向 DNS 必须与该名称匹配。
例如,如果您的机器名为mail.example.com
:
它必须发送
EHLO mail.example.com
。邮件服务器通常默认执行此操作(基于 Debian 的系统除外);它们通常必须明确配置错误才能不这样做(基于 Debian 的系统除外)。垃圾邮件发送者通常不理会 EHLO 或无法发送合法的主机名。看这里有关如何配置 Exim。
DNS A/AAAA 记录
mail.example.com
必须具有与连接到远程机器的 IPv4 或 IPv6 地址匹配的记录。例如:
mail.example.com IN A 192.0.2.83
连接到远程计算机的 IP 地址必须具有名为
mail.example.com.
例如:
83.2.0.192.in-addr.arpa. IN PTR mail.example.com.
未通过其中一项或多项检查的连接通常会将邮件标记为垃圾邮件或被拒绝。如果您的服务器未通过其中任何一项检查,并出现垃圾邮件陷阱,则最终会被列入黑名单。