XIMS:在協力廠商測試中,Microsoft SMTP Server 似乎接受並轉送電子郵件

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

在此頁中

徵狀

如果您使用協力廠商的測試,來測試 Microsoft Simple Mail Transfer Protocol (SMTP) 伺服器的轉送情形,結果 SMTP 伺服器似乎測試失敗,而 Microsoft SMTP 產品也似乎要開啟以進行轉送,但其實不然。

您可以使用一般測試,來測試 SMTP 伺服器的轉送情形。您也可以利用協力廠商網站和工具,例如:
http://www.abuse.net/relay.html
- 以及 -
http://mail-abuse.net
Microsoft 提供協力廠商的聯絡資訊,以協助您找出技術支援。此聯絡資訊若有變更,恕不另行通知。Microsoft 不保證此協力廠商聯絡資訊的準確性。

起初,您的 SMTP 伺服器似乎在某些測試上失敗,而 Microsoft SMTP 產品似乎也要開啟以進行轉送工作。但是在您仔細地檢查伺服器之後,卻發現 Microsoft SMTP 產品並未開啟以進行轉送。

發生的原因

SMTP 通訊協定交談中每個收件者或寄件者位址包含兩個部分:本機部分 (或信箱) 和網域部分。如果未指定網域部分 (亦即小老鼠符號 @ 後面的部分),則電子郵件會被視為在本機。事實上,由於有些使用者會設定自己的 SMTP 用戶端,所以某些 Microsoft SMTP 產品會附加本機網域,以便只用使用者的名稱做為電子郵件地址。透過所新增的預設本機網域,Microsoft 伺服器就可以加上最有可能的預設值,以減少支援成本。

之所以出現這個問題,是因為 Microsoft SMTP 產品在接受所要傳送的 SMTP 電子郵件之前,並不會先查閱目錄。Microsoft SMTP 產品只會檢查收件者的網域是否為本機或明確允許的網域。 如果不是本機或明確允許的網域,則伺服器會回應類似下列的錯誤訊息:
550 5.7.1 Relaying prohibited (550 5.7.1 禁止轉送)
只要驗證收件者位址的網域部分是本機,即可防止轉送。 檢查郵件伺服器的目錄,看看收件者是否為有效但非必要的選項。 如果郵件伺服器在接受郵件之後,卻判斷出無法傳送郵件,則伺服器一定會產生「未傳遞報告」(NDR,Non-Delivery Report)。(請參閱 Request for Comments [RFC] 2821 文件第 3.7 節及 RFC 1123 文件第 5.2.7 節)。Microsoft SMTP 產品符合這項要求。Microsoft SMTP 伺服器似乎接受了所要轉送的訊息,但是後來並未傳送郵件,並且產生 NDR。

其他相關資訊

如果您必須在 SMTP 通訊協定交談期間查閱目錄,則可以撰寫 Windows 2000 SMTP 通訊協定事件接收器。

如需詳細資訊,請參閱下列 MSDN Platform SDK SMTP Server Events 網站:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/smtpevt/html/_smtpevt_protocol_event_interfaces.asp
所建議的 RFC 相容回應類似於:
550 5.1.1 user@northwindtraders.com... User unknown
Microsoft 選擇不在 SMTP 通訊協定交談期間查閱目錄的原因如下:
  • 如果您對傳送大量未經要求廣告電子郵件 (垃圾郵件或 UCE) 的假使用者傳遞 5xx 錯誤,則假使用者立即得知哪些地址是真的,哪些是假的。該使用者可以透過 SMTP 通訊協定播放名稱目錄,以取得有效的電子郵件地址清單。 同時,這可能也會威脅到本機使用者的安全性,因為本機使用者的名稱通常與電子郵件地址相同。
  • 惡意的使用者可以利用寄件者地址,以未經授權的存取權進入系統 (詐騙),然後使用受害者的伺服器傳送 NDR 給指定的收件者。此攻擊對伺服器造成的衝擊限僅於攻擊者所傳送的資料量。換言之,如果惡意使用者想要傳送 1 MB 資料給協力廠商,就必須秏用本身的 1 MB 頻寬,向 SMTP 伺服器傳送 1 MB 資料。通常這類惡意使用者所傳送的 1 MB 資料,卻會導致整個網際網路上數十或數千 MB 資料對一或多位受害者造成影響。阻止這個問題的最好方法是,驗證網際網路上的所有寄件者地址。 然而,並沒有驗證網際網路上寄件者地址的標準方法,因此最好的做法是查看郵件標頭。
  • 如果在 SMTP 通訊協定交談期間查閱目錄,則 SMTP 通訊協定可能會很慢。本文發行時,Microsoft 假設 SMTP 伺服器的速度應該不會造成網際網路或桌面 SMTP 用戶端上的 SMTP 訊息阻塞。如果目錄超載,用戶端可能會發現伺服器太慢,並且收到錯誤訊息。 在某些情況下,可能無法使用目錄,或者需要轉送特定網域,並且無法使用目錄副本 (例如,在 ISP 主機環境中)。

