如何疑難排解「504 必須先通過驗證」的 SMTP 通訊協定錯誤

文章翻譯 文章翻譯
文章編號: 843106 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

徵狀

應用程式記錄檔可能會記錄下列事件:

事件類型: 錯誤
事件來源: MSExchangeTransport
事件類別目錄: SMTP 通訊協定
事件識別碼: 7004

日期: 1/13/2004
時間: 5:23:43 PM
使用者: N/A
電腦: COMPUTERNAME
描述: 這是虛擬伺服器識別碼 1,連線 #29 的 SMTP 通訊協定錯誤記錄。遠端主機 "E2k3server1.contoso.com" 以 "504 必須先通過驗證" 回應 SMTP 的命令 "xexch50"。傳送的完整命令為 "XEXCH50 2336 3 "。這可能會造成連線失敗。

事件類型: 錯誤
事件來源: MSExchangeTransport
事件類別目錄: SMTP 通訊協定
事件識別碼: 7010
日期: 1/13/2004
時間: 5:43:49 PM
使用者: N/A 電腦: COMPUTERNAME
描述: 這是虛擬伺服器識別碼 1,連線 #30 的 SMTP 通訊協定錯誤記錄。"6.5.2.4" 上的用戶端傳送了 "xexch50" 命令,且 SMTP 伺服器回應為 "504 必須先通過驗證"。傳送的完整命令為 "xexch50 1092 2"。這可能會造成連線失敗。這些事件表示 XEXCH50 通訊協定接收器已引發,但是列在事件中的伺服器之間的二進位大型物件 (BLOB) 交換卻執行失敗。

注意 唯有 MSExchangeTransport 事件來源的診斷記錄出現中級或更高等級,您才會看到事件識別碼 7004 和 7010。

解決方案

如果要疑難排解這個問題,請依照下列步驟執行:
  1. 確認組織 Exchange Server 電腦的 SMTP 虛擬伺服器已啟用「整合式 Windows 驗證」。如果尚未啟用,請依照下列步驟執行:
    1. 在 [Exchange 系統管理員] 中,依序展開 [系統管理群組][伺服器][Exchange Server Name][通訊協定][SMTP]
    2. 用滑鼠右鍵按一下 SMTP 虛擬伺服器 (根據預設,這個伺服器的名稱為「預設 SMTP 虛擬伺服器」)。
    3. 按一下 [內容],再按一下 [存取] 索引標籤,然後按一下 [驗證]。請確定已選取 [整合式 Windows 驗證] 核取方塊。
  2. 如果 [整合式 Windows 驗證] 已啟用,但事件仍然持續存在,表示 7004 事件或 7010 事件中的傳送伺服器可能沒有接收伺服器的 SendAs 權限,或者被接收伺服器拒絕。如果傳送伺服器和接收伺服器都發生這些事件,可能是兩邊的伺服器都缺少彼此所需的 SendAs 權限。SendAs 權限未明確地設定。SendAs 權限通常是透過「Exchange 網域伺服器」(Exchange Domain Server,EDS) 群組成員資格繼承而來。如果 EDS 沒有這個「拒絕」存取控制項目 (ACE),受到影響的伺服器可能會巢狀於其他具有 DENY ACE 的群組中,或者 EDS 可能巢狀於其他具有 DENY ACE 的群組中。為了順利進行,XEXCH50 命令必須具有 Exchange 組織中各伺服器的 SendAs 權限。
  3. 確認您是否在 Exchange 組織的伺服器之間使用「傳輸層安全性」(Transport Layer Security,TLS) 和安全性通道。在這種案例中,STARTTLS 傳輸事件接收器會在 AUTH 命令執行之前引發。XEXCH50 命令稍後會因缺少 AUTH 命令而失敗於工作階段中。
  4. 如果伺服器之間的「Exchange 通訊協定安全性」(Exchange Protocol Security,EXPS) 驗證無法正確運作,XEXCH50 命令便無法執行。應用程式記錄檔中的事件 1704 和 1706 即表示 EXPS 驗證失敗。

    事件類型: 警告
    事件來源: MSExchangeTransport 事件
    類別目錄: SMTP 通訊協定
    事件識別碼: 1706
    描述:
    EXPS 暫時無法提供
    "<ServerName>.<Domain>.com" 通訊協定安全性。"CSessionContext::OnEXPSInNegotiate" 呼叫
    "HrServerNegotiateAuth" 失敗,錯誤碼 0x8009030c
    ( i:\transmt\src\smtpsink\exps\expslib\context.cpp@1462 )。
    資料: 0000:
    0c 03 09 80 ...?

    注意 錯誤碼 0x8009030c 轉譯為 SEC_E_LOGON_DENIEDHresult。

    這些問題可能難以解決,因為必須具有 Microsoft Windows 的 EXPS 認證才能通過這個 AUTH 命令。您可以使用各種工具 (如 NLTEST 工具和 NETDOM 工具),疑難排解事件識別碼 7006 和 7004 的綜合問題。疑難排解的步驟可能會包括重設機器的帳戶密碼。

    如果您的應用程式記錄檔出現本文前面所述的事件識別碼 7006 和 7004 的綜合問題,並且您無法利用 EXPS 驗證探索問題的來源,請與「Microsoft 技術支援處」連絡。如果您的應用程式記錄檔沒有記錄事件識別碼 7006 和 7004 的綜合問題,請執行步驟 5。如需有關 EXPS 的詳細資訊,請參閱<其他相關資訊>一節。
  5. 確認 Exchange 組織中各伺服器之間,是否具有防火牆或防毒軟體。如果組織中的伺服器之間有防火牆,您可以測試防火牆,判斷是否為造成問題的原因。如果要執行這項操作,請暫時停用防火牆。

