Chinaunix首页 | 论坛 | 博客
  • 博客访问: 513119
  • 博文数量: 173
  • 博客积分: 4112
  • 博客等级: 上校
  • 技术积分: 1577
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-26 10:12
文章分类

全部博文(173)

文章存档

2012年(1)

2010年(172)

我的朋友

分类: 系统运维

2010-07-28 17:35:57

一、如果是服务器经常当机,工作不稳定,请考虑:
1、服务器硬件配置
2、服务器软件配置,包括使用的OS,SERVICEPACK版本、HOTFIX版本、安装的软件、已有的服务
3、机房环境,包括电源供应情况,数据线路情况
4、之前进行过的操作。

二、如果是邮件服务器故障,尤其是SMTP故障,请考虑:
1、主机的SMTPLOG文件(非常重要)
2、服务器使用的线路,是静态还是动态IP
3、服务器使用的DNS,DNSIP地址。
4、服务器或者是整个网络的配置情况,例如单网卡还是双网卡、有无防火墙、有无路由器(这里指正规路由器,而不是市场上所谓的ADSLROUTER等这样的共享器)。
5、服务器上面已有的服务。
6、你目前邮件服务器软件,特别是SMTP的设置情况。
7、发不了邮件的退信或是错误信息是什么?
8、收不了邮件,发件方有没有退信或是错误信息?

电子邮件只能收不能发的几种可能原因
[II]电子邮件只能收不能发的几种可能原因

1.DNS服务器的设置不对。

2.DNS服务器不正常工作。

3.MX记录不对或者没有刷新

4.邮件服务器处于防火墙等后面,防火墙等的设置影响了邮件的发送。

5.如果处于防火墙或路由等后面,没有设置好端口映射。

6.由于处于防火墙等后面,DNS解析无法解析到正确的邮件服务器地址或者MX记录

7.服务器上同时运行了其他的smtp服务。

8.服务器安装了某些代理服务器软件(如wingate),没有正确的配置代理服务器。

9.服务器上安装了个人电脑用的防火墙软件(如NortonPersonFirewall),没有作好正确的配置。

10.IP可能被BLACKLIST

11.请学会使用以下网站功能.

A.检查域名及相关记录

(检查域名及相关记录问题.)

(检查域名及相关记录问题.)

(查检域名及相关记录问题.)

B.查询自己的IP是否被列为垃圾邮件黑名单
(查询自己的IP是否被列为垃圾邮件黑名单)

=

=

(在IP=后填入你现在的IP地址用来查询你被多少RBLList)

C.有关SPF记录

[III]通用快速检测邮件故障思路方法
本文作者:Freemikej(感谢Freemikej)
原帖:(有关此帖问题请前往该地址讨论)

发一篇我几年前写的一些文章。因为看见很多朋友对于邮件故障的检测不是很熟。所以希望我的文章内对大伙有启发。

最早发表于2005年一个朋友的网站。

信息发达的今天,作为人们工作与生活的必不可少的工具,邮件技术与相关人才是何其重要。所以按纳不住,抛一块砖,希望能引起大家的共同关注,多多共同研究邮件方面的技术。
邮件服器软件种类繁多,但大都离不开SMTP(简单邮件传输协议),本文就从SMTP协议入手讲解如何检测一般性邮件故障。所以这里不必考虑你用的是EXCHANGE还是IMAIL等等。
故障设置案例:

突然发现:自己的公司的邮件:mymail@me.com不能发邮件给了?
老板问你:为什么?
常见可能故障:
1.对方邮箱爆满,附件超过对方邮箱允许容量。
2.对方DNS故障。
3.对方邮件服务器故障。
4.对方拒绝收取你的邮件。
5.其他方面故障,为省篇幅这里不做讨论。
开刀啦。

一、分析故障从读NDR开始。

一般邮件传送失败,服务器都会给你NDR(NOTDELIVERYREPORT未送达报告)。通过阅读报告能获得很多信息。

NDR通常是英文的,夹带着N多数据如MSID,组织,目的地等,显得有点乱。不过幸好这种故障NDR都会比较容易的捕捉汇报,通常包含sizeexceed;dataexceed等就说明对方邮箱已满或者附件过大。

