早上,收到了用戶投訴,我們的集團郵箱發信到私有云下的內網郵箱發信退信。我進行了一些列的排查。
首先,是查看退信的提醒,見下圖:報錯信息很明顯,是域名不存在或無法找到對方的郵件系統。
對方向我方發郵件,一定是通過連接到我方主機的25端口,然後將email投遞過來。但是他們怎麼找到我們的主機呢,通過郵件的後綴。
比如他們要發送的主機是[email protected],這裏hadmin2指的是賬戶,主機的域即ha.cmcc
他們的主機在發信時會先通過DNS查詢擁有mx記錄的ha.cmcc信息,然後通過優先級選擇較低的投遞。
下面我通過win主機和linux主機描述
一、windows主機
1、查找mx記錄的域
nslookup -q=mx hostname
這裏的信息很明顯,域爲ha.chinamobile.com
只找到了一個mx記錄,優先級爲10,投遞的主機名爲 mx.ha.chinamobile.com, ip地址爲172.16.121.105。
2、測試該主機端口是否可達
telnet hostname 25
smtp的端口號是25,一般來說是不會改變的。(因爲需要別人來投遞信息,需要別人連接)
如果能正常telnet上並且ehlo能回饋,說明可以發信。
二、linux主機
1、查找mx記錄的域
nslookup -type=mx hostname
這裏清晰的描述了用的dns地址是10.87.13.86,dns的端口號碼是53
要查找的ha.chinamobile.com的郵件投遞主機是 mx.ha.chinamobile.com
2、telnet測試
對方在telnet到我方時測試失敗,這裏即可斷定是對方無法連接到我方的smtp主機,這時,就需要自己測試smtp主機端口是否可以打開。
由於是在私有云內,所以採用以下的辦法測試:
自己測試沒問題,就可以放心讓對方測試了。