分类: LINUX
2006-11-12 19:03:35
MXRecord所引申出來的問題其實postfix伺服器有時也不一定會依DNS中的mxrecord來發送郵件的。例如︰曾經接過一個很特別的任務。當時國內對世界各地的互聯網通信都不是太好,因些有一間公司希望自己國內的廠房和寫字樓在寄出信件的時候,都把信件先寄到香港的datacenter後再從香港寄到世界各地。但是如果信件是寄到中國國內的,就不要把信件寄到香港來。
TransportTables的解決方案與smtproute其實有時你或許也有這方面的需要,我們稱這為smtproute的設定。(其實我們也可以說外寄伺服器本身跟本就是一個路由設定,只是當中不是傳送網絡封包,而是傳送電子郵件吧了。)讓我們看看如何設定這樣的事情。
main.cf下的transport_maps設定首先在main.cf中加上這樣的一行。
transport_maps=hash:/etc/postfix/transport
這就是告訴你的伺服器,如果你要把信件寄到不同的地方,請參考這個檔案。
transporttable的內容file:///etc/postfix/transport的內容如下︰
godclick.netsmtp:mail.samba.hk:10
transporttable內的意義這裡的意思是如果信件寄到godclick.net的domain的話,就把信件寄到mail.samba.hk,而使用smtp的通信協定,而連接埠為10。(為什麼使用連接埠10,其實說來有故事聽的。因為我在家裡使用netvigator的ISP連線,但是這間ISP的閉掉所有連接到互聯網上伺服器的tcp25埠。所以在對外的連線上唯有使用tcp10埠作連接之用。)
用postmap產生transport.db檔案當你設定好了transport的檔案,請你使用
#postmap/etc/postfix/transport
來動產生transport.db檔案,而讓postfix使用。