而类似:HOSTNOTFIND,COMMUNICATIONFAILURE的NDR或者干脆什么信息都没有的呢就需要我们进一步测试了。这也是今天我主要想说的。
二、NSLOOKUP打先锋。

作用:他的用途很广泛,基本上作为一个学网络尤其是广域网的人要对这个命令非常熟悉。这里我们用他来完成以下任务:

1.测试对方的域名是否可以解析,如果不能解析则可能这一时刻对方的DNS服务器故障。导致通讯邮件发送失败。
2.获得对方的MX(邮件)纪录
从NDR中我们可以得到一些信息,HOSTNOTFIND(主机未找到),COMMUNICATIONFALURE(通讯失败),这些提示都显示着网络的某个地方出现了故障。所以我们就要先从这里下手。事实上当我从DNR中得不到任何有帮助的信息的时候我也是先这样开始的:

运行:CMD键入:NSLOOKUP命令。(WINDOWS系列需NT级系统才有,你可以使用在CMD中HELP命令获得NSLOOKUP的使用指南)。
进入操作界面,操作提示符如下:
>
表示开始接受命令状态。

我只讲解两个有用的关键词

第一个:SERVER

进入NSLOOKUP后,系统会将默认的SERVER设置为你当前获得的DNSSERVER。显示如下
>DefaultServer:dns.me.com
>Address:10.10.10.2

>

有时候因为CACHE的原因,我们需要用外部更好的DNSSERVER来帮助我们完成测试。比如我LAN网内的DNS为10.10.10.2,为了更快更好的获得结果,我需要用广东省的铁通的DNS服务器来帮我完成测试,则敲入:

键入:
>SERVER211.98.2.4

显示为:
>DefaultServer:ns.cn-railway.net
>Address:211.98.2.4

>
表示当前默认的DNS解析服务器更改为211.98.2.4,随后我们敲入的请求都将从这台服务器获得反馈。我们可以测试一下键入:
>163.com
Server:[ns.cn-railway.net]
Address:211.98.2.4
Non-authoritativeanswer:
Name:163.com
Addresses:202.106.168.103,202.106.168.104,202.106.168.109,202.106.168.121
202.108.36.153

这里得到的是163.com域名中www这个主机的IP。一般情况下只会有一个IP纪录。为什么有这么多呢?这里牵涉到DNS循环来解决服务器负担问题。我们不做详细介绍。

第二个:SETTYPE=MX(SETQ=MX)

通常进入NSLOOKUP,默认操作类型为A纪录.但是我们要解决的是邮件问题,当然需要查看的是邮件MX纪录。也就是发送给的邮件会送到哪台邮件服务器上去。这条命令就告诉服务器,我需要获得该域名的邮件纪录。settype=mxsetq=mx效果是一样的。当然如果你要察看A纪录,也可以用setq=A切换。
键入命令:
>setq=mx
再敲:
>163.com
得到不同结果如下:
Server:[ns.cn-railway.net]
Address:211.98.2.4
Non-authoritativeanswer:
163.comMXpreference=50,mailexchanger=mx.mail.163.com

mx.mail.163.cominternetaddress=202.108.44.208
mx.mail.163.cominternetaddress=202.108.44.209
mx.mail.163.cominternetaddress=202.108.44.210
mx.mail.163.cominternetaddress=202.108.44.211
mx.mail.163.cominternetaddress=202.108.44.215
mx.mail.163.cominternetaddress=202.108.44.223
mx.mail.163.cominternetaddress=202.108.44.224
mx.mail.163.cominternetaddress=202.108.44.228
mx.mail.163.cominternetaddress=202.108.44.133
mx.mail.163.cominternetaddress=202.108.44.154
mx.mail.163.cominternetaddress=202.108.44.155
mx.mail.163.cominternetaddress=202.108.44.180
mx.mail.163.cominternetaddress=202.108.44.203
mx.mail.163.cominternetaddress=202.108.44.207