一般轉送資訊

轉送是指 SMTP 用戶端使用 SMTP 伺服器,將電子郵件轉寄至遠端 (非本機) 網域的動作。設計轉送功能的用意原本不壞,因為 SMTP 就是為此而設計的 (請參閱 RFC 2821 文件中第 2.1 和 3.7 節)。

但是,如果轉送不受到控制 (未受控制的主機稱為「開放式轉送」主機),則惡意的使用者可能會透過轉送來傳送大量未經要求的廣告電子郵件 (垃圾郵件或 UCE)。 惡意使用者可以藉由中繼主機發出這些大量未經要求的廣告電子郵件,以模糊自已的身份。同時,這也會緊縮轉送主機上的資源,使轉送主機無法傳送有效的電子郵件。 特別是,大部分傳送未經要求廣告電子郵件的使用者,可以在不必使用自己的頻寬的情況下,就能將單一訊息傳給許多收件者。

轉送測試 1

這是 SMTP 轉接的標準測試。除非 SMTP 用戶端先行驗證或系統管理員特別允許,否則不應該以這種方式進行轉送:
>>> RSET
<<< 250 2.0.0 Resetting
>>> MAIL FROM:<spamtest@contoso.net>
<<< 250 2.1.0 spamtest@contoso.net....Sender OK
>>> RCPT TO:<relaytest@contoso.net>
<<< 550 5.7.1 Unable to relay for relaytest@contoso.net
					

轉送測試 2

這個測試基本上是相同的,只不過建立者是本機使用者,而非遠端網域使用者。惡意使用者經常透過寄件者地址以未經授權的方式存取系統 (欺騙),但是伺服器並不會因此而上當:
>>> RSET
<<< 250 2.0.0 Resetting
>>> MAIL FROM:<spamtest>
<<< 250 2.1.0 spamtest@northwindtraders.com....Sender OK
>>> RCPT TO:<relaytest@contoso.net>
<<< 550 5.7.1 Unable to relay for relaytest@contoso.net
					

轉送測試 3

這個測試適用於 NULL 或空白寄件者信封地址。NDR 和其他通知均有 NULL 寄件者信封地址。 不過,除非收件者地址中的網域是本機網域,否則並不會傳送通知:
>>> RSET
<<< 250 2.0.0 Resetting
>>> MAIL FROM:<>
<<< 250 2.1.0 <>....Sender OK
>>> RCPT TO:<relaytest@contoso.net>
<<< 550 5.7.1 Unable to relay for relaytest@contoso.net
					

轉送測試 4

這個測試與轉送測試 2 相同,只不過此測試是由用戶端明確地新增本機網域。SMTP 伺服器並不會因此而上當:
>>> RSET
<<< 250 2.0.0 Resetting
>>> MAIL FROM:<spamtest@northwindtraders.com>
<<< 250 2.1.0 spamtest@northwindtraders.com....Sender OK
>>> RCPT TO:<relaytest@contoso.net>
<<< 550 5.7.1 Unable to relay for relaytest@contoso.net
					

轉送測試 5

這個測試也與轉送測試 2 相同,差別在於此測試試圖加上伺服器的本機 IP 位址以欺騙伺服器。 雖然此位址的格式通常會被接受,但是伺服器並不會轉送到遠端網域。許多不同的測試會在寄件者地址中使用 localhost 或伺服器的「網域名稱系統」(DNS) 名稱,不過伺服器並不會因寄件者地址而受騙:
>>> RSET
<<< 250 2.0.0 Resetting
>>> MAIL FROM:<spamtest@[10.10.10.10]>
<<< 250 2.1.0 spamtest@[10.10.10.10]....Sender OK
>>> RCPT TO:<relaytest@contoso.net>
<<< 550 5.7.1 Unable to relay for relaytest@contoso.net
					

