使用 telnet 測(cè)試 SMTP 通信
本主題說(shuō)明如何使用 Telnet 測(cè)試郵件服務(wù)器之間的簡(jiǎn)單郵件傳輸協(xié)議 (SMTP) 通信。默認(rèn)情況下,SMTP 在端口 25 上進(jìn)行偵聽(tīng)。如果在端口 25 上使用 Telnet,則可以輸入 SMTP 命令用來(lái)連接到 SMTP 服務(wù)器,且可以將 Telnet 會(huì)話當(dāng)做 SMTP 郵件服務(wù)器來(lái)發(fā)送郵件。您還可以查看連接過(guò)程和郵件提交過(guò)程中每個(gè)步驟是成功還是失敗。
在以下方案中,您可能需要使用 Telnet 測(cè)試發(fā)往或來(lái)自 MicrosoftExchangeServer 組織中存在的傳輸服務(wù)器的 SMTP 通信:
- 從位于外圍網(wǎng)絡(luò)之外的主機(jī)連接到組織的邊緣傳輸服務(wù)器,并發(fā)送一封測(cè)試郵件。
- 從組織的邊緣傳輸服務(wù)器連接到遠(yuǎn)程郵件服務(wù)器,并發(fā)送一封測(cè)試郵件。
本主題中的步驟表明如何使用 Microsoft Windows 中包含的組件 Telnet 客戶端。第三方 Telnet 客戶端可能需要不同于 WindowsTelnet 組件的語(yǔ)法。
先決條件
- 配置接受連接器以允許匿名訪問(wèn)或基本身份驗(yàn)證由于集線器傳輸服務(wù)器之間正常進(jìn)行的郵件傳輸經(jīng)過(guò)加密和身份驗(yàn)證,因此在端口 25 上使用 Telnet 測(cè)試通信時(shí),內(nèi)部集線器傳輸服務(wù)器應(yīng)將接受連接器配置為允許匿名訪問(wèn)或基本身份驗(yàn)證來(lái)接收郵件。面向 Internet 的服務(wù)器需要使用匿名訪問(wèn)。
注意:
將郵件發(fā)送到接受基本身份驗(yàn)證的接收連接器時(shí),您必須有可將用于用戶名和密碼的文本字符串轉(zhuǎn)換為 Base64 格式的實(shí)用程序。由于使用基本身份驗(yàn)證時(shí),用戶名和密碼非常容易辨別,因此不建議使用無(wú)加密的基本身份驗(yàn)證。 - 連接到遠(yuǎn)程郵件服務(wù)器您可能還需要從組織的邊緣傳輸服務(wù)器連接到遠(yuǎn)程郵件服務(wù)器。對(duì)于面向 Internet 的 SMTP 服務(wù)器,如果配置為驗(yàn)證源 IP 地址、相應(yīng)域名系統(tǒng) (DNS) 域名以及所有嘗試向服務(wù)器發(fā)送郵件的 Internet 主機(jī)的反向查找 IP 地址,則這有助于避免其拒絕測(cè)試郵件。
- 安裝和/或啟用 Telnet 客戶端在使用 Telnet 對(duì)郵件服務(wù)器之間的 SMTP 通信進(jìn)行測(cè)試之前,您可能還需要執(zhí)行下列一項(xiàng)或多項(xiàng)任務(wù):
- 安裝 Telnet 客戶端(如果尚未安裝)。有關(guān)如何在 Windows Vista 或 Windows Server 2008 上安裝 Telnet 客戶端的詳細(xì)信息,請(qǐng)參閱安裝 Telnet 客戶端。
- 在 Windows Server 2008 上啟用 Telnet 客戶端。請(qǐng)參閱本主題后面的步驟。
- 查找 SMTP 服務(wù)器的 FQDN 或 IP 地址。如果不知道 FQDN 或 IP 地址,可以使用 Nslookup 查找 SMTP 服務(wù)器的 FQDN 或 IP 地址。請(qǐng)參閱本主題后面的步驟。
在 Windows Server 2008 中啟用 Telnet 客戶端
完成此步驟的***要求為 WindowsServer2008本地 Administrators 組的成員或等效身份。
在 WindowsServer2008 中,默認(rèn)情況下禁用 Telnet 客戶端。若要啟用,請(qǐng)執(zhí)行下列步驟:
- 打開(kāi)“服務(wù)器管理器”。
- 單擊“操作”,然后選擇“添加功能”。
- 選擇“Telnet 客戶端”并單擊“下一步”。
- 單擊“安裝”,然后單擊“關(guān)閉”以完成 Telnet 客戶端的安裝。
使用 Nslookup 查找 SMTP 服務(wù)器的 FQDN 或 IP 地址
若要使用 Telnet 端口 25 連接到目標(biāo) SMTP 服務(wù)器,必須使用 SMTP 服務(wù)器的完全限定域名 (FQDN) 或 IP 地址。如果 FQDN 或 IP 地址未知,查找此信息的最簡(jiǎn)便方法是使用 Nslookup 命令行工具查找目標(biāo)域的 MX 記錄。
- 在命令提示符處,鍵入 nslookup,然后按 Enter 鍵。此命令將打開(kāi) Nslookup 會(huì)話。
- 鍵入 set type=mx 并按 Enter 鍵。
- 鍵入 set timeout=20 并按 Enter 鍵。默認(rèn)情況下,Windows DNS 服務(wù)器具有 15 秒的遞歸 DNS 查詢(xún)超時(shí)限制。
- 請(qǐng)鍵入想要查找 MX 記錄的域名。例如,若要查找 fabrikam.com 域的 MX 記錄,請(qǐng)鍵入 fabrikam.com. 并按 Enter 鍵。
注意:
尾隨句點(diǎn) (.) 表示 FQDN。使用尾隨句點(diǎn)可防止無(wú)意中將為網(wǎng)絡(luò)配置的默認(rèn) 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 記錄關(guān)聯(lián)的任何主機(jī)名或 IP 地址用作目標(biāo) SMTP 服務(wù)器。較低的***項(xiàng)值表示*** SMTP 服務(wù)器。您可以使用多個(gè) MX 記錄和不同的***項(xiàng)值,以實(shí)現(xiàn)負(fù)載平衡和容錯(cuò)。 - 準(zhǔn)備結(jié)束 Nslookup 會(huì)話時(shí),請(qǐng)鍵入 exit 并按 Enter 鍵。
![]() |
---|
組織的內(nèi)部網(wǎng)絡(luò)規(guī)定的防火墻或 Internet 代理限制可能會(huì)阻止您使用 Nslookup 工具查詢(xún) Internet 上的公用 DNS 服務(wù)器。 MX 記錄不是 Exchange 組織內(nèi)的內(nèi)部郵件流絕對(duì)必需的。如果要在組織中查找任何集線器傳輸服務(wù)器或已訂閱邊緣傳輸服務(wù)器的 FQDN,則可以使用 Exchange 命令行管理程序中的下列命令:Get-ExchangeServer | where {$_.isHubTransportServer -eq $true -or $_.isEdgeServer -eq $true} | Format-List Fqdn,ServerRole 有關(guān)詳細(xì)信息,請(qǐng)參閱 Get-ExchangeServer 和 管道傳輸。 |
在端口 25 上使用 Telnet 測(cè)試 SMTP 通信
為了提供示例,下列步驟將使用下表中描述的值:
- 目標(biāo) SMTP 服務(wù)器mail1.fabrikam.com
- 源域contoso.com
- 發(fā)件人的電子郵件地址chris@contoso.com
- 收件人的電子郵件地址kate@fabrikam.com
- 郵件主題來(lái)自 Contoso 的測(cè)試
- 郵件正文這是一封測(cè)試郵件
注意:
應(yīng)始終使用有效的發(fā)件人電子郵件地址,以便將目標(biāo) SMTP 服務(wù)器生成的未送達(dá)報(bào)告 (NDR) 郵件傳遞給郵件發(fā)件人。
Telnet 客戶端中的命令不區(qū)分大小寫(xiě)。為清晰起見(jiàn),SMTP 命令動(dòng)詞均使用大寫(xiě)。
- 在命令提示符處,鍵入 telnet,然后按 Enter 鍵。此命令將打開(kāi) Telnet 會(huì)話。
- 鍵入 set localecho 并按 Enter 鍵。此可選命令可使您在鍵入字符時(shí)查看這些字符。某些 SMTP 服務(wù)器可能需要此設(shè)置。
- 鍵入 set logfile <文件名>。此可選命令可以將 Telnet 會(huì)話記錄到指定的日志文件中。如果您僅指定了文件名,則日志文件的位置將是當(dāng)前工作目錄。如果您指定了路徑和文件名,該路徑必須位于計(jì)算機(jī)本地。指定的路徑和文件名都必須以 Microsoft DOS 8.3 格式輸入。您指定的路徑必須已存在。如果您指定了一個(gè)不存在的日志文件,系統(tǒng)將為您創(chuàng)建一個(gè)日志文件。
- 鍵入 open mail1.fabrikam.com 25 并按 Enter 鍵。
注意:
在 Telnet 會(huì)話中連接到目標(biāo) SMTP 服務(wù)器后,無(wú)法使用 Backspace 鍵。如果您在鍵入 SMTP 命令時(shí)出現(xiàn)錯(cuò)誤,則必須按下 ENTER 鍵,然后再鍵入該命令。無(wú)法識(shí)別的 SMTP 命令或語(yǔ)法錯(cuò)誤會(huì)導(dǎo)致類(lèi)似下面的錯(cuò)誤消息: 500 5.3.3 Unrecognized command
- 鍵入 MAIL FROM:chris@contoso.com 并按 Enter 鍵。
- 鍵入 RCPT TO:kate@fabrikam.com NOTIFY=success,failure 并按 Enter 鍵??蛇x的 NOTIFY 命令可定義目標(biāo) SMTP 服務(wù)器必須向發(fā)件人提供的特定傳遞狀態(tài)通知 (DSN) 郵件。DSN 郵件是在 RFC 1891 中定義的。在本例中,您要查詢(xún)有關(guān)郵件傳遞成功或失敗的 DSN 郵件。
- 鍵入 DATA 并按 Enter 鍵。您將收到與以下類(lèi)似的響應(yīng):
354 Start mail input; end with <CLRF>.<CLRF>
- 按 Enter 鍵。RFC 2822 需要在
Subject:
頭字段和郵件正文間留一個(gè)空行。 - 鍵入 這是一封測(cè)試郵件,再按 ENTER 鍵。
- 按 Enter 鍵,鍵入句點(diǎn) ( . ),再按 Enter 鍵。您將收到與以下類(lèi)似的響應(yīng):
250 2.6.0 <GUID> Queued mail for delivery
-
221 2.0.0 Service closing transmission channel
評(píng)估 Telnet 會(huì)話的結(jié)果
針對(duì)以上示例中所使用的以下命令,本節(jié)提供有關(guān)這些命令響應(yīng)的信息:
- 打開(kāi) mail1.fabrikam.com 25
- EHLO contoso.com
- MAIL FROM:chris@contoso.com
- RCPT TO:kate@fabrikam.com NOTIFY=success,failure
注意:
在 RFC 2821 中定義的三位數(shù) SMTP 響應(yīng)代碼對(duì)于所有 SMTP 郵件服務(wù)器都相同。對(duì)于某些 SMTP 郵件服務(wù)器,文本說(shuō)明可能稍有不同。在上一個(gè)示例中,目標(biāo)計(jì)算機(jī)運(yùn)行 ExchangeServer2010。
打開(kāi) mail1.fabrikam.com 25
成功響應(yīng):220 mail1.fabrikam.com Microsoft ESMTP MAIL Service ready at <day-date-time>
失敗響應(yīng):Connecting to mail1.fabrikam.com...Could not open connection to the host, on port 25: Connect failed
失敗的可能原因
- 目標(biāo) SMTP 服務(wù)不可用。
- 對(duì)目標(biāo)防火墻有所限制。
- 對(duì)源防火墻有所限制。
- 指定的目標(biāo) SMTP 服務(wù)器的 FQDN 或 IP 地址不正確。
- 指定的端口號(hào)不正確。
EHLO contoso.com
成功響應(yīng):250 mail1.fabrikam.com Hello [<sourceIPaddress>]
失敗響應(yīng):501 5.5.4 Invalid domain name
失敗的可能原因:域名中存在無(wú)效字符?;蛘撸嬖谟嘘P(guān)目標(biāo) SMTP 服務(wù)器的連接限制。
![]() |
---|
EHLO 是 RFC 2821 中定義的擴(kuò)展的簡(jiǎn)單郵件傳輸協(xié)議 (ESMTP) 命令動(dòng)詞。ESMTP 服務(wù)器可在初始連接時(shí)公布其功能。這些功能包括其***的可接受郵件大小以及其支持的身份驗(yàn)證方法。HELO 是 RFC 821 中定義的舊版 SMTP 命令動(dòng)詞。多數(shù) SMTP 郵件服務(wù)器都支持 ESMTP 和 EHLO。 |
MAIL FROM:chris@contoso.com
成功響應(yīng):250 2.1.0 Sender OK
失敗響應(yīng):550 5.1.7 Invalid address
可能的失敗原因:發(fā)件人的電子郵件地址中存在語(yǔ)法錯(cuò)誤。
失敗響應(yīng):530 5.7.1 Client was not authenticated
可能的失敗原因:目標(biāo)服務(wù)器不接受匿名郵件提交。如果您試圖使用 Telnet 直接向集線器傳輸服務(wù)器提交郵件,則將收到此錯(cuò)誤消息。
RCPT TO:kate@fabrikam.com NOTIFY=success,failure
成功響應(yīng):250 2.1.5 Recipient OK
失敗響應(yīng):550 5.1.1 User unknown
可能的失敗原因:指定的收件人在組織中不存在。