Sun Java System Messaging Server 6 2005Q4 管理指南

EHLO 指令支援

關鍵字:ehlonoehlocheckehlo

SMTP 協定已延伸 (RFC 1869) 為允許協商其他指令。使用新的 EHLO 指令便可達此目的,該指令取代了 RFC 821 的 HELO 指令。延伸的 SMTP 伺服器透過提供其支援的延伸清單來回應 EHLO。未延伸的伺服器則會傳回不明的指令錯誤,然後用戶端會傳送舊的 HELO 指令。

退回策略通常可與延伸的以及未延伸的伺服器正常配合工作。但是如果伺服器未根據實作,則會發生問題。具體來說,曾經有某些不符合的伺服器在接收未知指令時中斷連線。

SMTP 用戶端會實作一種策略,如果任一伺服器在接收 EHLO 時中斷連線,SMTP 用戶端便會藉此策略嘗試重新連線並使用 HELO 。但是,如果遠端伺服器在接收 EHLO 時,不僅中斷連線,還處於問題狀態,則此策略可能無法奏效。

通道關鍵字 ehlonoehlocheckehlo 可用於處理此類情況。ehlo 關鍵字告知 MTA 在嘗試所有的初始連線時,使用 EHLO 指令。noehlo 關鍵字可完全停用 EHLO 指令。checkehlo 關鍵字測試由遠端 SMTP 伺服器傳回的回應大標題中有無字串「ESMTP」。如果發現此字串,則使用 EHLO;如果未發現,則使用 HELO。預設運作方式是在嘗試所有初始連線時使用 EHLO,除非大標題行包含字串「fire away」(在此情況下使用 HELO);請注意,由於此預設運作方式介於 ehlocheckehlo 關鍵字產生的運作方式之間,因此沒有對應於此預設運作方式的關鍵字。