一般的 MTA 標準動作都是先查收件人的 domain 的 MX 是什麼,如果找不到,才使用此 domain 所查到的 IP。
如果要讓 sendmail 不去查某個 domain 的 MX,那就要使用 mailertable 這個表來告訴 sendmail 當看到某個 domain 時,就直接寄往哪個 IP。
比如你要寄給 user@some.where.com,不想讓 sendmail 去查 some.where.com 的 MX,那就可以在 mailertable 中加一條
.where.com smtp:[123.123.123.123]
那個 IP 請換成你真正想要寄過去的 IP。
寫好 mailertable 之後,下此指令:
makemap hash /etc/mail/mailertable < /etc/mail/mailertable
這樣就行了。
不過要先確定你的 sendmail 有啟用 mailertable
下此指令:fgrep Kmailertable /etc/mail/sendmail.cf
應該要出現:Kmailertable hash /etc/mail/mailertable
沒出現就加那行進去,加在第一個字是大 K 的那群設定後面即可。
如果你確認 xx.com 可收信的 IP 為 1.2.3.4 的話,
可利用 sendmail 裡的 mailertable 的機制。
參考一下:
沒有設DNS的情況下如何寄信給內部信箱
的作法,
就是編輯 /etc/mail/mailertable
<pre class="c" name="code">xx.com smtp:[1.2.3.4]
這樣就可以針對送往 xx.com 的信件,
不往DNS上所查到的IP或MX 的IP送,
而往所指定的 1.2.3.4 去送。
當然,不檢查對方MX,
以個別有問題的domain才這樣處理,
不應把所有domain都不檢查對方MX 當作通則。