Mail 之間的傳遞,比方說我要寄一封信給 [email protected],我的 mail server 設定是透過 xxx.tw 去寄的,
xxx.tw 會先查出 [email protected] 所屬的MX 名稱,比方說是 mail.ssorc.tw,再來 xxx.tw 會再查出 mail.ssorc.tw 的 A 記錄 IP 是什麼,
接著 xxx.tw 就可以把信件傳遞到 mail.ssorc.tw 的 IP 位址主機。
有 MX 就是送到 mail.ssorc.tw 主機,那假如 [email protected] 沒有 MX 呢,xxx.tw 會直接查 ssorc.tw 的 A 記錄 IP 位址主機,再投遞過去,
所以沒有 MX 信也是可以送的,只要查的到 A 記錄 IP 位址,但此時就不保證信能如你預期的送到目的了,也不能說沒有 MX 就不能保證,你確認信有到就好了。
不過 DNS 設定還是要有 MX 的,這才是正統設法。有另一項用意是有些 mail server 會檢查 MX,來防 SPAM。
我們也常看到會有多筆 MX 記錄,比方說:
ssorc.tw. IN MX 10 mx1.ssorc.tw.
ssorc.tw. IN MX 20 mx2.ssorc.tw.
ssorc.tw. IN MX 30 mx3.ssorc.tw.
ssorc.tw 有 mx1、mx2、mx3 三個 mail server,mx1是主要的 mail server,mx2及mx3是備援用的,
而 10、20、30 是優先設定,愈小愈優先。
比方說 mx1 掛了,信就由 mx2 接收。有一種情況是,mx2 會等待 mx1 好了,就會把信再傳給 mx1 了,
mx2 是不會把信給 mx3 的 (優先比自已小的),因為要排除 loop。
不過也不需要等待啦,我的想法既然有了 mx1、mx2、mx3,這三台的功能就可以只是接收,收到了可以傳到真正作信箱的主機。
對於多個 MX 的情況我還需要實作經驗。
以上是復習了 Oreilly 的 postfix – The Definitive Guide 的備記。
留言