防止 sendmail 在中继之前进行 DNS 查找

防止 sendmail 在中继之前进行 DNS 查找

我的机器(CentOS,sendmail-8.14.7-5.el7)接受来自机器的电子邮件并将它们全部转发到我的 smarthost my-smarthost.mydomain.com,而 smarthost 又具有多个动态 MX 记录)。本地邮件保留在本地(使用别名文件)。

sendmail.mc:
define(`SMART_HOST', `smtp:my-smarthost.mydomain.com')dnl

今天我注意到一个问题:

# mailq
        /var/spool/mqueue (1 request)
-----Q-ID----- --Size-- -----Q-Time----- ------------Sender/Recipient-----------
02AG1YBC023172     1239 Tue Mar 10 17:01 <[email protected]>
      8BITMIME   (host map: lookup (non-domain.com): deferred)
                     <[email protected]>

# sendmail -v -q
Running /var/spool/mqueue/02AG1YBC023172 (sequence 1 of 1)
non-domain.com: Name server timeout
<[email protected]>... Transient parse error -- message queued for future delivery

为什么 sendmail 尝试通过 dns 查找邮件中的地址?我认为它只是将所有非本地内容转发到智能主机!

我尝试使用这个技巧来禁用 DNS 查找

define(`confSERVICE_SWITCH_FILE',`/etc/mail/service.switch')dnl

等等,但有一个问题:这也会禁用智能主机的 MX 搜索!因此,我的智能主机的动态 MX 记录不再被发现/使用!

有什么想法如何阻止 sendmail 执行除中继到智能主机之外的任何操作吗?

答案1

考虑使用FEATURE(nocanonify)

不规范化默认情况下,不要将地址传递给 $[ ... $] 进行规范化,即,主机/域名被视为规范,但不合格的名称除外,不得在此模式下使用这些名称(违反标准)。 […]

它应该阻止 sendmail 向 DNS 询问标头地址中的域。

相关内容