本文介紹如何 telnet 到運行簡(jiǎn)單郵件傳輸協(xié)議 (SMTP) 服務(wù)的計算機上的端口 25,以解決 SMTP 通信問(wèn)題。默認情況下,SMTP 偵聽(tīng)端口 25。
您可以根據您遇到的問(wèn)題類(lèi)型選用以下適當的疑難解答步驟。例如,如果您在兩臺 Microsoft Exchange 2000 Server 服務(wù)器之間通過(guò) SMTP 發(fā)送郵件時(shí)遇到問(wèn)題,則可以通過(guò)在發(fā)送服務(wù)器上使用 Telnet 連接到目標服務(wù)器上的端口 25 來(lái)測試 SMTP 連接?;蛘?,如果您在接收來(lái)自 Internet 的 SMTP 郵件時(shí)遇到問(wèn)題,則可以按照本文中列出的步驟,測試駐留在 Internet 上但不在您的網(wǎng)絡(luò )上的主機與您的 SMTP 服務(wù)器的連接。
更多信息
Microsoft 產(chǎn)品線(xiàn)中有 SMTP 的多個(gè)不同變體。Microsoft Windows 產(chǎn)品線(xiàn)的 SMTP 服務(wù)包含在 Internet 信息服務(wù) (IIS) 中,而在 Microsoft Windows NT Server 4.0 中,SMTP 服務(wù)包含在 Option Pack 中。在較新版本的 Windows 中,IIS 已被集成到操作系統中,并且您可以使用“控制面板”中的“添加或刪除程序”添加 IIS。此外,Exchange 2000 和 Microsoft Exchange Server 2003 都使用 IIS 中的現有 SMTP 服務(wù)及其他功能。Microsoft Exchange Server 版本 4.0、5.0 和 5.5 均包含它們自己的 SMTP 版本,所采用的形式為 Internet Mail Connector (IMC) 或 Internet Mail Service (IMS)。
注意:在 Exchange 5.0 及更高版本中,Internet Mail Connector (IMC) 被重命名為 Internet Mail Service。
在啟動(dòng) Telnet 會(huì )話(huà)之前,必須具有要將此測試郵件發(fā)送到的目標用戶(hù)的完整 SMTP 電子郵件地址。該電子郵件地址必須采用以下格式:
User@Site.Domain.com您也可以具有運行 SMTP 服務(wù)的服務(wù)器計算機的完全限定域名 (FQDN) 或 IP 地址(例如,10.120.159.1)。如果服務(wù)器在您的組織中,您可能已經(jīng)擁有這些信息。如果服務(wù)器是外部服務(wù)器,查找這些信息最簡(jiǎn)單的方法是使用 Nslookup.exe 以找到包含這些信息的 DNS 記錄。 有關(guān) NSlookup 的其他信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
200525 使用 NSlookup.exe
有關(guān)如何獲取 Internet 郵件交換器記錄的其他信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
203204 XFOR:如何獲取 Internet 郵件交換器記錄
確保運行 SMTP 服務(wù)的服務(wù)器上已啟動(dòng) SMTP。要測試 SMTP 是否已啟動(dòng),您可以運行本文中列出的基本測試,并驗證您是否會(huì )收到來(lái)自遠程服務(wù)器的 220 消息。這還將驗證 SMTP 是否正在運行。
注意:
有些 Telnet 應用程序要求您打開(kāi)本地回顯功能,以查看鍵入的命令。要在 Microsoft Telnet 會(huì )話(huà)中執行此操作,請在命令提示符處鍵入 set local_echo。
在 Microsoft Windows XP 中,應鍵入 set localecho 而不是 set local_echo。
基本測試
按照下列步驟操作,以確保主機和遠程 SMTP 服務(wù)器能夠通信。 如果在您鍵入以下任一命令之后,收到以下錯誤信息,則說(shuō)明 SMTP 服務(wù)器因為語(yǔ)法錯誤或命令錯誤而無(wú)法識別您所鍵入的內容:
500 Command not recognized
檢查該命令并再次鍵入它,或者驗證您是否正在與 Microsoft SMTP 服務(wù)器直接通信。
注意:Microsoft Telnet 不允許您使用 Backspace 鍵。如果在鍵入時(shí)出錯,必須按 Enter 鍵,然后開(kāi)始鍵入新的命令。
在以下步驟中,您要從命令行中運行 Telnet。要打開(kāi)命令行,請單擊“開(kāi)始”,單擊“運行”,在“打開(kāi)”框中鍵入 cmd,然后單擊“確定”。
您可以通過(guò)使用以下格式的 Telnet 命令來(lái)啟動(dòng) Telnet 會(huì )話(huà):
注意:在鍵入每行內容之后按 Enter 鍵。
telnet 服務(wù)器名端口號
例如,鍵入:
telnet mail.contoso.com 25
注意:您可以將服務(wù)器名 替換為您要連接到的 SMTP 服務(wù)器的 IP 地址或 FQDN。 記住在鍵入每個(gè)命令之后按 Enter 鍵。
如果該命令起作用,您將會(huì )收到來(lái)自 SMTP 服務(wù)器的類(lèi)似以下內容的消息:
220 site.contoso.com Microsoft Exchange Internet Mail Connector <IMC 的版本號>
注意:由于有許多不同版本的 Microsoft SMTP 或第三方 SMTP 服務(wù)器,因此您可能會(huì )收到來(lái)自接收服務(wù)器的不同的消息。不過(guò),您肯定會(huì )收到包含服務(wù)器的 FQDN 和 SMTP 的版本的 220 消息。此外,所有版本的 Microsoft SMTP 在 220 消息中都包含“Microsoft”一詞。
通過(guò)鍵入以下命令開(kāi)始通信:
EHLO test.com
注意:您可以使用 HELO 命令,但是 EHLO 是擴展 SMTP 動(dòng)詞集中的一個(gè)動(dòng)詞,SMTP 的所有當前 Microsoft 實(shí)現都支持該動(dòng)詞集。除非您認為擴展 SMTP 動(dòng)詞有問(wèn)題,否則最好使用 EHLO。
如果該命令成功,您會(huì )收到以下消息:
250 OK
鍵入以下命令向接收 SMTP 服務(wù)器通知郵件發(fā)件人:
MAIL FROM:Admin@test.com
注意:該地址可以是您想使用的任何 SMTP 地址,但是最好考慮以下問(wèn)題:
有些 SMTP 郵件系統會(huì )基于 MAIL FROM:地址篩選郵件,并且會(huì )禁止某些 IP 地址連接到 SMTP 郵件系統,或者如果連接 IP 地址與 SMTP 郵件系統所在的域不匹配,它還會(huì )禁止該地址向 SMTP 郵件系統發(fā)送電子郵件。在本例中,該域是 test.com。
如果您在發(fā)送郵件時(shí)沒(méi)有使用有效的電子郵件地址,您將無(wú)法確定在發(fā)送郵件時(shí)是否有問(wèn)題,因為未送達報告 (NDR) 無(wú)法到達無(wú)效的 IP 地址。如果您使用有效的電子郵件地址,您將會(huì )收到來(lái)自 SMTP 服務(wù)器的以下消息:
250 OK - MAIL FROM
Admin@test.com鍵入以下命令向接收 SMTP 服務(wù)器通知郵件的收件人。
注意:最好始終使用要發(fā)送到的域中的有效收件人 SMTP 地址。例如,如果您要發(fā)送到
john@domain.com,必須確保域中存在
john@domain.com。否則,您會(huì )收到 NDR。
使用您要發(fā)送到的人員的 SMTP 地址鍵入以下命令:
RCPT TO:User@Domain.Com
您會(huì )收到以下消息:
250 OK - Recipient User@ Domain.Com
鍵入以下命令通知 SMTP 服務(wù)器您已準備好發(fā)送數據:
DATA
您會(huì )收到以下消息:
354 Send data. End with CRLF.CRLF
您現在已可以開(kāi)始鍵入郵件的 822/2822 部分。用戶(hù)將會(huì )在他們的收件箱中看到郵件的這一部分。鍵入以下命令以添加主題行:
Subject:test message
按兩次 Enter 鍵。此命令不會(huì )顯示任何信息。
注意:按兩次 Enter 鍵為了與 Request for Comments (RFC) 822 和 2822 保持一致。它規定 822 命令后面必須跟一個(gè)空行。
鍵入以下命令以添加郵件正文:
This is a test message you will not see a response from this command.
在下一個(gè)空行中鍵入英文句點(diǎn) (.),然后按 Enter 鍵。 您會(huì )收到以下消息:
250 OK
鍵入以下命令關(guān)閉連接:
QUIT
您會(huì )收到以下消息:
221 closing connection
驗證收件人是否收到您發(fā)送的消息。如果在應用程序事件日志中出現任何錯誤事件消息,或者接收郵件時(shí)出現問(wèn)題,請檢查主機的配置或通信。
高級測試
除本文前面列出的基本測試步驟外,您還可以使用送達回執對郵件進(jìn)行雙向測試。您可以使用此方法驗證 SMTP 服務(wù)器是否可以接受入站連接,并且為發(fā)件人生成一個(gè)送達回執以測試 SMTP 服務(wù)器的出站連接。
要為測試郵件請求送達回執,請參見(jiàn)本文“基本測試”一節的第 4 步,以確保提供的信息是可以接收送達回執的有效電子郵件地址。然后在本文“基本測試”一節的第 5 步中,在 Telnet 會(huì )話(huà)中鍵入以下命令:
RCPT TO:User@Site.Domain.Com notify=success,failure