轉送測試 6

這個測試特別適用於舊的 UNIX 伺服器,這種伺服器傳送電子郵件時會加上本機網域並且將小老鼠符號 (@) 變更為百分比符號 (%), 然後才轉送郵件。此 Microsoft 產品接受了郵件,但是測試似乎失敗了。由於百分比符號 (%) 是本機部分的有效字元,因此該產品選擇接受此郵件,但是查閱目錄失敗時,就會傳送 NDR。Microsoft SMTP 產品不會受此類轉送影響,因為該郵件不會被轉送,而且會傳送 NDR:
>>> RSET
<<< 250 2.0.0 Resetting
>>> MAIL FROM:<spamtest>
<<< 250 2.1.0 spamtest@northwindtraders.com....Sender OK
>>> RCPT TO:<relaytest%contoso.net>
<<< 250 2.1.5 relaytest%contoso.net@northwindtraders.com
					

轉送測試 7

這個測試是從轉送測試 6 演變而來的。此 Microsoft 產品會接受郵件,但是似乎測試失敗。由於引號字元 (") 是本機部分的有效字元,因此該產品選擇接受此郵件,但是查閱目錄失敗時,就會立即傳送 NDR。Microsoft SMTP 產品不會受此類轉送影響,因為該郵件不會被轉送,而且會傳送 NDR。
>>> mail from: <spamtest>
<<< 250 2.1.0 spamtest@northwindtraders....Sender OK
>>> rcpt to: <"nobody@mail-contoso.org">
<<< 250 2.1.5 "nobody@mail-contoso.org"@northwindtraders.com 
					
如果 SMTP 伺服器在一或多個測試上失敗 (尤其是轉送測試 6 和 7),並不表示伺服器是開放式轉送。 有些系統 (包含 Microsoft Exchange 和 Microsoft Windows 2000 SMTP) 似乎接受轉送郵件,但是卻會在內部拒絕郵件,而不予傳送。然而,您必須傳送實際的測試郵件,才能肯定伺服器是否為開放式轉送。

當您對 Exchange 2000 伺服器執行轉送測試 6 和 7 時,這些測試會對無效的收件者產生 NDR,該 NDR 類似下列 Exchange System Manager 中指定信箱 (在預設 SMTP 虛擬伺服器中,[郵件] 索引標籤上的 [將無法解析收件者的所有郵件轉寄至主機] 方塊中加以設定) 所接收的 NDR:
此郵件的某些收件者無法送達。
 
主旨:轉送測試 6 
傳送日期:3/22/2002 5:47 PM 
 
無法傳送到下列的收件者:
 
  relaytest%contoso.net@northwindtraders.com on 3/12/2002 12:30 PM
此郵件所傳往的組織中,並沒有這個電子郵件帳戶存在。請檢查電子郵件地址,或者直接聯絡收件人,找出正確的地址。
  <server.northwindtraders.com #5.1.1>
					
- 或者 -

此郵件的某些收件者無法送達。
 
主旨:轉送測試 7 
傳送日期:3/13/2002 12:30 PM 
 
無法傳送到下列的收件者:
 
"nobody@mail-contoso.org"@northwindtraders.com on 3/13/2002 12:30 PM
此郵件所傳往的組織中,並沒有這個電子郵件帳戶存在。請檢查電子郵件地址,或者直接聯絡收件人,找出正確的地址。
<server.northwindtraders.com #5.1.1>
					
您可以使用這些 NDR 證明並未轉送郵件。

如需有關執行 Exchange Server 5.5 時如何防止伺服器開放轉送的詳細資訊,請按一下下列的文件編號,檢視 Microsoft Knowledge Base 中的文件:
196626 XFOR:Restricting Routing in the Internet Mail Service
如果您執行 Microsoft Exchange 2000,根據預設,轉送需要經過驗證。 如需詳細資訊,請參閱「Exchange 2000 說明」。

屬性

文章編號: 304897 - 上次校閱: 2006年11月20日 - 版次: 3.1
這篇文章中的資訊適用於:
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Exchange Server 4.0 Standard Edition
  • Microsoft Exchange Server 5.0 Standard Edition
  • Microsoft Exchange Server 5.5 Standard Edition
  • Microsoft Exchange 2000 Enterprise Server
  • Microsoft Windows XP Professional
關鍵字:?
kbprb KB304897
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