MarchFun 發表於 2009-11-25 22:03:23

如何使用 Telnet 來測試 SMTP 通訊

本文轉貼自微軟技術網站...http://technet.microsoft.com/zh-tw/library/bb123686.aspx

本主題中的程序顯示如何使用 Microsoft Windows Server 2003 及 Windows XP 所附的 Microsoft Telnet 用戶端。舊版 Windows 或協力廠商 Telnet 用戶端所需的語法可能不同。Windows Telnet 用戶端中的命令不區分大小寫。SMTP 命令動詞會大寫,以方便識別。
在 Telnet 工作階段中,連接至目的 SMTP 伺服器之後,不能使用退格鍵。如果您在輸入 SMTP 命令時打錯字,則必須按 ENTER,然後重新輸入命令。無法辨識的 SMTP 命令或語法錯誤會產生錯誤訊息,如下所示:


500 5.3.3 Unrecognized command

http://i.msdn.microsoft.com/Global/Images/clear.gif使用 Nslookup 命令列工具尋找 SMTP 伺服器的 IP 位址

若要在通訊埠 25 上使用 Telnet 連接目的 SMTP 伺服器,您必須要有 SMTP 伺服器的完整網域名稱 (FQDN) 或 IP 位址。尋找此資訊最簡單的方法,就是使用 Nslookup 命令列工具尋找目的網域的 MX 記錄。http://i.msdn.microsoft.com/Global/Images/clear.gif使用 Nslookup 工具尋找 SMTP 伺服器的 IP 位址
[*]
在命令提示字元中,輸入 nslookup,然後按 ENTER。此命令會開啟 Nslookup 工作階段。[*]
輸入 set type=mx,然後按 ENTER。[*]
輸入 set timeout=20,然後按 ENTER。Windows DNS 伺服器預設有 15 秒的遞迴 DNS 查詢逾時限制。[*]
輸入要尋找其 MX 記錄的網域名稱。例如,若要尋找 fabrikam.com 網域的 MX 記錄,請輸入 fabrikam.com.,然後按 ENTER。
http://i.technet.microsoft.com/Bb123686.note(zh-tw,EXCHG.80).gif附註:
尾端的句點 ( . ) 表示是 FQDN。使用尾端的句點可防止不小心在網域名稱後面加上任何為網路設定的預設 DNS 字尾。


該命令的輸出如下:
fabrikam.com mx preference=10, mail exchanger = mail1.fabrikam.com
fabrikam.com mx preference=20, mail exchanger = mail2.fabrikam.com
mail1.fabrikam.com internet address = 192.168.1.10
mail2 fabrikam.com internet address = 192.168.1.20



您可以使用與 MX 記錄關聯的任何主機名稱或 IP 位址作為目的 SMTP 伺服器。SMTP 伺服器的喜好設定值愈低表示優先順序愈高。您可以使用多筆 MX 記錄及不同的喜好設定值,以供進行負載平衡及容錯。[*]
準備結束 Nslookup 工作階段時,請輸入 exit,然後按 ENTER。





http://i.msdn.microsoft.com/Global/Images/clear.gif在通訊埠 25 上使用 Telnet 測試 SMTP 通訊

本節中的程序顯示如何在通訊埠 25 上使用 Telnet 測試 SMTP 通訊。該程序使用下列清單中所述的值:[*]目的 SMTP 伺服器   mail1.fabrikam.com[*]來源網域   contoso.com[*]寄件者的電子郵件地址   [email protected][*]收件者的電子郵件地址   [email protected][*]郵件主旨   Contoso 的測試郵件[*]郵件內文   這是一封測試郵件
http://i.technet.microsoft.com/Bb123686.note(zh-tw,EXCHG.80).gif附註:
請務必使用有效的寄件者電子郵件地址,這樣才會將目的 SMTP 伺服器所產生的未傳遞回報 (NDR) 郵件傳送給郵件的寄件者。


