成天和邮件打交道,难免遇到邮件的发送和接收问题。通常遇到的问题有:网络问题,对方服务器的问题,DNS解析的问题,对方拒绝接收你的邮件等。可以通过以下一些简单的方法,诊断问题的所在:
1)分析NOT DELIVERY REPORT:
一般邮件传送失败后,邮件服务器会返回一份关于这个邮件传送失败的报告。在报告中一般会阐明原因,这种故障我们很容易解决。
2)使用NSLOOKUP工具分析:
通过使用NSLOOKUP,至少可以进行两个方面的测试:1--测试对方的DNS是否可以解析,2--测试对方的MX记录。
命令1:server----更改当前的DNS解析服务器。
启动command模式后,键入nslookup,并将DNS服务器更改为东莞的DNS服务器,这样可以加快解吸的速度和准确性:
C:\>nslookup
Default Server: sncn1.jenkin.com.cn
Address: 192.168.1.1
> server 211.162.96.1
Default Server: [211.162.96.1]
Address: 211.162.96.1
测试一下21cn.com的IP地址记录:
> 21cn.com
Server: [211.162.96.1]
Address: 211.162.96.1
Non-authoritative answer:
Name: 21cn.com
Addresses: 61.140.60.90, 61.140.60.83
命令2:SET TYPE=MX (SET Q=MX)----切换到查看MX记录
进入nslookup后,系统默认查看的记录是A记录,如果要切换到查看MX记录,需要使用set type=mx的命令,切换到A记录,使用set q=A(注意:这里的set type 与set q是同等含义)。
我们现在查看163.com的MX记录:
> set q=mx
> 163.com
Server: [211.162.96.1]
Address: 211.162.96.1
DNS request timed out.
timeout was 2 seconds.
Non-authoritative answer:
163.com MX preference = 50, mail exchanger = mx.mail.163.com
163.com nameserver = ns3.nease.net
163.com nameserver = ns.nease.net
ns.nease.net internet address = 202.106.185.75
ns3.nease.net internet address = 220.181.28.3
我们得到的163。com的邮件记录服务器:mx.mail.163.com,下面的一些都是备用服务器。通过使用nslookup命令,可以很容易得到邮件服务器的MX记录,如果测试不到MX记录,则说明该邮件服务器的DNS不能解析,从而无法使用邮件服务。
3)使用Telnet检测SMTP服务是否运行正常:
在取得邮件服务器的MX地址后,我们通过telnet来连接到该地址,对服务器的SMTP服务进行测试。
c:>telnet mx.mai.163.com 25
220 163.com Coremail SMTP(Anti Spam) System
系统返回220,说明成功连接到服务器。如出现”Could not open connection to the host, on port 25: Connection failed“,则说明对方的服务器没有运行邮件服务。
连接服务器成功后,我们先了解几个关于SMTP的命令:
helo 识别发送方到接收SMTP的一个HELLO命令
mail from : 此命令告诉接收方一个新邮件发送的开始,并对所有的状态和缓冲区进行初始化。此命令开始一个邮件传输处理,最终完成将邮件数据传送到一个或多个邮箱中。
rcpt to: 标识各个邮件接收者的地址
data 接收SMTP将把其后的行为看作邮件数据去处理
reset 退出/复位当前的邮件传输
noop 要求接收SMTP仅做OK应答
quit 退出
检测过程:
注意:由于某些telnet程序无回显功能,我们无法看到自己输入的命令,所以首先开启回显,以方便我们调试。
c:>telnet
Microsoft Telnet>set local_echo //xp为set localecho
helo test.com
如果返回205OK,则正常,否则说明对方服务器不接受你的请求。
mail from:info@test.com
发送测试邮件。如果返回250OK,则正常,如果返回XXX blocked/refused之类的信息,则说明对方不接受你的邮件,可能被归入垃圾邮件。
rcpt to:info@yousite.com
判断对方是否存在该邮件帐号,如果对方的邮件服务器中存在该地址,则返回250OK,否则返回550。
data
后面为发送邮件的内容,结束以.(半角点)+回车
quit
退出telnet.经过以上的对对方邮件服务器检测,可以基本了解问题所在,我们可以针对不同的提示采取相应的措施。
4)通过检测服务器的POP3服务,确定邮件接收是否正常:
上面的问题重要讨论了邮件的发送问题,现在来看如何检测接收的问题。使用OUTLOOK之类的邮件接收软件都要采用一个协议--POP3,通过检查服务器POP3协议是否使用正常,我们可以解决某些邮件无法接收的问题。
同样,通过Telnet与服务器建立对话,如telnet pop3.yousite.com 110
建立成功会显示这样的消息:+OK jenkin.com.cn POP MDaemon 6.0.8 ready
@yousite.com>
登陆到服务器:USER [domain / Windows_NT_account /] Exchange_mailbox
如:user root
输入密码:PASS 你的邮箱的密码
返回:+OK root@yousite.com's mailbox has 9 total messages (5622801 byte(s)).
列出所有邮件列表: LIST
+OK
1 2895
2 1160
3 11050
4 126278
5 1503752
6 2858596
7 3352
8 54042
9 1061676
查看某个邮件信息:RETR message number
如:retr 2895
返回邮件信息(略)
退出:quit
通过上面的分析,我们可以检测客户端与服务器的连接问题。