Microsoft® Exchange Server 從第一次發布時起,就支持 Internet 協議。隨著產品的發展,Microsoft 在現有協議組中添加了一些新的協議,以及更多的功能。本文檔介紹了 Exchange Server Internet 協議,并提供了對這些 Internet 協議進行疑難解答的基本指導方針。
首先要注意的是,Exchange Server 在實現這些 Internet 協議時與 RFC 是 100% 兼容的,這一點很重要。下列表格列出了這些協議,以及 Exchange Server 的哪個版本對其提供支持。
協議 |
SMTP |
HTTP |
NNTP |
LDAP |
POP3 |
IMAP4 |
---|---|---|---|---|---|---|
Exchange 4.0 |
* |
|||||
Exchange 5.0 |
* |
* |
* |
* |
* |
|
Exchange 5.5 |
* |
* |
* |
* |
* |
* |
這些協議可劃分為兩類:“服務器端協議”和“客戶端協議”。服務器端協議通常是 Exchange Server 用來連接到另一臺郵件服務器,并向其傳送電子郵件的協議??蛻舳藚f議是客戶端用來訪問 Exchange Server 計算機上的電子郵件的協議。協議的這兩個分組在某些情況下是重疊的,這在本文稍后部分的“協議命令和響應概述”一節中的 POP3 和 IMAP4 小節中進行了說明。
簡單郵件傳輸協議 (SMTP) 是服務器端協議,它允許 Microsoft Exchange Server 通過 Internet 連接到另一個能使用 SMTP 的服務器,以便傳送郵件。此協議的細節在 RFC-821 中進行了概述。但重要的是討論此協議的概念,以便了解它可能會出現的問題。此協議只概述了郵件是如何傳送的,而并未包括郵件內容的詳細信息。它是一個指導方針,說明了一個 SMTP 主機應發出哪些命令,以及接收命令的主機為使郵件流出現,應如何解釋這些命令。
Microsoft 在其 Exchange Server(4.0 版)第一次發布時,就在一個通常稱為 Internet Mail Connector (IMC) 的組件中,實現了 SMTP 協議。在 Exchange Server 5.x 中,此組件被重命名為 Internet Mail Service。Internet Mail Service 是一個復雜的組件,它帶有一個有不同職責的數組,這些職責包括建立和接收 TCP/IP 連接、將郵件從一種格式轉換為另一種,以及附件的編碼和解碼。本文檔介紹了通過 SMTP 協議進行的 Internet Mail Service 郵件傳送和郵件接收。
Exchange Server 中包括的客戶端協議為用戶提供了訪問其信息的更多方法。其目的是為用戶提供一種方法,使其能在 Internet 上任何地方,使用任何兼容客戶機,從任何平臺上發送和接收郵件。兩個最常見的只讀協議是 HTTP 和 POP3。
超文本傳輸協議 (HTTP) 是 Web 瀏覽器(如 Microsoft® Internet Explorer)使用的協議,用來查看 Web 頁和基于萬維網的內容。在 Microsoft® Outlook Web Access (OWA) 組件中,使用了 Exchange Server 的 HTTP 實現。OWA 使任何有 Web 瀏覽器的用戶能夠發送和接收電子郵件、為公用文件夾提供內容,以及查看公用文件夾。
郵局協議 3 (POP3) 是在 Exchange Server 5.0 中提供的。它是一個只讀協議,允許 POP3 客戶端在 Internet 上的任何地方連接到 Exchange Server 計算機,并將郵件下載到本地,以便閱讀。該協議是只讀協議,因為在 POP3 協議中沒有發送電子郵件的定義。POP3 客戶端使用 SMTP 協議和 Exchange Server 計算機的 Internet Mail Service 發送郵件。POP3 協議只提供對用戶“收件箱”的訪問。Exchange Server 將此協議作為信息存儲的一項任務實現。
Internet 消息訪問協議 4 (IMAP4) 盡管與 POP3 類似,但允許用戶訪問他們的任何文件夾,而不僅僅是收件箱。出于此原因,它比 POP3 更復雜;但是它仍舊遵從相同的標準,是一個只讀協議。和 POP3 一樣,IMAP4 使用 SMTP 發送電子郵件。IMAP4 也如信息存儲過程那樣運行。
輕型目錄訪問協議 (LDAP) 是一個簡單的協議,它允許客戶端在 Exchange 目錄中查詢幾乎所有種類的信息。它最常用于訪問郵箱屬性,以便在寫郵件時,發件人能夠了解收件人的更多詳細情況。LDAP 協議不限制它自己的實現。它可用于讀和寫郵箱信息,或任何種類的基于目錄的信息。Exchange Server 5.0 實現的 LDAP 限于只讀。在 5.5 版中,LDAP 客戶端能夠對 Exchange 目錄進行讀操作和寫操作。LDAP 服務器是 Microsoft Exchange 目錄服務的一項功能。
網絡新聞傳輸協議 (NNTP) 通常稱為“Internet 新聞協議”,因為它包含從一臺計算機向另一臺計算機傳輸新聞條目的規則。此處提及的 NNTP 是作為一個客戶端/服務器端協議;但是它也包括基于服務器到服務器的新聞傳送。Exchange Internet News Service 與公用信息存儲合作,提供 NNTP 訪問。
在從一臺主機向另一臺主機建立連接后,以上討論的所有協議都管理一套規則,或一個對話。該連接是到接收主機上的特殊端口的 TCP 連接。TCP 連接是要求在可以傳輸或接收數據前建立一個會話的連接。當會話建立后,使用命令來來往往地發送數據。對話完成后,將放棄會話。以下是一個協議及其監聽的 TCP 端口的列表。
協議 |
端口 |
---|---|
SMTP |
25 |
HTTP |
80 |
NNTP |
119 |
LDAP |
389 |
POP3 |
110 |
IMAP4 |
143 |
解決協議疑難問題的第一步是驗證您已建立了一個到主機的成功的 TCP 連接。解決這一問題的最簡單方法是,使用 telnet 命令,連接到所需端口。不要用“Ping”命令測試主機。 Ping 實用程序不告訴您主機正在監聽端口 25。它只是顯示,一個低級數據包能夠找到通往正確 IP 地址的途徑。此外,許多公司阻止 Ping 或 ICMP 數據包,使其甚至不能進入公司的網絡。解決所有這些協議問題的最好方法是使用 telnet 命令。要得到對 Telnet 工作方式的感性認識,試著使用 Telnet,連接到您的本地 Exchange Server 計算機端口 25。語法為:
例如:
以上的兩個示例都能連接到端口 25,但第一個是最可靠的。在使用系統的 IP 地址進行系統尋址時,您可避免出現名稱解析問題的可能性。以上示例應帶出一個 Telnet 窗口,和一條成功連接消息,表明您可以開始向主機發送郵件。這象征著主機在端口 25 上監聽,您或許可以向主機發送一個 SMTP 郵件。以上的示例與 Exchange Internet Mail Service 連接以便發送電子郵件時的情況類似。至此,Internet Mail Service 開始向主機發送 SMTP 命令,以便啟動郵件傳送。
所有這些協議的工作方式是相似的。它們全部包括發送到主機的命令,以及預期的回復。在您斷定可與正確端口建立成功連接后,就可以開始檢查命令發出時對主機的實際響應。
最佳測試方法是真正地使用 Telnet 命令向主機發出命令。如果您確切地知道您需要發送什么內容,以及如何發送,或者您知道您的客戶端/服務器端程序正在試圖發送什么內容,那么這種方法是很有效的。問題是您能夠看到所給的典型響應,但看不到主機正在發送的內容。
以下是一個發送給 SMTP 主機的典型 Telnet 會話示例。
如果您的瀏覽器不支持內嵌框,請在單獨的頁中查看。
這些命令將在“協議命令和響應概述”一節中進一步討論。
以下示例說明了一個測試 POP3 身份驗證的 Telnet 會話。
如果您的瀏覽器不支持內嵌框,,可在單獨的頁面中查看。
所有命令都以回車/換行 (CR/LF) 終止。(.Tld 代表頂層域。)
命令 |
預期響應 |
說明 |
---|---|---|
HELO |
250 OK |
開始主機間對話。 |
MAIL FROM: <user@domain.tld> |
250 OK |
標識郵件的發件人。 |
RCPT TO: <user@domain.tld> |
250 OK |
標識郵件的收件人。 |
DATA |
354 Send Data |
標識郵件數據的開始點。 |
.(一個句號) |
250 OK |
標識郵件數據的結束點。 |
QUIT |
221 |
終止會話。 |
命令 |
預期響應 |
說明 |
---|---|---|
USER ntdomain/ntaccount/別名 |
+OK |
開始身份驗證過程。 |
PASS nt_password |
+OK |
為 Windows NT 帳戶指定密碼。 |
LIST |
+OK |
列出可供下載的郵件。 |
RETR郵件號 |
郵件正文 |
檢索“郵件號”對應的郵件正文。 |
DELE郵件號 |
+OK |
刪除“郵件號”對應的郵件。 |
QUIT |
+OK |
終止會話。 |
向 IMAP4 服務器發出的所有命令必須以命令標識符為前綴。此標識符是客戶能夠解釋的,以便跟蹤命令和響應對。
例如,當您的 IMAP 客戶機發出本地 SELECT 收件箱時,服務器的響應為本地 OK。
命令 |
預期響應 |
說明 |
---|---|---|
LOGIN ntdomain/ntaccount/別名密碼 |
OK LOGIN |
登錄到郵箱。 |
SELECT 文件夾 |
文件夾模式和 OK SELECT |
選擇要查看的文件夾。 |
FETCH 郵件號 |
郵件正文和 OK FETCH |
按“郵件號”檢索郵件。 |
STORE 郵件標志\標志 |
OK STORE |
為郵件作刪除或已讀/未讀標記。 |
EXPUNGE |
OK |
刪除所有作了標記的郵件。 |
LOGOUT |
OK |
終止會話。 |
當命令被拒絕時,會得到一個 NO 響應。
NNTP 訪問有兩種模式:身份驗證和匿名。身份驗證需要以下列出的命令中的前兩個。
命令 |
預期響應 |
說明 |
---|---|---|
AUTHINFO USER ntdomain/ntaccount/用戶名 |
381 More Info Needed |
提供身份驗證信息。 |
AUTHINFO PASS密碼 |
281 Accepted |
提供身份驗證密碼。 |
LIST |
組列表 |
列出所有可用組。 |
GROUP 組 |
分組規范 |
設置當前組。 |
ARTICLE 文章號 |
文章正文 |
按“文章號” 檢索文章。 |
QUIT |
205 |
終止會話。 |
第二種疑難解答的方法僅適用于 Exchange Server。Exchange Server 為它的多數協議執行協議記錄。當所涉及的協議的協議記錄開啟時,主機間的實際對話被轉錄為一個文本文件。這是疑難解答的最佳方法之一。它唯一的缺點是,有時,在有大量連接的情況下,難以確定哪個對話適用于您的問題。
可為 SMTP、POP3、IMAP4 和 NNTP 啟用協議記錄。以下是選自 Internet Mail Service 的示例 SMTP 協議日志:
以上的協議日志顯示了連接到另一臺 Exchange Server 計算機的 Internet Mail Service?!?gt;>>”和“<<<”顯示了數據是從何方向而來?!?gt;>>”暗示發送數據的是本地服務器。
在協議記錄開啟的情況下,Internet Mail Service 在 Exchange Server 計算機上的 Exchsrvr\Imcdata\Log 子目錄中創建一個 L000000#.log 文件。一定要記住,根據通過連接器的郵件量,這些 .log 文件會在硬盤上占用大量的空間。協議記錄應僅用于解決特殊的問題,而在正常使用連接器時,應將其關閉。
HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Services \MSExchangeIS \ParametersSystem
\IMAP4_Protocol_Logging
\NNTP_Protocol_Logging
在協議記錄開啟的情況下,信息存儲在所涉及的協議的注冊表中指定的路徑中,創建一個 L000000#.log 文件。默認情況下,在 Exchsrvr\Mdbdata 中創建該文件。與 SMTP 協議記錄相同的規則在此也適用:POP3、IMAP4 和 NNTP 協議記錄僅應用于解決特殊問題,在正常使用中,應將其關閉,以避免昂貴的管理開銷。
本文檔介紹了解決 Exchange Server Internet 協議問題的基本指導方針。本文檔的“協議命令和響應概述”一節中的協議命令和響應表僅包含與選定的協議相關的部分命令列表。要得到完整的命令列表和語法的詳細信息,最好的方法始終是查閱 RFC。
協議 |
RFC |
---|---|
SMTP |
RFC-821, RFC-1869 |
POP3 |
RFC-1939, RFC-1734 |
IMAP4 |
RFC-2060, RFC-2088, RFC-1731 |
NNTP |
RFC-977 |
LDAP |
RFC-1777 |
© 1998 Microsoft Corporation. 版權所有。
本文檔包含的信息代表了發布之日,Microsoft Corporation 對所討論問題的當前看法。因為 Microsoft 必須順應不斷變化的市場條件,故該文檔不應被理解為 Microsoft 一方的承諾,Microsoft 不保證所給出的信息在發布之日以后的準確性。
本白皮書僅供參考。在本文檔中,Microsoft 不作任何明示的或默示的保證。
BackOffice、BackOffice 徽標和 Microsoft 是 Microsoft Corporation 的注冊商標。
此處提到的其它產品或公司名稱可能是其各自所有者的注冊商標。
Microsoft Corporation • One Microsoft Way • Redmond, WA 98052-6399 • USA
,