由上可知,邮件纪录会发送给mx.mail.163.com这台服务器。同样下面列出很多条纪录对应到不同IP,都是处于缓解服务器负担,以及备用,分流作用。

特别注意:
1.请多更换几台DNS服务器进行测试,因为不同的DNS会因CACHE不同而得到不同的结果。这样比较准确的判断是否为对方的DNS故障,或者是自己的DNS服务故障。
2.如果使用NSLOOKUP在同一DNS服务器上测试多次以及在不同的服务器上测试多次,如果无法得到A纪录或者无法得到MX纪录。则说明对方的DNS出现问题。所以导致无法通讯,发送邮件。某些时候因为网络原因会得到
DNSrequesttimedout.
timeoutwas2seconds.
***Requestto[211.98.4.1]timed-out

类似的结果。请试多几次。

好了,找到了MX邮件纪录,下面开始真正的检测之旅吧,如果你是新手,你一定会觉得下面的检测居然这么神奇。下一节你在检测的同时,你也会明白垃圾邮件,匿名邮件产生的原理了。

上一篇文章我说到,如何判定DNS是否故障,以及如何获得对方域名的MX纪录。如果我们能正确获得上述信息也就说明不存在该类问题。则我们进行下一步的检测。
本章我将介绍如何使用telnet来检测运行简单邮件传输协议(SMTP)服务的邮件服务器上,以解决SMTP通信问题。默认情况下,SMTP侦听端口25。

在启动Telnet会话之前,必须具有要将此测试邮件发送到的目标用户的完整SMTP电子邮件地址。该电子邮件地址必须采用以下格式:

本例中对应为:

我们已经使用NSLOOKUP获取Internet邮件交换器记录163.com的为:mx.mail.163.com
在CMD窗口中键入:

c:\>telnetmx.mail.163.com25

TELNET使用格式:telnet服务器名端口号

获得以下信息:

220CoremailSMTP(AntiSpam)System(163com[20050206])

虽然该条信息220后面的信息可能根据运行的邮件服务器软件不同而不同,但是符合运行有SMTP服务,并且已经正常启动了的话,那么都会给出220消息。所以,如果你已经获得了220信息,则说明已经成功连接到该服务器。

如果得到其他信息如:
Couldnotopenconnectiontothehost,onport25:Connectionfailed
其他信息,则可以说明对方邮件服务存在故障,如服务器当机,相关服务没有启动等。导致邮件发送失败。

假设现在不存在该故障,我们获得了220信息。我们将进一步检测故障。

注意:
1.MicrosoftTelnet不允许您使用Backspace键。如果在键入时出错,必须按Enter键,然后开始键入新的命令。
2.有些Telnet应用程序要求您打开本地回显功能,以查看键入的命令。要在MicrosoftTelnet会话中执行此操作,请在命令提示符处键入setlocal_echo。
在MicrosoftWindowsXP中,应键入setlocalecho而不是setlocal_echo。
3.提示:500Commandnotrecognized
检查该命令并再次键入它,或者验证您是否正在与MicrosoftSMTP服务器直接通信。

请按照我的说明观察以下步骤,红色字体为我敲入的命令。黑色部分为显示结果,中括号中是我写的说明:

220CoremailSMTP(AntiSpam)System(163com[20050206])

helome.com
[helo是SMTP动词集中的一个动词,me.com是告诉他将与他通讯的是me.com这个域名]

250mx11

[如果正常,则给出250消息。可能的故障为:me.comblocked.则说明你的域名已被该服务器阻止,不能向他发送邮件。解决办法:与对方管理员沟通将域名放行。]

mailfrom:mymail@me.com

[mailfrom:告诉他发件人是谁:注意,有些邮件服务器会对邮件地址进行反向检测,所以尽量使用存在的EMAIL地址,否则可能提示错误。]

250Ok

[如果正常,则给出250消息。可能的故障为:XXXblocked/refused之类的信息.则说明你的域名或邮件地址已被该服务器阻止,不能向他发送邮件。特别说明:NORTONSMTPGATEWAY等软件都可以设置域名,垃圾邮件过滤,他们会参照一些大型的垃圾邮件管理组织的数据库,如果你的IP已经被列入其中,则这些邮件服务器也会自动将你的邮件BLOCK掉,解决办法:与对方管理员沟通将域名或邮件地址加入例外中放行,或找ISP与垃圾邮件管理组织沟通将IP解锁]

