郵件故障查詢及解決方法
信息發(fā)達(dá)的今天,作為人們工作與生活的必不可少的工具,郵件技術(shù)與相關(guān)人才是何其重要。所以按納不住,拋一塊磚,希望能引起大家的共同關(guān)注,多多共同研究郵件方面的技術(shù)。 郵件服器軟件種類繁多,但大都離不開(kāi)SM
信息發(fā)達(dá)的今天,作為人們工作與生活的必不可少的工具,郵件技術(shù)與相關(guān)人才是何其重要。所以按納不住,拋一塊磚,希望能引起大家的共同關(guān)注,多多共同研究郵件方面的技術(shù)。 郵件服器軟件種類繁多,但大都離不開(kāi)SMTP (簡(jiǎn)單郵件傳輸協(xié)議),本文就從SMTP 協(xié)議入手講解如何檢測(cè)一般性郵件故障。所以這里不必考慮你用的是EXCHANGE 還是IMAIL 等等。
故障設(shè)置案例:
突然發(fā)現(xiàn):自己的公司的郵件:mymail@me.com 不能發(fā)郵件給 abc@163.com 了? 老板問(wèn)你:為什么?
常見(jiàn)可能故障:
1. 對(duì)方郵箱爆滿,附件超過(guò)對(duì)方郵箱允許容量。
2. 對(duì)方DNS 故障。
3. 對(duì)方郵件服務(wù)器故障。
4. 對(duì)方拒絕收取你的郵件。
5. 其他方面故障,為省篇幅這里不做討論。
開(kāi)刀啦。
一、分析故障從讀NDR 開(kāi)始。
一般郵件傳送失敗, 服務(wù)器都會(huì)給你NDR(NOT DELIVERY REPORT未送達(dá)報(bào)告) 。通過(guò)閱讀報(bào)告能獲得很多信息。
NDR 通常是英文的,夾帶著N 多數(shù)據(jù)如MSID ,組織,目的地等,顯得有點(diǎn)亂。不過(guò)幸好這種故障NDR 都會(huì)比較容易的捕捉匯報(bào),通常包含size exceed; data exceed等就說(shuō)明對(duì)方郵箱已滿或者附件過(guò)大。
而類似:HOST NOT FIND,COMMUNICATION FAILURE的NDR 或者干脆什么信息都沒(méi)有的呢就需要我們進(jìn)一步測(cè)試了。這也是今天我主要想說(shuō)的。
二、NSLOOKUP 打先鋒。
作用:他的用途很廣泛,基本上作為一個(gè)學(xué)網(wǎng)絡(luò)尤其是廣域網(wǎng)的人要對(duì)這個(gè)命令非常熟悉。這里我們用他來(lái)完成以下任務(wù):
1. 測(cè)試對(duì)方的域名是否可以解析,如果不能解析則可能這一時(shí)刻對(duì)方的DNS 服務(wù)器故障。導(dǎo)致通訊郵件發(fā)送失敗。
2. 獲得對(duì)方的MX (郵件)紀(jì)錄
從NDR 中我們可以得到一些信息,HOST NOT FIND (主機(jī)未找到),COMMUNICATION FALURE (通訊失?。?,這些提示都顯示著網(wǎng)絡(luò)的某個(gè)地方出現(xiàn)了故障。所以我們就要先從這里下手。事實(shí)上當(dāng)我從DNR 中得不到任何有幫助的信息的時(shí)候我也是先這樣開(kāi)始的:
運(yùn)行:CMD 鍵入:NSLOOKUP 命令。(WINDOWS 系列需NT 級(jí)系統(tǒng)才有,你可以使用在CMD 中HELP 命令獲得NSLOOKUP 的使用指南)。
進(jìn)入操作界面,操作提示符如下:
>
,表示開(kāi)始接受命令狀態(tài)。
我只講解兩個(gè)有用的關(guān)鍵詞
第一個(gè):SERVER
進(jìn)入NSLOOKUP 后,系統(tǒng)會(huì)將默認(rèn)的SERVER 設(shè)置為你當(dāng)前獲得的DNS SERVER 。顯示如下
>Default Server: dns.me.com
>Address: 10.10.10.2
>
有時(shí)候因?yàn)镃ACHE 的原因,我們需要用外部更好的DNS SERVER 來(lái)幫助我們完成測(cè)試。比如我LAN 網(wǎng)內(nèi)的DNS 為10.10.10.2,為了更快更好的獲得結(jié)果,我需要用廣東省的鐵通的DNS 服務(wù)器來(lái)幫我完成測(cè)試,則敲入:
鍵入:
>SERVER 211.98.2.4
顯示為:
>Default Server: ns.cn-railway.net
>Address: 211.98.2.4
>
表示當(dāng)前默認(rèn)的DNS 解析服務(wù)器更改為211.98.2.4,隨后我們敲入的請(qǐng)求都將從這臺(tái)服務(wù)器獲得反饋。我們可以測(cè)試一下鍵入:
> 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 這個(gè)主機(jī)的IP 。一般情況下只會(huì)有一個(gè)IP 紀(jì)錄。為什么有這么多呢?這里牽涉到DNS 循環(huán)來(lái)解決服務(wù)器負(fù)擔(dān)問(wèn)題。我們不做詳細(xì)介紹。
第二個(gè):SET TYPE=MX (SET Q=MX)
通常進(jìn)入NSLOOKUP ,默認(rèn)操作類型為A 紀(jì)錄. 但是我們要解決的是郵件問(wèn)題,當(dāng)然需要查看的是郵件MX 紀(jì)錄。也就是發(fā)送給 abc@163.com 的郵件會(huì)送到哪臺(tái)郵件服務(wù)器上去。 這條命令就告訴服務(wù)器,我需要獲得該域名的郵件紀(jì)錄。set type=mx set q=mx 效果是一樣的。當(dāng)然如果你要察看A 紀(jì)錄,也可以用set q=A 切換。
,鍵入命令:
>set q=mx
再敲:
>163.com
得到不同結(jié)果如下:
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
由上可知,郵件紀(jì)錄會(huì)發(fā)送給mx.mail.163.com 這臺(tái)服務(wù)器。同樣下面列出很多條紀(jì)錄對(duì)應(yīng)到不同IP ,都是處于緩解服務(wù)器負(fù)擔(dān),以及備用,分流作用。
特別注意:
1. 請(qǐng)多更換幾臺(tái)DNS 服務(wù)器進(jìn)行測(cè)試,因?yàn)椴煌腄NS 會(huì)因CACHE 不同而得到不同的結(jié)果。這樣比較準(zhǔn)確的判斷是否為對(duì)方的DNS 故障,或者是自己的DNS 服務(wù)故障。
2. 如果使用NSLOOKUP 在同一DNS 服務(wù)器上測(cè)試多次以及在不同的服務(wù)器上測(cè)試多次,如果無(wú)法得到A 紀(jì)錄或者無(wú)法得到MX 紀(jì)錄。則說(shuō)明對(duì)方的DNS 出現(xiàn)問(wèn)題。所以導(dǎo)致無(wú)法通訊,發(fā)送郵件。某些時(shí)候因?yàn)榫W(wǎng)絡(luò)原因會(huì)得到
DNS request timed out.
timeout was 2 seconds.
*** Request to [211.98.4.1] timed-out
類似的結(jié)果。請(qǐng)?jiān)嚩鄮状巍?/p>
好了,找到了MX 郵件紀(jì)錄,下面開(kāi)始真正的檢測(cè)之旅吧,如果你是新手,你一定會(huì)覺(jué)得下面的檢測(cè)居然這么神奇。下一節(jié)你在檢測(cè)的同時(shí),你也會(huì)明白垃圾郵件,匿名郵件產(chǎn)生的原理了。
,上一篇文章我說(shuō)到,如何判定DNS 是否故障,以及如何獲得對(duì)方域名的MX 紀(jì)錄。如果我們能正確獲得上述信息也就說(shuō)明不存在該類問(wèn)題。則我們進(jìn)行下一步的檢測(cè)。
本章我將介紹如何使用 telnet 來(lái)檢測(cè)運(yùn)行簡(jiǎn)單郵件傳輸協(xié)議 (SMTP) 服務(wù)的郵件服務(wù)器上,以解決 SMTP 通信問(wèn)題。默認(rèn)情況下,SMTP 偵聽(tīng)端口 25。
在啟動(dòng) Telnet 會(huì)話之前,必須具有要將此測(cè)試郵件發(fā)送到的目標(biāo)用戶的完整 SMTP 電子郵件地址。該電子郵件地址必須采用以下格式:
User@Site.Domain.com
本例中對(duì)應(yīng)為:
abc@163.com
我們已經(jīng)使用NSLOOKUP 獲取 Internet 郵件交換器記錄163.com 的為:mx.mail.163.com 在CMD 窗口中鍵入:
c:>telnet mx.mail.163.com 25
TELNET 使用格式:telnet 服務(wù)器名 端口號(hào)
獲得以下信息:
220 Coremail SMTP(Anti Spam) System (163com[20050206])
雖然該條信息220后面的信息可能根據(jù)運(yùn)行的郵件服務(wù)器軟件不同而不同,但是符合運(yùn)行有SMTP 服務(wù),并且已經(jīng)正常啟動(dòng)了的話,那么都會(huì)給出220消息。所以,如果你已經(jīng)獲得了220信息,則說(shuō)明已經(jīng)成功連接到該服務(wù)器。
如果得到其他信息如:
Could not open connection to the host, on port 25: Connection failed
其他信息,則可以說(shuō)明對(duì)方郵件服務(wù)存在故障,如服務(wù)器當(dāng)機(jī),相關(guān)服務(wù)沒(méi)有啟動(dòng)等。導(dǎo)致郵件發(fā)送失敗。
假設(shè)現(xiàn)在不存在該故障,我們獲得了220信息。我們將進(jìn)一步檢測(cè)故障。
注意:
1.Microsoft Telnet 不允許您使用 Backspace 鍵。如果在鍵入時(shí)出錯(cuò),必須按 Enter 鍵,然后開(kāi)始鍵入新的命令。
2. 有些 Telnet 應(yīng)用程序要求您打開(kāi)本地回顯功能,以查看鍵入的命令。要在 Microsoft Telnet 會(huì)話中執(zhí)行此操作,請(qǐng)?jiān)诿钐崾痉庢I入 set local_echo。
在 Microsoft Windows XP 中,應(yīng)鍵入 set localecho 而不是 set local_echo。
3. 提示:500 Command not recognized
檢查該命令并再次鍵入它,或者驗(yàn)證您是否正在與 Microsoft SMTP 服務(wù)器直接通信。
請(qǐng)按照我的說(shuō)明觀察以下步驟,紅色字體為我敲入的命令。黑色部分為顯示結(jié)果,中括號(hào)中是我寫(xiě)的說(shuō)明:
,220 Coremail SMTP(Anti Spam) System (163com[20050206])
helo me.com
[ helo是SMTP 動(dòng)詞集中的一個(gè)動(dòng)詞,me.com 是告訴他將與他通訊的是me.com 這個(gè)域名]
250 mx11
[如果正常,則給出250消息。可能的故障為:me.com blocked. 則說(shuō)明你的域名已被該服務(wù)器阻止,不能向他發(fā)送郵件。解決辦法:與對(duì)方管理員溝通將域名放行。]
mail from:mymail@me.com
[mail from: 告訴他發(fā)件人是誰(shuí):mymail@me.com 注意,有些郵件服務(wù)器會(huì)對(duì)郵件地址進(jìn)行反向檢測(cè),所以盡量使用存在的EMAIL 地址,否則可能提示錯(cuò)誤。]
250 Ok
[如果正常,則給出250消息??赡艿墓收蠟椋?XXX blocked/refused之類的信息. 則說(shuō)明你的域名或郵件地址已被該服務(wù)器阻止,不能向他發(fā)送郵件。特別說(shuō)明:NORTON SMTP GA TEWAY 等軟件都可以設(shè)置域名,垃圾郵件過(guò)濾,他們會(huì)參照一些大型的垃圾郵件管理組織的數(shù)據(jù)庫(kù),如果你的IP 已經(jīng)被列入其中,則這些郵件服務(wù)器也會(huì)自動(dòng)將你的郵件BLOCK 掉,解決辦法:與對(duì)方管理員溝通將域名或郵件地址加入例外中放行,或找ISP 與垃圾郵件管理組織溝通將IP 解鎖]
rcpt to:abc@163.com
[如果正該域中存在這個(gè)郵件地址則給出250消息,否則550消息如下:]
550
[此處,我們得到我們的故障,abc@163.com不存在,或者被禁用所以不能向他發(fā)送郵件。故障解決。以下步驟我們學(xué)習(xí)使用TELNET 直接向某郵件地址發(fā)送郵件]
rcpt to:webmaster@163.com
250 Ok
data
[表示下面為郵件內(nèi)容]
354 End data with
subject:test mail form me.com
[subject: 表示后面是郵件的標(biāo)題, 兩次回車(為什么?參見(jiàn)相關(guān)SMTP 相關(guān)文檔) 后開(kāi)始輸入郵件正文。]
as the title.
. [一個(gè)回車后輸入 . 號(hào)一定要有哦]
250 Ok: queued as SkDBJDx3U0IpFdsF.1
[郵件已放入發(fā)送隊(duì)列中,有些服務(wù)器直接發(fā)送出去]
quit
號(hào)[退出TELNET]
221 Bye
Connection to host lost.
好了。如果通過(guò)以上步驟,我們基本上可以了解到郵件發(fā)送到各個(gè)環(huán)節(jié)是是否存在故障,如果順利通過(guò)而你仍然不能通過(guò)OUTLOOK 或者其他軟件向該郵箱地址發(fā)送郵件的話,則說(shuō)明故障存在與其他部分,這里我們就不討論了。留給后面的同志跟上吧。
第三節(jié)中我們將講如何測(cè)試POP3協(xié)議是否運(yùn)行正常。
設(shè)置問(wèn)題:不能使用POP3協(xié)議接受郵件是我的問(wèn)題,還是服務(wù)器問(wèn)題?
第三節(jié)中我們將講如何測(cè)試POP3協(xié)議是否運(yùn)行正常。
設(shè)置問(wèn)題:不能使用POP3協(xié)議接受郵件是我的問(wèn)題,還是服務(wù)器問(wèn)題?
本文介紹如何遠(yuǎn)程登錄 (Telnet) 到郵件服務(wù)器的 110 端口。
備注: 輸入每一行之后請(qǐng)按 ENTER 鍵:
運(yùn)行以下命令啟動(dòng) Telnet 會(huì)話,格式如下:
Telnet 服務(wù)器IP 或域名 110
如telnet pop3.163.com 110
如果建立了連接,將顯示來(lái)自服務(wù)器的一個(gè)說(shuō)明服務(wù)器版本的信息,它類似如下:
OK Welcome to coremail Mail Pop3 Server (163com[20050206]) ( server_name . domain .com) 通過(guò)使用以下命令登錄到郵箱開(kāi)始通訊:
USER [domain / Windows_NT_account /] Exchange_mailbox
如:user abcd
隨后將顯示以下回應(yīng):
OK core mail
輸入以下命令:
PASS 郵箱的密碼
,隨后將顯示以下回應(yīng)信息,根據(jù)不同的服務(wù)器而不同。:
OK 9 message(s) [5622801 byte(s)]
輸入以下命令列出郵箱中的所有郵件:
LIST
將顯示下面的回應(yīng)信息(取決于郵箱中的郵件數(shù),該信息會(huì)有變化):
OK
1 2895
2 1160
3 11050
4 126278
5 1503752
6 2858596
7 3352
8 54042
9 1061676
郵件編號(hào)是左側(cè)的數(shù)字
輸入以下命令來(lái)檢索郵件:
RETR message number
如:
retr 1
使用郵件編號(hào)選中的郵件將顯示在回應(yīng)信息中,類似如下:
OK 1160 octets
Received: from bj.163.com (unknown [202.108.248.91])
by mx10 (Coremail) with SMTP id GMDGY 9I3kEY8KsE.1
for
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
Message-ID: <9175756.1105086779838.JavaMail.root@bj66.163.com>
From: "網(wǎng)易部落"
To: 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
這個(gè)過(guò)程有助于診斷和解決 POP3 客戶端和位于 Exchange Server 上的郵箱之間的通訊問(wèn)題。