早上,收到了用户投诉,我们的集团邮箱发信到私有云下的内网邮箱发信退信。我进行了一些列的排查。
首先,是查看退信的提醒,见下图:报错信息很明显,是域名不存在或无法找到对方的邮件系统。
对方向我方发邮件,一定是通过连接到我方主机的25端口,然后将email投递过来。但是他们怎么找到我们的主机呢,通过邮件的后缀。
比如他们要发送的主机是hadmin2@ha.cmcc,这里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主机端口是否可以打开。
由于是在私有云内,所以采用以下的办法测试:
自己测试没问题,就可以放心让对方测试了。