rcptto:abc@163.com

[如果正该域中存在这个邮件地址则给出250消息,否则550消息如下:]

550<

[此处,我们得到我们的故障,不存在,或者被禁用所以不能向他发送邮件。故障解决。以下步骤我们学习使用TELNET直接向某邮件地址发送邮件]

rcptto:webmaster@163.com

250Ok

data

[表示下面为邮件内容]

354Enddatawith.[如果提示邮件内容结束时需要以"."(半角句号)+回车结束]

subject:testmailformme.com

[subject:表示后面是邮件的标题,两次回车(为什么?参见相关SMTP相关文档)后开始输入邮件正文。]

asthetitle.

.[一个回车后输入.号一定要有哦]

250Ok:queuedasSkDBJDx3U0IpFdsF.1
[邮件已放入发送队列中,有些服务器直接发送出去]
quit
号[退出TELNET]

221Bye
Connectiontohostlost.

好了。如果通过以上步骤,我们基本上可以了解到邮件发送到各个环节是是否存在故障,如果顺利通过而你仍然不能通过OUTLOOK或者其他软件向该邮箱地址发送邮件的话,则说明故障存在与其他部分,这里我们就不讨论了。留给后面的同志跟上吧。

第三节中我们将讲如何测试POP3协议是否运行正常。

设置问题:不能使用POP3协议接受邮件是我的问题,还是服务器问题?

第三节中我们将讲如何测试POP3协议是否运行正常。

设置问题:不能使用POP3协议接受邮件是我的问题,还是服务器问题?
本文介绍如何远程登录(Telnet)到邮件服务器的110端口。

备注:输入每一行之后请按ENTER键:
运行以下命令启动Telnet会话,格式如下:
Telnet服务器IP或域名110
如telnetpop3.163.com110
如果建立了连接,将显示来自服务器的一个说明服务器版本的信息,它类似如下:
+OKWelcometocoremailMailPop3Server(163com[20050206])(server_name.domain.com)
通过使用以下命令登录到邮箱开始通讯:
USER[domain/Windows_NT_account/]Exchange_mailbox

如:userabcd
随后将显示以下回应:
+OKcoremail
输入以下命令:
PASS邮箱的密码
随后将显示以下回应信息,根据不同的服务器而不同。:
+OK9message(s)[5622801byte(s)]
输入以下命令列出邮箱中的所有邮件:
LIST
将显示下面的回应信息(取决于邮箱中的邮件数,该信息会有变化):
+OK
12895
21160
311050
4126278
51503752
62858596
73352
854042
91061676
邮件编号是左侧的数字
输入以下命令来检索邮件:
RETRmessagenumber
如:
retr1
使用邮件编号选中的邮件将显示在回应信息中,类似如下:
+OK1160octets
Received:frombj.163.com(unknown[202.108.248.91])
bymx10(Coremail)withSMTPidGMDGY+9I3kEY8KsE.1
for<)
X-Originating-IP:[202.108.248.91]
Received:frombj66.163.com(unknown[202.108.248.66])
bybj.163.com(Postfix)withESMTPidCEA05180A2
for<)
Message-ID:<>
From:"网易部落"<>
To:abcd@163.com
Subject:=?GBK?B?u7bTrcT6vNPI68340teyv8LkoaM=?=
MIME-Version:1.0
Content-Type:text/plain
Content-Transfer-Encoding:8bit
charset:gb2312
Date:Fri,7Jan200516:32:19+0800(CST)
下面是邮件的征文省略。
退出
quit
+OKcoremail
这个过程有助于诊断和解决POP3客户端和位于ExchangeServer上的邮箱之间的通讯问题。

阅读(1571) | 评论(0) | 转发(0) |
0

上一篇:helo手工邮件全解

下一篇:邮件信头分析

给主人留下些什么吧!~~