早上,收到了用户投诉,我们的集团邮箱发信到私有云下的内网邮箱发信退信。我进行了一些列的排查。

首先,是查看退信的提醒,见下图:报错信息很明显,是域名不存在或无法找到对方的邮件系统。

处理一次邮件大规模退信的过程_地址.

对方向我方发邮件,一定是通过连接到我方主机的25端口,然后将email投递过来。但是他们怎么找到我们的主机呢,通过邮件的后缀。

比如他们要发送的主机是hadmin2@ha.cmcc,这里hadmin2指的是账户,主机的域即ha.cmcc

他们的主机在发信时会先通过DNS查询拥有mx记录的ha.cmcc信息,然后通过优先级选择较低的投递。

下面我通过win主机和linux主机描述

一、windows主机

 1、查找mx记录的域 

   nslookup -q=mx hostname

   处理一次邮件大规模退信的过程_ip_02

   这里的信息很明显,域为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

   处理一次邮件大规模退信的过程_地址_03

   这里清晰的描述了用的dns地址是10.87.13.86,dns的端口号码是53

   要查找的ha.chinamobile.com的邮件投递主机是 mx.ha.chinamobile.com


 2、telnet测试

   处理一次邮件大规模退信的过程_windows_04

   

对方在telnet到我方时测试失败,这里即可断定是对方无法连接到我方的smtp主机,这时,就需要自己测试smtp主机端口是否可以打开。

由于是在私有云内,所以采用以下的办法测试:

 处理一次邮件大规模退信的过程_地址_05

自己测试没问题,就可以放心让对方测试了。