`
lean1252
  • 浏览: 217864 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

通用快速检测邮件故障思路方法

阅读更多
邮件服器软件种类繁多,但大都离不开SMTP(简单邮件传输协议),本文就从SMTP协议入手讲解如何检测一般性邮件故障。所以这里不必考虑你用的是EXCHANGE还是IMAIL等等。


故障设置案例:
突然发现:自己的公司的邮件:mymail@me.com 不能发邮件给 abc@163.com 了?
老板问你:为什么?

常见可能故障:
1.对方邮箱爆满,附件超过对方邮箱允许容量。
2.对方DNS故障。
3.对方邮件服务器故障。
4.对方拒绝收取你的邮件。
5.其他方面故障,为省篇幅这里不做讨论。

开刀啦。
一、分析故障从读NDR开始。
一般邮件传送失败,服务器都会给你NDR(NOT DELIVERY REPORT未送达报告)。通过阅读报告能获得很多信息。
NDR通常是英文的,夹带着N多数据如MSID,组织,目的地等,显得有点乱。不过幸好这种故障NDR都会比较容易的捕捉汇报,通常包含size exceed; data exceed等就说明对方邮箱已满或者附件过大。
而类似:HOST NOT FIND,COMMUNICATION FAILURE的NDR或者干脆什么信息都没有的呢就需要我们进一步测试了。这也是今天我主要想说的。

二、NSLOOKUP打先锋。
作用:他的用途很广泛,基本上作为一个学网络尤其是广域网的人要对这个命令非常熟悉。这里我们用他来完成以下任务:
1.测试对方的域名是否可以解析,如果不能解析则可能这一时刻对方的DNS服务器故障。导致通讯邮件发送失败。
2.获得对方的MX(邮件)纪录

从NDR中我们可以得到一些信息,HOST NOT FIND(主机未找到),COMMUNICATION FALURE(通讯失败),这些提示都显示着网络的某个地方出现了故障。所以我们就要先从这里下手。事实上当我从DNR中得不到任何有帮助的信息的时候我也是先这样开始的:
运行:CMD 键入:NSLOOKUP 命令。(WINDOWS系列需NT级系统才有,你可以使用在CMD中HELP命令获得NSLOOKUP的使用指南)。
进入操作界面,操作提示符如下:
>
表示开始接受命令状态。
我只讲解两个有用的关键词
第一个:SERVER
进入NSLOOKUP后,系统会将默认的SERVER设置为你当前获得的DNS SERVER。显示如下
>Default Server:  dns.me.com
>Address:  10.10.10.2
>
有时候因为CACHE的原因,我们需要用外部更好的DNS SERVER来帮助我们完成测试。比如我LAN网内的DNS为10.10.10.2,为了更快更好的获得结果,我需要用广东省的铁通的DNS服务器来帮我完成测试,则敲入:
键入:

>SERVER 211.98.2.4
显示为:
>Default Server:  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-authoritative answer:
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循环来解决服务器负担问题。我们不做详细介绍。
第二个:SET TYPE=MX (SET Q=MX)
通常进入NSLOOKUP,默认操作类型为A纪录.但是我们要解决的是邮件问题,当然需要查看的是邮件MX纪录。也就是发送给 abc@163.com 的邮件会送到哪台邮件服务器上去。 这条命令就告诉服务器,我需要获得该域名的邮件纪录。set type=mx set q=mx 效果是一样的。当然如果你要察看A纪录,也可以用set q=A 切换。
键入命令:
>set q=mx
再敲:
>163.com
得到不同结果如下:
Server:  [ ns.cn-railway.net]
Address:   211.98.2.4

Non-authoritative answer:
163.com MX preference = 50, mail exchanger = mx.mail.163.com
mx.mail.163.com internet address = 202.108.44.208
mx.mail.163.com internet address = 202.108.44.209
mx.mail.163.com internet address = 202.108.44.210
mx.mail.163.com internet address = 202.108.44.211
mx.mail.163.com internet address = 202.108.44.215
mx.mail.163.com internet address = 202.108.44.223
mx.mail.163.com internet address = 202.108.44.224
mx.mail.163.com internet address = 202.108.44.228
mx.mail.163.com internet address = 202.108.44.133
mx.mail.163.com internet address = 202.108.44.154
mx.mail.163.com internet address = 202.108.44.155
mx.mail.163.com internet address = 202.108.44.180
mx.mail.163.com internet address = 202.108.44.203
mx.mail.163.com internet address = 202.108.44.207
由上可知,邮件纪录会发送给mx.mail.163.com这台服务器。同样下面列出很多条纪录对应到不同IP,都是处于缓解服务器负担,以及备用,分流作用。
特别注意:
1.请多更换几台DNS服务器进行测试,因为不同的DNS会因CACHE不同而得到不同的结果。这样比较准确的判断是否为对方的DNS故障,或者是自己的DNS服务故障。
2.如果使用NSLOOKUP在同一DNS服务器上测试多次以及在不同的服务器上测试多次,如果无法得到A纪录或者无法得到MX纪录。则说明对方的DNS出现问题。所以导致无法通讯,发送邮件。某些时候因为网络原因会得到
DNS request timed out.
    timeout was 2 seconds.
*** Request to [211.98.4.1] timed-out
类似的结果。请试多几次。
好了,找到了MX邮件纪录,下面开始真正的检测之旅吧,如果你是新手,你一定会觉得下面的检测居然这么神奇。下一节你在检测的同时,你也会明白垃圾邮件,匿名邮件产生的原理了。当然建议大家不要干坏事哦!

如何判定DNS是否故障,以及如何获得对方域名的MX纪录。如果我们能正确获得上述信息也就说明不存在该类问题。则我们进行下一步的检测。

本章我将介绍如何使用 telnet 来检测运行简单邮件传输协议 (SMTP) 服务的邮件服务器上,以解决 SMTP 通信问题。默认情况下,SMTP 侦听端口 25。
在启动 Telnet 会话之前,必须具有要将此测试邮件发送到的目标用户的完整 SMTP 电子邮件地址。该电子邮件地址必须采用以下格式:
User@Site.Domain.com
本例中对应为:
abc@163.com

我们已经使用NSLOOKUP获取 Internet 邮件交换器记录163.com的为:mx.mail.163.com

在CMD窗口中键入:
c:\>telnet mx.mail.163.com 25
TELNET 使用格式:telnet 服务器名 端口号
获得以下信息:
220 Coremail SMTP(Anti Spam) System (163com[20050206])
虽然该条信息220后面的信息可能根据运行的邮件服务器软件不同而不同,但是符合运行有SMTP服务,并且已经正常启动了的话,那么都会给出220消息。所以,如果你已经获得了220信息,则说明已经成功连接到该服务器。
如果得到其他信息如:
Could not open connection to the host, on port 25: Connection failed
其他信息,则可以说明对方邮件服务存在故障,如服务器当机,相关服务没有启动等。导致邮件发送失败。
假设现在不存在该故障,我们获得了220信息。我们将进一步检测故障。
注意:
1.Microsoft Telnet 不允许您使用 Backspace 键。如果在键入时出错,必须按 Enter 键,然后开始键入新的命令。
2.有些 Telnet 应用程序要求您打开本地回显功能,以查看键入的命令。要在 Microsoft Telnet 会话中执行此操作,请在命令提示符处键入 set local_echo。
在 Microsoft Windows XP 中,应键入 set localecho 而不是 set local_echo。
3.提示:500 Command not recognized
检查该命令并再次键入它,或者验证您是否正在与 Microsoft SMTP 服务器直接通信。
请按照我的说明观察以下步骤,红色字体为我敲入的命令。黑色部分为显示结果,中括号中是我写的说明:
220 Coremail SMTP(Anti Spam) System (163com[20050206])
helo me.com
[ helo是SMTP动词集中的一个动词,me.com是告诉他将与他通讯的是me.com这个域名]
250 mx11   
[如果正常,则给出250消息。可能的故障为:me.com blocked.则说明你的域名已被该服务器阻止,不能向他发送邮件。解决办法:与对方管理员沟通将域名放行。]
mail from:mymail@me.com
[mail from: 告诉他发件人是谁:mymail@me.com 注意,有些邮件服务器会对邮件地址进行反向检测,所以尽量使用存在的EMAIL地址,否则可能提示错误。]
250 Ok
[如果正常,则给出250消息。可能的故障为: XXX blocked/refused之类的信息.则说明你的域名或邮件地址已被该服务器阻止,不能向他发送邮件。特别说明:NORTON SMTP GATEWAY 等软件都可以设置域名,垃圾邮件过滤,他们会参照一些大型的垃圾邮件管理组织的数据库,如果你的IP已经被列入其中,则这些邮件服务器也会自动将你的邮件 BLOCK掉,解决办法:与对方管理员沟通将域名或邮件地址加入例外中放行,或找ISP与垃圾邮件管理组织沟通将IP解锁]
rcpt tabc@163.com
[如果正该域中存在这个邮件地址则给出250消息,否则550消息如下:]
550 <abc@163.com>: Invalid User
[此处,我们得到我们的故障,abc@163.com不存在,或者被禁用所以不能向他发送邮件。故障解决。以下步骤我们学习使用TELNET直接向某邮件地址发送邮件]
rcpt twebmaster@163.com
250 Ok
data
[表示下面为邮件内容]
354 End data with <CR><LF>.<CR><LF> [如果提示邮件内容结束时需要以" . "(半角句号)+回车 结束]
subject:test mail form me.com
[subject: 表示后面是邮件的标题,两次回车(为什么?参见相关SMTP相关文档)后开始输入邮件正文。]
as the title.
. [一个回车后输入 . 号一定要有哦]
250 Ok: queued as SkDBJDx3U0IpFdsF.1

[邮件已放入发送队列中,有些服务器直接发送出去]quit

号[退出TELNET]
221 Bye

Connection to host lost.
好了。如果通过以上步骤,我们基本上可以了解到邮件发送到各个环节是是否存在故障,如果顺利通过而你仍然不能通过OUTLOOK或者其他软件向该邮箱地址发送邮件的话,则说明故障存在与其他部分,这里我们就不讨论了。留给后面的同志跟上吧。
第三节中我们将讲如何测试POP3协议是否运行正常。
设置问题:不能使用POP3协议接受邮件是我的问题,还是服务器问题?

我们将讲如何测试POP3协议是否运行正常。
设置问题:不能使用POP3协议接受邮件是我的问题,还是服务器问题?

本文介绍如何远程登录 (Telnet) 到邮件服务器的 110 端口。
备注: 输入每一行之后请按 ENTER 键:
运行以下命令启动 Telnet 会话,格式如下:
Telnet 服务器IP或域名 110
如telnet pop3.163.com 110


如果建立了连接,将显示来自服务器的一个说明服务器版本的信息,它类似如下:
+OK Welcome to coremail Mail Pop3 Server (163com[20050206]) ( server_name . domain .com)

通过使用以下命令登录到邮箱开始通讯:
USER [domain / Windows_NT_account /] Exchange_mailbox
如:user abcd

随后将显示以下回应:
+OK core mail

输入以下命令:
PASS 邮箱的密码

随后将显示以下回应信息,根据不同的服务器而不同。:
+OK 9 message(s) [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 1

使用邮件编号选中的邮件将显示在回应信息中,类似如下:
+OK 1160 octets
Received: from bj.163.com (unknown [202.108.248.91])
        by mx10 (Coremail) with SMTP id GMDGY+9I3kEY8KsE.1
        for <abcd@163.com>; Fri, 07 Jan 2005 16:31:43 +0800 (CST)
X-Originating-IP: [202.108.248.91]
Received: from bj66.163.com (unknown [202.108.248.66])
        by bj.163.com (Postfix) with ESMTP id CEA05180A2
        for <abcd@163.com>; Fri,  7 Jan 2005 16:32:19 +0800 (CST)
Message-ID: <9175756.1105086779838.JavaMail.root@bj66.163.com>
From: "网易部落" <admin@bulo.163.com>
T abcd@163.com
Subject: =?GBK?B?u7bTrcT6vNPI68340teyv8LkoaM=?=
MIME-Version: 1.0
Content-Type: text/plain
Content-Transfer-Encoding: 8bit
charset: gb2312
Date: Fri,  7 Jan 2005 16:32:19 +0800 (CST)
下面是邮件的征文省略。

退出
quit
+OK core mail
这个过程有助于诊断和解决 POP3 客户端和位于 Exchange Server 上的邮箱之间的通讯问题。 
分享到:
评论

相关推荐

    网络故障诊断排除的思路和方法

    除了上述通用的故障排除方法外,还有一种常用的分层故障排除法,这种方法按照OSI七层模型或TCP/IP四层模型的顺序,从底层到高层逐层检查问题所在。例如,首先检查物理层是否有连接问题,接着是数据链路层的配置问题...

    OBD通用故障码

    本文将详细介绍一些常见的OBD通用故障码及其含义,帮助车主或技术人员快速定位问题。 #### 二、故障码解析 ##### 1. **P0000** - **含义**:此代码表示没有检测到任何故障。它不是实际的故障码,而是用于表示当前...

    2021-2022年收藏的精品资料上海通用别克制动系统故障诊断与维修论文.doc

    动态检查通过平板式制动检测台测量各车轮制动力和动态轮重,静态检查则通过滚筒反力式制动检验台检测制动力上升和释放的过程,以评估制动系统的整体性能和故障点。 综上所述,对于上海通用别克的制动系统故障,需要...

    网络关键设备安全通用检测方法.pdf

    对这些关键设备的安全通用检测方法主要规定在《网络关键设备安全通用检测方法》(T/TAF088-2021)中。 检测方法首先关注的是设备标识的安全性。具体来说,硬件标识安全要求网络关键设备整机和主要部件具备唯一性...

    输入训练神经网络PCA故障检测方法

    ### 输入训练神经网络PCA故障检测方法 #### 一、引言与背景 主成分分析(Principal Component Analysis,PCA)作为一种有效的降维技术,在数据分析领域有着广泛的应用。然而,传统的线性PCA方法对于处理非线性数据...

    一种通用的工业机器人位姿检测方法.pdf

    标题中提及的“通用的工业机器人位姿检测方法”指的是一个专门用于检测工业机器人位姿准确度和重复性的技术方案。位姿检测是机器人领域内一个非常关键的技术点,涉及机器人在三维空间的位置和方向的精确测量。通用性...

    电子政务-便携式通用雷达电源模块故障诊断仪.zip

    本文将围绕电子政务中的便携式通用雷达电源模块故障诊断仪,深入探讨其工作原理、常见故障及诊断方法。 首先,我们来理解一下便携式通用雷达电源模块的作用。这种模块设计精巧,具有高度的灵活性和兼容性,可以为...

    2018.12-Web弱口令通用检测方法探究1

    Web 弱口令通用检测方法探究 本资源旨在探究 Web 弱口令通用检测方法,旨在检测 Web 应用程序中的弱口令问题。该方法使用 C# 语言编写,通过 GitHub 上的开源项目 FuzzScanner 实现。 Web 弱口令检测方法 Web 弱...

    汽车OBD通用故障码统计表.rar

    它们反映了车身电子设备可能出现的问题,对于检测和修复这些非动力系统故障十分有用。 C类故障码涉及到的是通信问题,比如CAN总线(Controller Area Network)或其他车辆网络的错误。这些代码可以揭示车辆内部不同...

    西门子PLC的主要故障及处理方法

    如果检测到故障,首先要检查接线是否松动,组件是否损坏。外围线路的故障排查需要耐心和细致,因为问题可能出现在任何一个细节部分。 在实际维护过程中,为了减少故障的发生和提高维修效率,应定期对PLC进行检查和...

    2021-2022年收藏的精品资料上海通用别克ABS故障诊断与排除.论文(1).doc

    ABS通过监控每个车轮的转速,当检测到某个车轮即将抱死时,会快速而频繁地调整制动压力,以保持车轮与路面的接触,提供最大的制动力,同时允许驾驶者保持对车辆方向的控制。 【ABS工作原理】 ABS系统由传感器、...

    HC12011A002 快速检测技术

    2. **通用故障检测技术**:如BFD(双向转发检测),可以应用于多个层次的故障检测,具有较高的灵活性和适用性。 #### 五、故障检测的层次划分 按照TCP/IP参考模型,故障检测技术可以划分为以下几个层次: 1. **...

    java 通用http发送方法 java 通用http发送方法

    java 通用http发送方法 java 通用http发送方法java 通用http发送方法 java 通用http发送方法java 通用http发送方法 java 通用http发送方法java 通用http发送方法 java 通用http发送方法java 通用http发送方法 java ...

    含分布式电源配电网通用故障电流计算方法.pdf

    总结来说,该研究提出的通用故障电流计算方法考虑了分布式电源的特性,特别是低电压穿越的要求,利用叠加定理将计算过程简化,同时采用了迭代算法处理逆变器并网的复杂情况,使得计算更高效、准确。这种方法对于优化...

    非预期故障诊断通用模型和OCPCA实现

    本话题聚焦于“非预期故障诊断通用模型和OCPCA实现”,这是一种创新性的故障诊断策略,它利用了原创的OCPCA(One-Class Principal Component Analysis,单类主成分分析)方法。 OCPCA是一种无监督学习的模式识别...

    通用的可靠性设计分析方法.pdf

    通用的可靠性设计分析方法 通用的可靠性设计分析方法是指在产品设计阶段对产品的可靠性进行分析和评估,以确保产品满足用户的需求和期望。本文将对通用的可靠性设计分析方法进行详细的介绍,包括任务剖面、寿命剖面...

    通用发送邮件的jar包

    它通常会包含一些预设的方法,比如`sendMail(String from, String[] to, String subject, String body, Properties props)`,使得开发者无需深入了解JavaMail的具体用法就能快速实现邮件发送。这类工具库通常会对...

    网络故障排错思路.pdf

    在进行网络故障排错时,首先要理解,许多故障往往源于看似微不足道的小问题,如网络电缆的松动。因此,排查过程中需仔细检查...熟悉这些基本的故障诊断工具和思路,将有助于快速定位并解决问题,保证网络的稳定运行。

Global site tag (gtag.js) - Google Analytics