http://i.msdn.microsoft.com/Global/Images/clear.gif在通訊埠 25 上使用 Telnet 測試 SMTP 通訊
[*]
在命令提示字元中,輸入 telnet,然後按 ENTER。此命令會開啟 Telnet 工作階段。[*]
輸入 set localecho,然後按 ENTER。此選用命令可讓您在輸入字元的同時檢視這些字元。有些 SMTP 伺服器可能會需要此設定。[*]
輸入 set logfile<檔案名稱>。此選用命令會將 Telnet 工作階段記錄在指定的記錄檔。如果您只有指定檔名,則記錄檔位置為目前的工作目錄。如果您指定路徑及檔名,則該路徑必須在電腦本機上。指定的路徑和檔名都必須以 Microsoft DOS 8.3 格式輸入。必須指定已存在的路徑。如果指定的記錄檔不存在,則系統會為您建立該記錄檔。[*]
輸入 open mail1.fabrikam.com 25,然後按 ENTER。[*]
輸入 EHLO contoso.com,然後按 ENTER。[*]
輸入 MAIL FROM:[email protected],然後按 ENTER。[*]
輸入 RCPT TO:[email protected] NOTIFY=success,failure,然後按 ENTER。選用的 NOTIFY 命令可定義目的 SMTP 伺服器必須提供給寄件者的特定傳遞狀態通知 (DSN) 郵件。RFC 1891 中有關於 DSN 郵件的定義。在此情況下,您是在要求對方傳回 DSN 郵件表明郵件傳遞成功或失敗。[*]
輸入 DATA,然後按 ENTER。您會收到如下回應:


354 Start mail input; end with <CLRF>.<CLRF>

[*]
輸入Subject:Contoso 的測試郵件,然後按 ENTER。[*]
按 ENTER。RFC 2822 規定 Subject: 標頭欄位與郵件內文之間必須留一行空白。[*]
輸入這是測試郵件,然後按 ENTER。[*]
按 ENTER,輸入一個句點 ( . ),然後按 ENTER。您會收到如下回應:


250 2.6.0 <GUID> Queued mail for delivery

[*]
若要中斷與目的 SMTP 伺服器的連線,請輸入 QUIT,然後按 ENTER。您會收到如下回應:


221 2.0.0 Service closing transmission channel

[*]
若要關閉 Telnet 工作階段,請輸入 quit,然後按 ENTER。




http://i.msdn.microsoft.com/Global/Images/clear.gif解讀 Telnet 工作階段與 SMTP 伺服器連線的結果

本節詳細說明您在上述範例中輸入命令後所得到的回應。
http://i.msdn.microsoft.com/Global/Images/clear.gif開啟 mail1.fabrikam.com 25

成功回應   220 mail1.fabrikam.com Microsoft ESMTP MAIL Service ready at <day-date-time>
失敗回應   Connecting to mail1.fabrikam.com...Could not open connection to the host, on port 25: Connect failed
可能的失敗原因 [*]目的 SMTP 服務無法使用。[*]目的防火牆上有所限制。[*]來源防火牆上有所限制。[*]所指定之目的 SMTP 伺服器的 FQDN 或 IP 位址不正確。[*]指定的通訊埠號碼不正確。


http://i.msdn.microsoft.com/Global/Images/clear.gifEHLO contoso.com

成功回應   250 mail1.fabrikam.com Hello [<sourceIPaddress>]
失敗回應   501 5.5.4 Invalid domain name
可能的失敗原因   網域名稱中有無效字元。或者,目的 SMTP 伺服器上有連線限制。
http://i.technet.microsoft.com/Bb123686.note(zh-tw,EXCHG.80).gif附註:
EHLO 是 RFC 2821 中定義的延伸簡易郵件傳送通訊協定 (ESMTP) 動詞。ESMTP 伺服器會在初始連線期間通告其功能。這些功能包括其可接受的最大郵件大小,以及所支援的驗證方法。HELO 是 RFC 821 中定義的舊 SMTP 動詞。大部分 SMTP 郵件伺服器都支援 ESMTP 及 EHLO。




http://i.msdn.microsoft.com/Global/Images/clear.gifMAIL FROM:[email protected]

成功回應   250 2.1.0 Sender OK
失敗回應   550 5.1.7 Invalid address
可能的失敗原因   寄件者電子郵件地址中有語法錯誤。
失敗回應   530 5.7.1 Client was not authenticated
可能的失敗原因   目的伺服器不接受匿名提交郵件。如果您嘗試使用 Telnet 直接將郵件提交至 Hub Transport server,就會收到此錯誤。


http://i.msdn.microsoft.com/Global/Images/clear.gifRCPT TO:[email protected] NOTIFY=success,failure

成功回應   250 2.1.5 Recipient OK
失敗回應   550 5.1.1 User unknown
可能的失敗原因   組織中沒有指定的收件者。
頁: [1]
檢視完整版本: 如何使用 Telnet 來測試 SMTP 通訊