防止 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 詢問標頭位址中的網域。

相關內容