直接telnet 25埠發郵件

ysjxjf發表於2011-07-20
直接telnet 25埠發郵件[@more@]

直接telnet 25埠發郵件

:)可以自己寫個程式發郵件咯。用jmail控制元件也行。
下次說telnet上收郵件,可以做郵件到達提醒。:)偶們的oa裡用得到哦。

使用以下命令啟動 TELNET 會話:
Telnet xxx.xxx.xxx.xxx 25
如果正常,您將會看到以下來自 IMC 的響應:
220 site.company.com Microsoft Exchange Internet Mail
Connector 4.0.xxx.xx

其中,xxx.xx 對 RTM 是 837.3,對 SP1 是 838.14。

鍵入以下命令開始進行通訊:
HELO test.company.com
您應看到如下響應:
250 OK

鍵入以下命令來通知 IMC 郵件源於何處:
MAIL FROM:Admin@test.company.com
您應得到如下響應:
250 OK - MAIL FROM

鍵入以下命令來通知 IMC 郵件的目標地址(使用一個有效的 Microsoft Exchange 收件人 SMTP 地址)。
RCPT TO:
您應看到如下響應:
250 OK - Recipient

鍵入以下命令以通知 IMC 您已準備好傳送資料:
DATA
您應看到如下響應:
354 Send data. End with CRLF.CRLF

鍵入以下命令以新增主題行:
Subject: test message

然後按兩次 Enter 鍵。

該命令看不到任何響應。

備註: 兩個 Enter 命令符合 RFC 822 規則,即 822 命令後必須跟空行。


鍵入以下命令來新增郵件正文:
This is a test message
您將看不到來自該命令的響應。


在緊接著的空行處鍵入句號,然後按 ENTER 鍵。

您應看到如下響應:
250 OK

鍵入以下命令以關閉連線:
QUIT
您應看到如下響應:
221 closing connection

對於上述任一命令,如果您收到“500 Command not recognized”錯誤訊息,則表明由於語法錯誤或無效的命令導致 IMC 無法識別您所鍵入的內容。

登入進入您在上述步驟 4 中選擇的郵件收件人的 Microsoft Exchange 客戶郵箱。 如果郵箱中有您的測試郵件,說明傳入 IMC 通訊工作正常。

如果應用程式事件日誌顯示任何錯誤訊息,或在接收郵件時出現問題,請檢查配置或到主機的通訊。

概要

本文介紹如何 telnet 到執行簡單郵件傳輸協議 (SMTP) 服務的計算機上的埠 25,以解決 SMTP 通訊問題。預設情況下,SMTP 偵聽埠 25。

您可以根據您遇到的問題型別選用以下適當的疑難解答步驟。例如,如果您在兩臺 Microsoft Exchange 2000 Server 伺服器之 間透過 SMTP 傳送郵件時遇到問題,則可以透過在傳送伺服器上使用 Telnet 連線到目標伺服器上的埠 25 來測試 SMTP 連線。或者, 如果您在接收來自 Internet 的 SMTP 郵件時遇到問題,則可以按照本文中列出的步驟,測試駐留在 Internet 上但不在您的網路上的 主機與您的 SMTP 伺服器的連線。

更多資訊

Microsoft 產品線中有 SMTP 的多個不同變體。Microsoft Windows 產品線的 SMTP 服務包含 在 Internet 資訊服務 (IIS) 中,而在 Microsoft Windows NT Server 4.0 中,SMTP 服務包含 在 Option Pack 中。在較新版本的 Windows 中,IIS 已被整合到作業系統中,並且您可以使用“控制皮膚”中的“新增或刪除程式” 新增 IIS。此外,Exchange 2000 和 Microsoft Exchange Server 2003 都使用 IIS 中的現 有 SMTP 服務及其他功能。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。

在啟動 Telnet 會話之前,必須具有要將此測試郵件傳送到的目標使用者的完整 SMTP 電子郵件地址。該電子郵件地址必須採用以下格式:

User@Site.Domain.com

您也可以具有執行 SMTP 服務的伺服器計算機的完全限定域名 (FQDN) 或 IP 地址(例如,10.120.159.1)。如果伺服器在您的組 織中,您可能已經擁有這些資訊。如果伺服器是外部伺服器,查詢這些資訊最簡單的方法是使用 Nslookup.exe 以找到包含這些資訊的 DNS 記 錄。 有關 NSlookup 的其他資訊,請單擊下面的文章編號,以檢視 Microsoft 知識庫中相應的文章:

使用 NSlookup.exe

有關如何獲取 Internet 郵件交換器記錄的其他資訊,請單擊下面的文章編號,以檢視 Microsoft 知識庫中相應的文章:

XFOR:如何獲取 Internet 郵件交換器記錄


確保執行 SMTP 服務的伺服器上已啟動 SMTP。要測試 SMTP 是否已啟動,您可以執行本文中列出的基本測試,並驗證您是否會收到來自遠端伺服器的 220 訊息。這還將驗證 SMTP 是否正在執行。

注意:
  • 有些 Telnet 應用程式要求您開啟本地回顯功能,以檢視鍵入的命令。要在 Microsoft Telnet 會話中執行此操作,請在命令提示符處鍵入 set local_echo
  • 在 Microsoft Windows XP 中,應鍵入 set localecho 而不是 set local_echo

基本測試