其他相關資訊

如需有關如何找出傳輸問題的診斷記錄的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
821910 How to troubleshoot for Exchange Server 2003 transport issues
257265 XCON:Exchange 2000 傳輸問題的一般疑難排解

其他可能會發生具有錯誤 504 的事件識別碼 7004 的案例

如果事件識別碼 7004 所指的伺服器是執行 Exchange 2000 Server 的電腦,或是其他 Exchange 組織中的 Exchange Server 2003 電腦,並且 Exchange 組織之間沒有設定跨樹系信任的連接器,應該就會發生具有錯誤 504 的事件識別碼 7004。 如需有關跨樹系實作的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
828770 Resolve anonymous senders functionality in Microsoft Exchange 2003
注意 在文件 828770 中,請參閱<Authentication in cross-forest scenarios>一節。

如果伺服器是外部網際網路伺服器 (Exchange 2000 Server 或 Exchange Server 2003),應該也會發生具有錯誤 504 的事件識別碼 7004。

如果 Exchange 5.5 伺服器具有 5.5.2657.72 版的 Msexcimc.exe 或較新版的「網際網路郵件服務」(Internet Mail Service,IMS) 連接器,並且該 Exchange 5.5 伺服器所在的電子郵件網域,正好不在傳送 Exchange 2000 Server 電腦或 Exchange Server 2003 電腦之內,則接收 Exchange 5.5 IMS 的連接器將無法瞭解來自傳送 Exchange Server 電腦的 XEXCH50 命令。透過網際網路從 Exchange 2000 Server 電腦或 Exchange Server 2003 電腦,將郵件傳送到外部電子郵件網域中的 Exchange 5.5 Server 電腦時,傳送 Exchange Server 電腦的應用程式記錄檔通常會記錄具有 "505 Authentication required" (505 需要驗證) 錯誤的事件識別碼 7004。解決這個問題的一個方式就是,抑制在 Exchange 2000 Server 電腦或 Exchange Server 2003 電腦所在 Exchange 組織以外的地方傳送 XEXCH50 命令。

如果要解決 Exchange 2000 Server 電腦或 Exchange Server 2003 電腦中的這個問題,您可以將 SuppressExternal 登錄機碼設為 1。這個設定會使 Exchange Server 無法嘗試從 Exchange 組織以外的地方傳送 XEXCH50 命令。 如需有關如何建立 SuppressExternal 登錄機碼並將值設為 1 的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
818222 Messages remain in an outbound queue until a non-delivery report is generated when you send e-mail to a remote domain

可能伴隨事件識別碼 7004 和 7010 出現的其他徵狀

如同 7004 事件和 7010 事件所指出的錯誤,如果 XEXCH50 命令無法正確執行,您可能會看到下列徵狀:
  • Exchange 2000 Server 電腦和 Exchange Server 2003 電腦的公用資料夾複寫將會受到影響。
  • 傳送到公用資料夾的郵件將會受到影響。
  • 一般的訊息日誌可能無法運作,或者出現重複的日誌訊息。 如需有關疑難排解訊息日誌的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    843105 Troubleshooting message journaling in Exchange Server 2003 and in Exchange 2000 Server
  • 如果在 Exchange 組織中啟用信封日誌做為報告,信封日誌可能無法正常運作。
  • 「通訊群組」的傳遞報告設定可能無法正常運作。
  • 「通訊群組」的擴充可能無法正常運作。
  • 「通訊群組」的權限和限制可能無法如預期般運作。
  • 傳送到隱藏的「通訊群組」的郵件可能無法如預期般運作。
  • 寄給其他收件者的郵件可能會產生重複。
  • 「智慧型郵件篩選」(Intelligent Message Filtering,IMF) 可能無法如預期般運作。

