今天还处理了另外一个问题就是用户发往vip.qq.com,没有发送成功,还被退信
退信如下:
Hi.Thisistheqmail-sendprogramatmx55 .
I'mafraidIwasn'tabletodeliveryourmessagetothefollowingaddresses.
Thisisapermanenterror;I'vegivenup.Sorryitdidn'tworkout.
113.108.64.246failedafterIsentthemessage.
Remotehostsaid:550Mailboxunavailableoraccessdenied
根据退信失败信息的意思是收件方的邮件地址不可用或者邮箱被服务商暂停使用要么就是拒绝我们这个IP段的邮件服务器访问
为了追究其原因,那就必须得做测试了,看看到底是为什么
第一步:在退信的服务器(mx55)上进行测试,确认退信信息
[root@mx55 /home/sysadmin]#cd/var/log/qmail/qmail-send/
[root@mx55/var/log/qmail/qmail-send]#[email protected]
Subject:dns
dns
.
EOT
[root@mx55/var/log/qmail/qmail-send]#grep!$current
@400000004ddb786027c4715cstartingdelivery10455075:[email protected]
[root@mx55/var/log/qmail/qmail-send]#grep10455075current
@400000004ddb786027c4715cstartingdelivery10455075:[email protected]
@400000004ddb78613b970b04delivery10455075:failure:112.90.137.245_failed_after_I_sent_the_message./Remote_host_said:_550_Mailbox_unavailable_or_access_denied/
第二步:使用同一IP段的邮件服务器再进行测试
如果失败的话,那进行第三步
第三步: 如果有转发服务器(非海外转发)的话,一定要在转发服务器上测试能否发送成功
转发服务器:vm190-yq.dns.com.cn
[root@vm190-yq /var/log]# mail [email protected]
Subject: dns
dns
.
EOT
[root@vm190-yq /var/log]# grep !$ maillog
grep [email protected] maillog
May 24 17:14:37 vm190-yq qmail: 1306228477.715200 starting delivery 1147021: msg 145661 to remote [email protected]
[root@vm190-yq /var/log]# grep 1147021 !$
grep 1147021 maillog
May 24 17:14:37 vm190-yq qmail: 1306228477.715200 starting delivery 1147021: msg 145661 to remote [email protected]
May 24 17:14:39 vm190-yq qmail: 1306228479.351035 delivery 1147021: failure: 112.95.240.192_failed_after_I_sent_the_message./Remote_host_said:_550_Mailbox_unavailable_or_access_denied/
在转发服务器上的测试是失败的,那就没办法用转发服务器设置转发了
第四步:使用非专门邮件服务器(比如备用机)进行测试,使用备用机的原因自己考虑,当然要考虑到生产因素了
备用机:mby.dns.com.cn
如果使用备用机测试还是失败的话那就进行第五步
第五步:使用不同IP段得邮件服务器进行测试并提取日志
[root@mx10 /var/log/qmail/qmail-send]# mail [email protected]
Subject: dns
dns
.
EOT
[root@mx10 /var/log/qmail/qmail-send]# grep !$ current
grep [email protected] current
@400000004ddb78b3257731b4 starting delivery 6822797: msg 94602 to remote [email protected]
[root@mx10 /var/log/qmail/qmail-send]# grep 6822797 current
@400000004ddb78b3257731b4 starting delivery 6822797: msg 94602 to remote [email protected]
@400000004ddb78b43b5b7cec delivery 6822797: success: 183.60.61.223_accepted_message./Remote_host_said:
通过第五步说明用户的收件地址是没有错的,到这里还没有完事呢,请继续
第六步:如果上述几个测试都是失败的话,那有可能是收件地址的问题但是也有可能是邮件服务器的问题,那怎么办呢?做了这么多测试难道就这样了吗? 还有办法,那就是用163 126 gmail sina yahoo hotmail 等免费邮箱进行测试,如果用这些免费邮箱还是发送失败的话,那就可以确定是用户的收件地址有问题,如果发送成功的话呢那还要想办法解决用户的发送问题并且恢复用户的正常收发
第七步:设置转发
在第五步操作中,不是已经使用“非同一IP段的服务器”测试成功了嘛,那就在mx55上设置转发吧
编辑/var/qmail/control/smtproutes (相当于一个静态路由表)
编辑格式如下:
收件域:转发服务器的IP
eg:
vip.qq.com:119.254.72.150
第八步:这一步也不可忽略哟
设置完转发以后要再次进行测试
[root@mx55 /var/log/qmail/qmail-send]# mail [email protected]
Subject: dns
dns
.
EOT
[root@mx55 /var/log/qmail/qmail-send]# grep !$ current |tai64nlocal
grep [email protected] current |tai64nlocal
2011-05-24 17:20:22.667185500 starting delivery 10455075: msg 824952 to remote [email protected]
2011-05-24 17:25:06.309138500 starting delivery 10455777: msg 824741 to remote [email protected]
[root@mx55 /var/log/qmail/qmail-send]# grep 10455777 current
@400000004ddb797c126d1444 starting delivery 10455777: msg 824741 to remote [email protected]
@400000004ddb797c15763d64 delivery 10455777: failure: 119.254.72.150_does_not_like_recipient./Remote_host_said:_553_sorry,_that_domain_isn't_in_my_list_of_allowed_rcpthosts_(#5.5.3)/Giving_up_on_119.254.72.150./
这是为什么呢?在第五步的时候明明是发送成功的啊?怎么这会又失败了呢?
那就在150的/var/qmail/control/rcpthosts文件中加入vip.qq.com 就OK啦
再测试一把肯定成功,反正我是把这个问题搞定了
最后再提示一下:
最好先查一下解析文件,看解析地址是否正确
/etc/resolve.conf
对于这个问题就讨论到这里吧,想到什么了再添进去