按照下列步驟操作,以確保主機和遠端 SMTP 伺服器能夠通訊。如果在您鍵入以下任一命令之後,收到以下錯誤資訊,則說明 SMTP 伺服器因為語法錯誤或命令錯誤而無法識別您所鍵入的內容:
500 Command not recognized
檢查該命令並再次鍵入它,或者驗證您是否正在與 Microsoft SMTP 伺服器直接通訊。

注意:Microsoft Telnet 不允許您使用 Backspace 鍵。如果在鍵入時出錯,必須按 Enter 鍵,然後開始鍵入新的命令。

在以下步驟中,您要從命令列中執行 Telnet。要開啟命令列,請單擊“開始”,單擊“執行”,在“開啟”框中鍵入 cmd,然後單擊“確定”。
  1. 您可以透過使用以下格式的 Telnet 命令來啟動 Telnet 會話:

    注意:在鍵入每行內容之後按 Enter 鍵。

    telnet 伺服器名埠號

    例如,鍵入:

    telnet mail.contoso.com 25

    注意:您可以將伺服器名 替換為您要連線到的 SMTP 伺服器的 IP 地址或 FQDN。記住在鍵入每個命令之後按 Enter 鍵。

    如果該命令起作用,您將會收到來自 SMTP 伺服器的類似以下內容的訊息:

    ?/P>

    220 site.contoso.com Microsoft Exchange Internet Mail Connector 
    
    注意:由於有許多不同版本的 Microsoft SMTP 或第三方 SMTP 伺服器,因此您可能會收到來自接收 伺服器的不同的訊息。不過,您肯定會收到包含伺服器的 FQDN 和 SMTP 的版本的 220 訊息。此外,所有版本 的 Microsoft SMTP 在 220 訊息中都包含“Microsoft”一詞。
  2. 透過鍵入以下命令開始通訊:

    EHLO test.com

    注意:您可以使用 HELO 命令,但是 EHLO 是擴充套件 SMTP 動詞集中的一個動詞,SMTP 的所有當前 Microsoft 實現都支援該動詞集。除非您認為擴充套件 SMTP 動詞有問題,否則最好使用 EHLO。

    如果該命令成功,您會收到以下訊息:

    ?/P>

    250 OK
    
  3. 鍵入以下命令向接收 SMTP 伺服器通知郵件發件人:

    MAIL FROM:Admin@test.com

    注意:該地址可以是您想使用的任何 SMTP 地址,但是最好考慮以下問題:
    1. 有些 SMTP 郵件系統會基於 MAIL FROM:地址篩選郵件,並且會禁止某些 IP 地址連線到 SMTP 郵件系統,或者如果連線 IP 地址與 SMTP 郵件系統所在的域不匹配,它還會禁止該地址向 SMTP 郵件系統傳送電子郵件。在本例中,該域是 test.com
    2. 如果您在傳送郵件時沒有使用有效的電子郵件地址,您將無法確定在傳送郵件時是否有問題,因為未送達報告 (NDR) 無法到達無效的 IP 地址。如果您使用有效的電子郵件地址,您將會收到來自 SMTP 伺服器的以下訊息:

      ?/P>

      250 OK - MAIL FROM Admin@test.com
      
  4. 鍵入以下命令向接收 SMTP 伺服器通知郵件的收件人。

    注意:最好始終使用要傳送到的域中的有效收件人 SMTP 地址。例如,如果您要傳送到 john@domain.com,必須確保域中存在 john@domain.com。否則,您會收到 NDR。

    使用您要傳送到的人員的 SMTP 地址鍵入以下命令:

    RCPT TO:User@Domain.Com

    您會收到以下訊息:

    ?/P>

    250 OK - Recipient User@ Domain.Com
    
  5. 鍵入以下命令通知 SMTP 伺服器您已準備好傳送資料:

    DATA

    您會收到以下訊息:
    354 Send data. End with CRLF.CRLF
    
  6. 您現在已可以開始鍵入郵件的 822/2822 部分。使用者將會在他們的收件箱中看到郵件的這一部分。鍵入以下命令以新增主題行:

    Subject:test message

    按兩次 Enter 鍵。此命令不會顯示任何資訊。

    注意:按兩次 Enter 鍵為了與 Request for Comments (RFC) 822 和 2822 保持一致。它規定 822 命令後面必須跟一個空行。
  7. 鍵入以下命令以新增郵件正文:

    This is a test message you will not see a response from this command.

  8. 在下一個空行中鍵入英文句點 (.),然後按 Enter 鍵。您會收到以下訊息:

    ?/P>

    250 OK
    
  9. 鍵入以下命令關閉連線:

    QUIT

    您會收到以下訊息:

    ?/P>

    221 closing connection
    
  10. 驗證收件人是否收到您傳送的訊息。如果在應用程式事件日誌中出現任何錯誤事件訊息,或者接收郵件時出現問題,請檢查主機的配置或通訊。

高階測試

除本文前面列出的基本測試步驟外,您還可以使用送達回執對郵件進行雙向測試。您可以使用此方法驗證 SMTP 伺服器是否可以接受入站連線,並且為發件人生成一個送達回執以測試 SMTP 伺服器的出站連線。

要為測試郵件請求送達回執,請參見本文“基本測試”一節的第 4 步,以確保提供的資訊是可以接收送達回執的有效電子郵件地址。然後在本文“基本測試”一節的第 5 步中,在 Telnet 會話中鍵入以下命令:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/66634/viewspace-1052773/,如需轉載,請註明出處,否則將追究法律責任。

相關文章