通用快速檢測郵件故障思路方法【轉】

信息發達的今天,做爲人們工做與生活的必不可少的工具,郵件技術與相關人才是何其重要。因此按納不住,拋一塊磚,但願能引發你們的共同關注,多多共同研究郵件方面的技術。web

郵件服器軟件種類繁多,但大都離不開SMTP(簡單郵件傳輸協議),本文就從SMTP協議入手講解如何檢測通常性郵件故障。因此這裏沒必要考慮你用的是EXCHANGE仍是IMAIL等等。數據庫

故障設置案例:服務器

忽然發現:本身的公司的郵件:mymail@me.com 不能發郵件給 abc@163.com 了?網絡

老闆問你:爲何?dom

常見可能故障:koa

1.對方郵箱爆滿,附件超過對方郵箱容許容量。ide

2.對方DNS故障。工具

3.對方郵件服務器故障。學習

4.對方拒絕收取你的郵件。測試

5.其餘方面故障,爲省篇幅這裏不作討論。

開刀啦。

1、分析故障從讀NDR開始。

通常郵件傳送失敗,服務器都會給你NDR(NOT DELIVERY REPORT未送達報告)。經過閱讀報告能得到不少信息。

NDR一般是英文的,夾帶着N多數據如MSID,組織,目的地等,顯得有點亂。不過幸虧這種故障NDR都會比較容易的捕捉彙報,一般包含size exceed; data exceed等就說明對方郵箱已滿或者附件過大。

而相似:HOST NOT FIND,COMMUNICATION FAILURE的NDR或者乾脆什麼信息都沒有的呢就須要咱們進一步測試了。這也是今天我主要想說的。

2、NSLOOKUP打先鋒。

做用:他的用途很普遍,基本上做爲一個學網絡尤爲是廣域網的人要對這個命令很是熟悉。這裏咱們用他來完成如下任務:

1.測試對方的域名是否能夠解析,若是不能解析則可能這一時刻對方的DNS服務器故障。致使通信郵件發送失敗。

2.得到對方的MX(郵件)紀錄

從NDR中咱們能夠獲得一些信息,HOST NOT FIND(主機未找到),COMMUNICATION FALURE(通信失敗),這些提示都顯示着網絡的某個地方出現了故障。因此咱們就要先從這裏下手。事實上當我從DNR中得不到任何有幫助的信息的時候我也是先這樣開始的:

運行:CMD 鍵入:NSLOOKUP 命令。(WINDOWS系列需NT級系統纔有,你可使用在CMD中HELP命令得到NSLOOKUP的使用指南)。

進入操做界面,操做提示符以下:

>

表示開始接受命令狀態。

我只講解兩個有用的關鍵詞

第一個:SERVER

進入NSLOOKUP後,系統會將默認的SERVER設置爲你當前得到的DNS SERVER。顯示以下

默認服務器: localhost

Address: 127.0.0.1

>

有時候由於CACHE的緣由,咱們須要用外部更好的DNS SERVER來幫助咱們完成測試。好比我LAN網內的DNS爲127.0.0.1,爲了更快更好的得到結果,我須要用電信的DNS服務器來幫我完成測試,則敲入:

鍵入:

>server dns.cd.hn.cn

顯示爲:

默認服務器: dns.cd.hn.cn

Address: 220.168.208.3

>

表示當前默認的DNS解析服務器更改成220.168.208.3,隨後咱們敲入的請求都將從這臺服務器得到反饋。咱們能夠測試一下鍵入:

> www.163.com

服務器: localhost

Addresses: ::1

          127.0.0.1

非權威應答:

名稱:    www.cache.split.netease.com

Addresses: 220.181.28.51

          220.181.28.52

          220.181.28.53

          220.181.28.54

          220.181.28.50

Aliases: www.163.com

這裏獲得的是www.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

獲得不一樣結果以下:

服務器: localhost

Addresses: ::1

          127.0.0.1

非權威應答:

163.com MX preference = 50, mail exchanger = mx.mail.163.split.netease.com

mx.mail.163.split.netease.com   internet address = 220.181.12.59

mx.mail.163.split.netease.com   internet address = 220.181.12.60

mx.mail.163.split.netease.com   internet address = 220.181.12.61

mx.mail.163.split.netease.com   internet address = 220.181.12.62

mx.mail.163.split.netease.com   internet address = 220.181.12.63

mx.mail.163.split.netease.com   internet address = 220.181.12.64

mx.mail.163.split.netease.com   internet address = 220.181.12.65

mx.mail.163.split.netease.com   internet address = 220.181.12.66

mx.mail.163.split.netease.com   internet address = 220.181.12.67

mx.mail.163.split.netease.com   internet address = 220.181.12.68

mx.mail.163.split.netease.com   internet address = 220.181.12.69

mx.mail.163.split.netease.com   internet address = 220.181.12.70

mx.mail.163.split.netease.com   internet address = 220.181.12.71

mx.mail.163.split.netease.com   internet address = 220.181.12.72

mx.mail.163.split.netease.com   internet address = 220.181.12.73

mx.mail.163.split.netease.com   internet address = 220.181.12.74

mx.mail.163.split.netease.com   internet address = 220.181.12.75

mx.mail.163.split.netease.com   internet address = 220.181.12.76

mx.mail.163.split.netease.com   internet address = 220.181.12.77

mx.mail.163.split.netease.com   internet address = 220.181.12.51

mx.mail.163.split.netease.com   internet address = 220.181.12.52

mx.mail.163.split.netease.com   internet address = 220.181.12.53

mx.mail.163.split.netease.com   internet address = 220.181.12.55

mx.mail.163.split.netease.com   internet address = 220.181.12.56

mx.mail.163.split.netease.com   internet address = 220.181.12.57

mx.mail.163.split.netease.com   internet address = 220.181.12.58

由上可知,郵件紀錄會發送給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 [dns.cd.hn.cn] timed-out

相似的結果。請試多幾回。

好了,找到了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 163.com Anti-spam GT for Coremail System (163com[071018])

雖然該條信息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 OK  

[若是正常,則給出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 to:abc@163.com

[若是正該域中存在這個郵件地址則給出250消息,不然550消息以下:]

550 <abc@163.com>: Invalid User

[此處,咱們獲得咱們的故障,abc@163.com不存在,或者被禁用因此不能向他發送郵件。故障解決。如下步驟咱們學習使用TELNET直接向某郵件地址發送郵件]

rcpt to:webmaster@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 (163coms[14ecc65ff3fdc52ceba9a1aac95f83d9s])

經過使用如下命令登陸到郵箱開始通信:

USER [domain / Windows_NT_account /] Exchange_mailbox

如:user abcd

隨後將顯示如下回應:

+OK core mail

輸入如下命令:

PASS 郵箱的密碼

隨後將顯示如下回應信息,根據不一樣的服務器而不一樣。:

+OK 3 message(s) [178607 byte(s)]

輸入如下命令列出郵箱中的全部郵件:

LIST

將顯示下面的迴應信息(取決於郵箱中的郵件數,該信息會有變化):

+OK 69 3286469

1 3035

2 142802

3 32770

.

郵件編號是左側的數字

輸入如下命令來檢索郵件:

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>

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

這個過程有助於診斷和解決 POP3 客戶端和位於 Exchange Server 上的郵箱之間的通信問題。

相關文章
相關標籤/搜索