關於 XEXCH50 的詳細資訊

XEXCH50 是 Exchange ESMTP 的延伸功能,可以用來轉送特定 屬性,例如信封屬性、訊息屬性和收件者屬性。XEXCH50 命令是 一個簡短的命令。接收到成功類型回應的 XEXCH50 命令,後面會緊跟著變數大小的二進位大型物件 (BLOB)(大小會與 XEXCH50 命令的第一個引數相對應)。

關於 TLS 和 STARTTLS 的詳細資訊

<透過 TLS 的安全 SMTP 的 SMTP 服務延伸模組>RFC 2487 會詳細說明 STARTTLS 命令。如果要檢視這篇 RFC,請造訪下列 IETF 網站:
ftp://ftp.ietf.org/rfc/rfc2487.txt
注意 為了協助保護通訊,您可以使用「傳輸層安全性」(TLS) 將 Microsoft SMTP 服務設定為加密 SMTP 傳輸。這項功能是透過 STARTTLS SMTP 通訊協定命令提供。

關於 EXPS 的詳細資訊

X-EXPS 雖然很類似 AUTH,但卻是 Exchange Server 專用的指令動詞。這個資料命令和回應的語法會依您所選取的 AUTH 封裝 (例如 LOGIN、NTLM、GSSAPI 或其他) 而有所不同。如需詳細資訊,請參閱 AUTH RFC。

雖然 EXPS 代表 Exchange 通訊協定安全性,但它所參照的唯一通訊協定卻是 SMTP。Exchange 2000 Server 和 Exchange Server 2003 中所使用的某些指令動詞,是專屬於這些產品,並且必須與 ESMTP 指令動詞搭配使用。這些也就是 ESMTP X 指令動詞。 如需有關 ESMTP X 指令動詞的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
812455 Definitions of verbs that are used between 2 Exchange servers
如果 Exchange 組織中找不到所要傳送和通知的 ehlo 名稱,接收伺服器的 GSSAPI 驗證 (EXPS) 功能將會持續存在。ehlo 名稱將會如同從未通知般地被忽略。基本上,傳送伺服器不會嘗試進行驗證。

「網路監視器」追蹤已顯示傳送伺服器從未發行 GSSAPI 驗證,並且在 XEXCH50 指令動詞後面記錄「504 必須先通過驗證」的 SMTP 通訊協定錯誤。如果要解決這個問題,請確定在 SMTP 虛擬伺服器內容中有正確的完整格式網域名稱 (FQDN)。

如果要確認 SMTP 虛擬伺服器的傳遞設定,請依照下列步驟執行:
  1. 按一下 [開始],指向 [所有程式],再指向 [Microsoft Exchange],然後按一下 [系統管理員]
  2. 如果已選取 [顯示系統管理群組] 核取方塊,請展開 [系統管理群組],再展開 [First Administrative Group]

    如果要顯示系統管理群組,請用滑鼠右鍵按一下 Your_Organization,按一下 [內容],再按一下以選取 [顯示系統管理群組] 核取方塊,按兩次 [確定],然後重新啟動 [Exchange 系統管理員]。
  3. 依序展開 [伺服器][Your_Exchange_Server][通訊協定],然後按一下 [SMTP]
  4. 在右邊窗格中,用滑鼠右鍵按一下 [預設 SMTP 虛擬伺服器],然後按一下 [內容]
  5. 按一下 [傳遞] 索引標籤,然後按一下 [進階]
  6. 確認 [完整格式的網域名稱] 方塊所列的值是伺服器的實際 FQDN。
注意 FQDN 值可以是網路基本輸入輸出系統 (NetBIOS) 名稱或 FQDN。

如果您變更過 [完整格式的網域名稱] 方塊所列的名稱以嘗試偽裝成 220 回應名稱,或偽裝成 RFC 2821 已接收標頭中的名稱,就會產生<徵狀>一節中列出的某些徵狀。

此外,請確定伺服器之間沒有已卸除的封包。請確定防火牆並未封鎖延伸的 SMTP 指令動詞,例如 XEXCH50

屬性

文章編號: 843106 - 上次校閱: 2007年11月26日 - 版次: 5.1
這篇文章中的資訊適用於:
  • Microsoft Exchange Server 2003 Enterprise Edition
  • Microsoft Exchange Server 2003 Standard Edition
  • Microsoft Exchange 2000 Enterprise Server
  • Microsoft Exchange 2000 Server Standard Edition
關鍵字:?
kbprb KB843106
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com