共用方式為


瞭解傳輸佇列

適用版本: Exchange Server 2010

上次修改主題的時間: 2010-01-25

本主題提供 Microsoft Exchange Server 2010 中的佇列,以及系統管理員可執行之佇列管理工作的概觀。

要尋找與管理傳輸伺服器相關的管理工作嗎?請參閱 管理傳輸伺服器

目錄

概觀

佇列資料庫檔案

佇列管理

郵件重試、重新提交及到期間隔

概觀

「佇列」是等候進入下一個處理階段之訊息的暫存位置。每個佇列代表傳輸伺服器以特定順序處理的訊息邏輯集合。

Exchange 管理命令介面及佇列檢視器支援兩種可與佇列互動的類型。您可以使用這些介面來檢視佇列的狀態與內容,以及詳細的訊息屬性。您也可以使用這些介面執行修改佇列或佇列中之訊息的動作。

Exchange 2010 使用可延伸儲存引擎 (ESE) 資料庫供佇列儲存之用。ESE 舊稱 JET,是為 Exchange 的基礎資料庫結構定義低階 API 的方法。

來往網際網路的訊息會佇列在已安裝 Edge Transport server role 的電腦上。而在 Exchange 2010 組織中傳輸的訊息則會佇列在已安裝 Hub Transport server role 的電腦上。

佇列類型

訊息的路由決定儲存訊息的佇列類型。Exchange 2010 中使用下列佇列類型:

  • 提交佇列   分類程式用來收集必須由傳輸代理程式解析、路由與處理之所有訊息的持續佇列。「分類程式」是 Exchange 傳輸的元件之一,會處理所有輸入訊息,並根據預定收件者的相關資訊決定如何處理訊息。在 Exchange 2010 中,Edge Transport Server 會使用分類程式來將訊息路由到適當的目的地。Hub Transport Server 會使用分類程式來展開通訊群組清單,並識別替代收件者與轉寄地址。分類程式擷取收件者的完整資訊後,會使用該資訊來套用原則、路由訊息及執行內容轉換。
    傳輸伺服器收到的所有訊息會進入提交佇列中進行處理。訊息會透過接收連接器、收取目錄或儲存區驅動程式提交。分類程式會從此佇列擷取訊息,除此之外,還會判定收件者的位置與到達該位置的路由。分類之後,訊息會移至傳遞佇列或無法到達的佇列。每個 Exchange 2010 傳輸伺服器都只有一個提交佇列。在提交佇列中的訊息不能同時存在於其他佇列中。
  • 信箱傳遞佇列   信箱傳遞佇列可存放使用加密 Exchange RPC 傳遞到信箱伺服器的訊息。信箱傳遞佇列只存在於 Hub Transport Server 上。信箱傳遞佇列可存放傳遞到信箱收件者的訊息,該收件者的信箱資料是儲存在與 Hub Transport Server 位於同一站台的 Mailbox Server 上。Hub Transport Server 上可存在多個信箱傳遞佇列。信箱傳遞佇列的下一個躍點是信箱儲存區的辨別名稱。
  • 遠端傳遞佇列   遠端傳遞佇列可存放使用 SMTP 傳遞到遠端伺服器的訊息。遠端傳遞佇列可存在於 Hub Transport Server 及 Edge Transport Server 上,並且每個伺服器上可存在多個遠端傳遞佇列。每個遠端傳遞「佇列」都包含路由至具有相同傳遞目的地之收件者的訊息。在 Edge Transport Server 上,這些目的地是外部 SMTP 網域或 SMTP 連接器。在 Hub Transport Server 上,這些目的地則是位於 Hub Transport Server 所在之 Active Directory 站台的外部。遠端傳遞佇列會在需要時動態建立,並且當不再存放訊息及超過可設定的到期時間時,就會自動刪除。依預設值,遠端傳遞佇列會在最後一封訊息離開佇列三分鐘後刪除。遠端傳遞佇列的下一個躍點是 SMTP 網域名稱、智慧主機名稱、IP 位址,或是 Active Directory 站台名稱。
  • Poison 訊息佇列   Poison 訊息佇列是一種特殊的佇列,用來隔離在伺服器故障後偵測到可能對 Exchange 2010 系統有害的訊息。包含可能對 Exchange 系統有嚴重損害之錯誤的訊息會傳遞到 Poison 訊息佇列。此佇列平常是空的,並且如果沒有 Poison 的訊息,佇列檢視介面就不會顯示此佇列。Poison 訊息佇列一律處於就緒狀態。預設會擱置此佇列中的所有訊息。如果訊息被視為對系統有害,可將之刪除。如果導致訊息進入 Poison 訊息佇列的事件經判斷後發現與訊息無關,即可繼續傳遞訊息。繼續傳遞時,訊息會進入提交佇列。
  • 無法達到的佇列   每部傳輸伺服器只能有一個無法達到的佇列。無法存取的佇列包含無法路由傳送到其目的地的郵件。一般來說,無法達到的目的地是修改傳遞之路由路徑的組態變更所造成。無論目的地為何,具有無法達到的收件者的所有訊息都位於此佇列中。

下表列出存在於 Hub Transport Server 或 Edge Transport Server 上的佇列及其特性。

存在於 Hub Transport Server 或 Edge Transport Server 上的佇列

佇列名稱 伺服器角色 伺服器上的佇列數目

信箱傳遞佇列

集線傳輸

每個唯一目的地信箱伺服器都有一個佇列

毒藥郵件佇列

邊際傳輸

集線傳輸

1

遠端傳遞佇列

邊際傳輸

集線傳輸

邊際傳輸:每個唯一目的地 SMTP 網域或智慧主機都有一個佇列

集線傳輸:每個唯一遠端 Active Directory 站台都有一個佇列

提交佇列

邊際傳輸

集線傳輸

1

無法存取之佇列

邊際傳輸

集線傳輸

1

經由傳輸收到訊息時,會建立傳輸郵件項目,並且將該項目儲存到資料庫中。傳輸郵件項目進入資料庫時,會對該項目指派唯一的識別碼。如果訊息或傳輸郵件項目路由到多位收件者,項目就可能會有多個目的地。每個目的地代表傳輸郵件項目的個別路由解決方案,而每個路由解決方案都會造成建立一個路由的郵件項目。

路由的郵件項目是傳輸郵件項目的參照,也是佇列動作的作業單位。如果傳輸郵件項目有多個路由解決方案,則會有多個路由的郵件項目參照同一個傳輸郵件項目。正要傳送到兩個不同網域中之收件者的訊息在傳遞佇列中會顯示為兩封不同的訊息,即使資料庫中只有一個傳輸郵件項目亦然。

關於有害訊息佇列及無法達到的佇列

當到達目的地的路由不明時,分類程式會將郵件傳送到「無法達到的」佇列。無法達到的目的地通常是由影響傳遞路徑的組態錯誤所引起。例如,在下列情況下,郵件會傳送至「無法達到的」佇列:

  • 名為 Contoso.com 的遠端傳遞佇列中有郵件。
  • 您刪除用來連接 Contoso.com 網域的傳送連接器。

「無法達到的」佇列中的郵件預設處於 [準備就緒] 狀態。「無法達到的」佇列中的郵件永遠不會自動重新提交。郵件會一直保留在「無法達到的」佇列中,直到由系統管理員手動重新提交、由系統管理員移除或超過 MessageExpirationTimeOut 參數指定的值為止。

有害訊息佇列包含伺服器故障後被認為對 Exchange 2010 伺服器可能有害的郵件。郵件的內容和格式本身可能真的有害。或者,也可能是設計不良的代理程式造成 Exchange 伺服器在處理有害的郵件時失敗。有害訊息佇列中的所有郵件都處於永久擱置狀態。有害訊息佇列無法以 Retry-Queue 指令程式和 Resubmit 參數來重新提交。若要重新提交毒藥郵件佇列中的郵件,請使用佇列檢視器來繼續傳遞郵件,或使用 Resume-Message 指令程式。毒藥訊息佇列中的郵件絕對不會自動恢復或到期。在系統管理員手動恢復或移除郵件之前,這些郵件會保留在毒藥訊息佇列中。

回到頁首

佇列資料庫檔案

所有不同的佇列都是儲存在單一 ESE 資料庫中。此佇列資料庫預設位於 C:\Program Files\Microsoft\Exchange Server\TransportRoles\data\Queue。

與任何 ESE 資料庫相同,佇列資料庫是使用記錄檔來接受、追蹤及維護資料。為了增強效能,所有郵件交易都會先寫入至記錄檔及記憶體,然後再寫入至資料庫檔案。檢查點檔案會追蹤資料庫已認可的交易記錄項目。在 Microsoft Exchange Transport 服務的正常關閉期間,資料庫一律會認可交易記錄中找到的未認可資料庫變更。

循環記錄是用於佇列資料庫。這表示不會維護在交易記錄中找到的已認可交易的歷程記錄。任何比目前檢查點還要舊的交易記錄,都會立即自動予以刪除。因此,就無法從備份重新顯示佇列資料庫復原的交易記錄。

下表列出構成佇列資料庫的檔案。

構成佇列資料庫的檔案

檔案 描述

Mail.que

此佇列資料庫檔案會儲存所有佇列的郵件。

Tmp.edb

此暫存資料庫檔案是用來驗證啟動時的佇列資料庫架構。

Trn*.log

此交易記錄會記錄所有的佇列資料庫變更。資料庫變更會先寫入至交易記錄,然後資料庫再進行認可。Trn.log 是目前使用中的交易記錄檔。Trntmp.log 是事先建立的下一個已提供的交易記錄檔。如果現有的 Trn.log 交易記錄檔達到大小上限,則會將 Trn.log 重新命名為 Trnnnnn.log,其中 nnnn 是序號。然後,Trntmp.log 會重新命名為 Trn.log,並變成目前使用中的交易記錄檔。

Trn.chk

此檢查點檔案會追蹤資料庫已認可的交易記錄項目。此檔案與 mail.que 檔案一律會位在相同位置。

Trnres00001.jrs

Trnres00002.jrs

這些保留交易記錄檔是作為預留位置。只有在含有交易記錄的硬碟機空間用完而完全停止佇列資料庫時,才會使用它們。

設定佇列資料庫的選項

您不可以使用 Exchange 管理主控台 (EMC) 或命令介面來設定佇列資料庫。請修改 EdgeTransport.exe.config 檔案來設定佇列資料庫。EdgeTransport.exe.config 檔案是與 EdgeTransport.exe 檔案關聯的 XML 應用程式組態檔。

如需 EdgeTransport.exe.config 檔案的詳細資訊,請參閱瞭解 EdgeTransport.exe.config 檔案

您可以在 EdgeTransport.exe.config 檔案的 <appSettings> 區段中,新增組態選項或是修改現有的組態選項。也可以使用許多與佇列資料庫完全無關的組態選項。然而,這些選項不在本主題的範圍內,此處並不會予以討論。

下表會描述 EdgeTransport.exe.config 檔案中的可用佇列資料庫組態選項。

EdgeTransport.exe.config 檔案中的可用郵件佇列資料庫組態選項

參數名稱 描述

QueueDatabaseBatchSize

此參數可指定在執行之前可以組成群組的資料庫 I/O 作業數目。預設值為 40

QueueDatabaseBatchTimeout

此參數可指定資料庫在執行多個資料庫 I/O 作業之前,等待這些資料庫 I/O 作業組成群組的時間上限 (毫秒)。如果符合下列條件,則會執行資料庫 I/O 作業,而不再繼續等待:

  • 尚未達到 QueueDatabaseBatchSize 參數所指定的資料庫 I/O 作業數目。
  • 已超過 QueueDatabaseBatchTimeout 參數所指定的時間。

預設值為 100

QueueDatabaseMaxConnections

此參數可指定可以開啟的 ESE 資料庫連線數目。預設值為 4

QueueDatabaseLoggingBufferSize

此參數可指定將交易記錄寫入至交易記錄檔之前,用來快取交易記錄的記憶體。預設值是 5242880 個位元組。

QueueDatabaseLoggingFileSize

此參數可指定交易記錄檔的大小上限。達到記錄檔大小上限時,會開啟新的記錄檔。預設值是 5242880 個位元組。

QueueDatabaseLoggingPath

此參數可指定佇列資料庫記錄檔的預設目錄。預設值為 C:\Program Files\Microsoft\Exchange Server\TransportRoles\data\Queue。在您變更佇列資料庫記錄目錄之前,請確定新的目錄存在。也請確定該目錄已套用下列檔案權限:網路服務:完全控制;系統:完全控制;系統管理員:完全控制。

QueueDatabaseMaxBackgroundCleanupTasks

此參數可指定隨時可以佇列至資料庫引擎執行緒集區的背景清理工作項目數目上限。預設值為 32

QueueDatabaseOnlineDefragEnabled

此參數可啟用或停用排定的郵件佇列資料庫線上磁碟重組。預設值為 $true

QueueDatabaseOnlineDefragSchedule

此參數可指定 24 小時制的時間,用以啟動郵件佇列資料庫的線上磁碟重組。若要指定值,請輸入值作為時間:hh:mm:ss,其中 h = 小時數、m = 分鐘數,而 s = 秒數。預設值為 1:00:00,也就是 01: 00 或上午 1: 00。

QueueDatabaseOnlineDefragTimeToRun

此參數可指定允許執行線上磁碟重組工作的時間。即使磁碟重組工作未在指定的時間內完成,佇列資料庫仍然會保留一致狀態。若要指定值,請輸入時間範圍格式:hh:mm:ss,其中 h = 小時數、m = 分鐘數,而 s = 秒數。預設值為 3:00:00

QueueDatabasePath

此參數可指定佇列資料庫檔案的預設目錄。預設值為 C:\Program Files\Microsoft\Exchange Server\TransportRoles\data\Queue。在您變更佇列資料庫目錄之前,請確定新的目錄存在。也請確定該目錄已套用下列檔案權限:網路服務:完全控制;系統:完全控制;系統管理員:完全控制。

回到頁首

佇列管理

發生郵件流程問題或垃圾郵件湧入時,可以執行作業,修改佇列與位於佇列中之訊息的狀態。您可以對單一物件執行動作,也可以對多個選取的物件執行大量動作。在 Exchange 2010 中,可使用佇列檢視器圖形化使用者介面與命令介面中的命令來擷取訊息與傳遞佇列的相關資訊。擷取此資訊後,您可以選取想要管理的佇列與訊息。

您可以使用佇列檢視器或命令介面中的命令,建立用以識別您要管理之佇列與訊息的篩選準則。篩選準則是根據下列屬性為基礎:

  • 佇列狀態
  • 佇列屬性
  • 訊息狀態
  • 訊息屬性

如需如何篩選佇列的相關資訊,請參閱篩選佇列。如需如何篩選訊息的相關資訊,請參閱篩選佇列中的郵件

佇列管理工作

您可以使用佇列檢視器或命令介面中的命令來檢視佇列與訊息的相關資訊。您也可以使用這些工具來執行下列動作:

  • 暫停佇列   此動作可暫停目前在佇列中之訊息的傳遞。佇列會繼續接受新訊息,但是訊息不會離開佇列。如需相關資訊,請參閱擱置佇列
  • 繼續佇列   此動作會回復暫停佇列動作的效果,讓佇列的訊息可繼續傳遞。如需相關資訊,請參閱繼續佇列
  • 重試佇列   到佇列下一個躍點的連線失敗時,會設定重試計時器。重試計時器可排定後續的連線嘗試。重試佇列動作會覆寫下一個排定的連線嘗試,並立即嘗試連接到下一個躍點。如果無法連線,就會重設下一次重試時間。如需相關資訊,請參閱重試佇列
    Retry-Queue 指令程式也可以與Resubmit 參數一起使用,使佇列中的郵件重新提交至提交佇列,並透過分類處理程序來返回。您可以手動重新提交具有下列狀態的郵件:
    • 處於 [重試] 狀態的信箱傳遞佇列或遠端傳遞佇列。佇列中的郵件必須不是處於「暫停」狀態。
    • 「無法存取」佇列中不是處於「暫停」狀態的郵件。
    • 毒藥郵件佇列中的郵件。
      如需相關資訊,請參閱 重新提交佇列中的郵件
  • 暫停訊息   此動作會暫停訊息的傳遞。您可以使用暫停訊息動作來防止訊息傳遞到特定佇列中的所有收件者,或是所有佇列中的所有收件者。如需相關資訊,請參閱擱置郵件
  • 繼續訊息   此動作會回復暫停訊息動作的效果,讓佇列的訊息可繼續傳遞。您可以使用繼續訊息動作來繼續將訊息傳遞到特定佇列中的所有收件者,或是所有佇列中的所有收件者。您也可以使用此動作,重新提交毒藥郵件佇列中的郵件。如需相關資訊,請參閱繼續郵件
  • 移除訊息   此動作會永久防止訊息的傳遞。您可以使用移除訊息動作來防止訊息傳遞到指定佇列中的任何收件者,或是所有佇列中的所有收件者。您也可以設定移除訊息動作,讓它在移除訊息時傳送未傳遞回報 (NDR) 給寄件者。如需相關資訊,請參閱從佇列移除郵件
  • 匯出訊息   此動作會將訊息複製到您指定的檔案路徑。此動作並不會將訊息從佇列中刪除,但是會將訊息副本儲存到檔案位置。如此可便於系統管理員或組織中的管理人員日後檢查訊息。匯出訊息前,您必須暫停佇列中的訊息,讓進行匯出程序期間不會繼續一般的傳遞。匯出格式可與電子郵件應用程式相容,如 Microsoft Office Outlook。請將訊息儲存為 .eml 格式,以確保作業系統會將檔案與電子郵件應用程式產生關聯。如需相關資訊,請參閱從佇列匯出郵件

佇列篩選案例

篩選會產生不同的佇列檢視。您可以使用佇列內容當作篩選選項。藉由指定篩選準則,您可以快速地尋找佇列並對佇列採取行動。下列案例是教您如何使用佇列篩選來管理郵件流程的範例:

  • 您收到來自 Microsoft System Center Operations Manager 的訊息,指出佇列的長度超過了已建立的閾值。您想要調查是否有整個伺服器郵件流程的問題存在。
    您可以建立篩選來檢視所含郵件個數超過您認為的正常值的所有佇列。如果發現可能有郵件流程問題,您可以選取並暫停篩選結果內的所有佇列,同時繼續調查。
  • 您暫停多個佇列以調查郵件流程問題的原因。您判斷該問題是由不正確的連接器組態所造成,並且做出修正。
    您可以建立篩選來檢視狀態為「已擱置」的所有佇列,然後選取篩選結果內的所有佇列,並繼續進行這些佇列的活動。

篩選佇列時所用的佇列內容

您可以使用佇列內容建立篩選,並尋找符合特定準則的佇列。下表列出可用來篩選的佇列內容以及這些內容的有效值。

佇列屬性

佇列檢視器佇列內容 命令介面佇列屬性 內容類型

傳遞類型

DeliveryType

列舉

這個值是由下一個躍點選項所決定。下一個躍點選項會識別郵件是佇列在何處等候傳遞。若要在篩選內使用傳遞類型內容,您必須使用指派給每個類型的常數值。傳遞類型可以是下列其中一個值:

  • DNSConnectorDelivery   郵件會排入佇列,以等候透過本機伺服器上設定為使用網域名稱系統 (DNS) 作為路由解決方案的 SMTP 連接器,來傳遞給外部收件者。
  • NonSmtpGatewayDelivery   郵件會排入佇列,以等候透過本機伺服器上使用非 SMTP 連接器傳遞給外部使用者。
  • SmartHostConnectorDelivery   郵件會排入佇列,以等候透過本機伺服器上設為定使用智慧型主機作為路由解決方案的 SMTP 連接器,來傳遞給外部收件者。
  • SmtpRelayWithinAdSitetoEdge   郵件會排入佇列,以等候透過 Edge Transport Server (訂閱了本機 Active Directory 站台) 上的 SMTP 連接器傳遞給外部收件者。
  • MapiDelivery   郵件會排入佇列,以等候傳遞給在本機 Active Directory 站台內信箱伺服器上擁有信箱的收件者。
  • SmtpRelayWithinAdSite   郵件會排入佇列,以等候傳遞給位在和本機伺服器相同 Active Directory 站台內的 Hub Transport Server。目的伺服器可以是 SMTP 連接器的來源伺服器、路由群組連接器的來源伺服器,也可以是擴充伺服器。
  • SmtpRelaytoRemoteAdSite   郵件會排入佇列,以等候傳遞給遠端 Active Directory 站台內的伺服器。目的伺服器可以是連接器 (設定來傳輸郵件給外部收件者) 的來源伺服器、擴充伺服器或 Hub Transport Server (會傳遞郵件給遠端 Active Directory 站台內的信箱收件者)。
  • SmtpRelaytoTiRg   郵件會排入佇列,以等候傳遞給 Exchange Server 2003 路由群組。目的伺服器可以是連接器 (設定來傳輸郵件給外部收件者) 的來源伺服器、擴充伺服器或 Exchange 2003 Bridgehead 伺服器 (會傳遞郵件給路由群組內的信箱收件者)。
  • 未定義   郵件會放在提交佇列,並且尚未解析出下一個躍點目的地。
  • 無法存取   郵件會放在無法存取佇列,並且無法建立通往收件者的路由。

識別碼

識別碼

QueueIdentity

這個值指定佇列的識別。請以 Server\destination 的形式輸入佇列識別,其中 destination 是遠端網域、信箱伺服器、持續佇列名稱或可以在佇列資料庫中識別此佇列的整數。

上個錯誤

LastError

字串

此值會指定文字字串,記錄佇列的上個錯誤。

上次重試時間

LastRetryTime

DateTime

這個值指定狀態為「重試」的佇列上次嘗試進行連線的時間。

郵件計數

MessageCount

Ulong

這個值是以整數表示,代表佇列內的項目數。

下一個躍點連接器

NextHopConnector

GUID

這個值是以系統 GUID 表示,而且是用來建立佇列之連接器的 GUID。

下一個躍點網域

NextHopDomain

字串

這個值指定傳遞佇列的下一個目的地。下一個躍點網域可以用下列形式表示:

  • 遠端 SMTP 網域名稱
  • Exchange 伺服器名稱
  • 連接器名稱
  • 路由群組
  • Active Directory 站台名稱
  • 信箱伺服器網域全名 (FQDN)

下一次重試時間

NextRetryTime

DateTime

這個值指定狀態為「重試」的佇列下次嘗試進行連線的時間。

狀態

狀態

列舉

這個值會指定目前的佇列狀態。佇列可以擁有下列其中一種狀態值:

  • 主動
  • 已擱置
  • 就緒
  • 重試

篩選佇列時所用的運算子

當您建立佇列篩選時,必須包含運算子以便比對內容值。下表顯示可以用於篩選運算式中的比較運算子,以及每個運算子的運作方式。

篩選運算式運算子

運算子 命令介面值 功能 命令介面程式碼範例

等於

-eq

此運算子是用來指定結果必須完全符合運算式中所提供的內容值。

顯示擁有「重試」狀態的所有佇列清單:

Get-Queue -Filter {status -eq "retry"}

不等於

-ne

此運算子是用來指定結果必須完全符合運算式中所提供的內容值。

顯示擁有「作用中」狀態的所有佇列清單:

Get-Queue -Filter {status -ne "active"}

大於

-gt

此運算子是與值以整數表示的內容搭配使用。篩選結果只會包含所指定內容的值大於運算式所提供之值的佇列。

顯示目前包含超過 1000 封郵件的佇列清單:

Get-Queue -Filter {messagecount -gt 1000}

大於或等於

-ge

此運算子是與值以整數表示的內容搭配使用。篩選結果只會包含所指定內容的值大於或等於運算式所提供之值的佇列。

顯示目前包含 1000 封以上郵件的佇列清單:

Get-Queue -Filter {messagecount -ge 1000}

小於

-lt

此運算子是與值以整數表示的內容搭配使用。篩選結果只會包含所指定內容的值小於運算式所提供之值的佇列。

顯示目前包含少於 1000 封郵件的佇列清單:

Get-Queue -Filter {messagecount -lt 1000}

小於或等於

-le

此運算子是與值以整數表示的內容搭配使用。篩選結果只會包含所指定內容的值小於或等於運算式所提供之值的佇列。

顯示目前包含 1000 封以下郵件的佇列清單:

Get-Queue -Filter {messagecount -le 1000}

包含

-like

此運算子是與值以字串表示的內容搭配使用。篩選結果只會包含所指定內容的值含有運算式所提供之文字字串的佇列。您可以將 (*) 萬用字元包含在會套用到文字字串欄位 (而非列舉類型欄位) 的 -like 運算式中。

顯示目的地是任何以 Contoso.com 為結尾之 SMTP 網域的傳遞佇列清單:

Get-Queue -Filter {identity -like "*Contoso.com"}

您可以藉由在命令介面中使用 -and 運算子,或在佇列檢視器中新增多個運算式,在佇列篩選中指定多個運算式。佇列必須符合所有的準則才會包含在結果集內。例如,下列命令的結果會顯示目的地是任何以 Contoso.com 為結尾的 SMTP 網域名稱而且目前包含超過 500 封郵件之傳遞佇列的清單。

Get-Queue -Filter {Identity -like "*Contoso.com*" -and MessageCount -gt 500}

郵件篩選案例

佇列中的郵件在篩選後會產生不同的檢視。指定篩選準則後,您就可以迅速地找出郵件並採取動作。當電子郵件傳送給多位收件者時,郵件可能會存放在多個佇列中。若您依據郵件內容進行篩選,即可找出所有佇列中的郵件。下列案例將示範如何使用郵件篩選來管理郵件流程:

  • 在已安裝 Edge Transport server role 的電腦上,有大量待傳遞的佇列郵件位於提交佇列中。其中有許多郵件具有相同的主旨。因此,您懷疑有垃圾郵件傳送到您的組織中。此時您可以建立適當的篩選器,以檢視所有符合主旨準則的郵件。若您判斷某些郵件為垃圾郵件,即可加以全選而直接從傳送佇列中刪除,不需另外傳送 NDR。
  • 有使用者報告指出郵件流程緩慢。您檢查了佇列,並發現有許多具有隨機主旨的郵件似乎都來自同一個網域。您可以建立適當的篩選器,以檢視所有來自該網域的佇列郵件。若您判斷某些郵件為垃圾郵件,即可加以全選而直接從佇列中刪除,不需另外傳送 NDR。

篩選郵件時所使用的郵件內容

您可以使用郵件內容來建立篩選器,以及找出符合指定準則的郵件。下表列出可據以進行篩選的郵件內容及其關聯的值。

訊息屬性

佇列檢視器郵件內容 命令介面訊息屬性 內容類型

接收日期

DateReceived

DateTime

此值指定伺服器收到郵件時的時間戳記,而該伺服器就是擁有郵件所在之佇列的伺服器。

到期時間

ExpirationTime

DateTime

此值指定郵件因無法傳遞而即將到期,並且將從佇列中刪除時的時間戳記。

寄件者地址

FromAddress

SMTP 位址

此值會指定郵件寄件者的 SMTP 位址。

識別碼

識別碼

整數

此值為代表特定郵件的整數。郵件識別碼會在接收郵件並進行處理時,由佇列資料庫進行指派。您可以另外納入伺服器與佇列識別,以識別唯一的郵件執行個體。此值可以下列形式表示:

  • Server\QueueId\MessageId
  • Server\Poison\MessageId
  • MessageId
  • Server\MessageId

網際網路郵件識別碼

InternetMessageId

字串

此值會指定位於郵件標頭之 Message-ID: 郵件標頭欄位的值。此內容值的表示方式是 GUID 後面接著寄件者伺服器的 SMTP 位址,如下列範例所示:

67D754D6103DC4FB3BA6BC7205DACABA61231@exchange.contoso.com

上個錯誤

LastError

字串

此值會指定文字字串,記錄郵件的上個錯誤。

郵件來源名稱

MessageSourceName

字串

此值指定將此郵件提交到佇列之元件名稱的文字字串。

佇列識別碼

Queue

QueueIdentity

此內容值指定郵件所在佇列的識別碼。請以 Server\destination 的形式輸入佇列識別,其中 destination 是遠端網域、信箱伺服器、持續佇列名稱或佇列資料庫識別碼。資料庫識別碼會以整數表示,並且可藉由檢視郵件內容加以判斷。

重試計數

RetryCount

整數

此值會指定已嘗試將郵件傳遞至目的地的次數。

SCL

SCL

整數

垃圾郵件信賴等級 (SCL) 內容值可指定郵件的 SCL。有效 SCL 項目是整數 0 到 9。空白的 SCL 屬性值指出內容篩選器代理程式尚未處理郵件。

大小 (KB)

大小

ByteQuantifiedSize

此值指定郵件的大小。

來源 IP

SourceIP

IP 位址

此值會指定將郵件提交到 Exchange 組織之外部伺服器的 IP 位址。

狀態

狀態

列舉

此值會指定目前的郵件狀態。郵件可具有下列其中一個狀態值:

  • Active   郵件若位於傳遞佇列中,即會傳遞至其目的地。郵件若位於提交佇列中,則會由分類程式進行處理。
  • Suspended   郵件已由系統管理員擱置。
  • PendingRemove   郵件已被系統管理員刪除,但已傳遞。若傳遞因錯誤而結束,導致郵件重新進入佇列中,郵件就會被刪除。否則,會繼續傳遞。
  • PendingSuspend   郵件已由系統管理員擱置,但已傳遞。若傳遞因錯誤而暫停,導致郵件重新進入佇列中,郵件就會被刪除。否則,會繼續傳遞。
  • Ready   郵件已在佇列中準備就緒可進行處理。
  • Retry   上次嘗試對此郵件所在之佇列所建立的連線已失敗。郵件正在等候下一個佇列重試。

主旨

主旨

字串

此值會指定郵件的主旨,並且以文字字串表示。

篩選郵件時所使用的運算子

建立郵件篩選器時,必須加入供內容值比對的運算子。下表顯示可以用於篩選運算式中的比較運算子,以及每個運算子的運作方式。

篩選運算式運算子

運算子 命令介面值 功能 命令介面程式碼範例

等於

-eq

此運算子是用來指定結果必須完全符合運算式中所提供的內容值。

若要顯示所有狀態為 Retry 的郵件清單:

Get-Message -Filter {status -eq "retry"}

不等於

-ne

此運算子是用來指定結果必須完全符合運算式中所提供的內容值。

顯示擁有「作用中」狀態的所有郵件清單:

Get-Message -Filter {status -ne "active"}

大於

-gt

此運算子是與值以整數表示的內容搭配使用。篩選結果只會包含所指定內容的值大於運算式所提供之值的郵件。

若要顯示目前重試計數大於 3 的郵件清單:

Get-Message -Filter {retrycount -gt 3}

大於或等於

-ge

此運算子是與值以整數表示的內容搭配使用。篩選結果只會包含所指定內容的值大於或等於運算式所提供之值的郵件。

若要顯示目前重試計數大於或等於 3 的郵件清單:

Get-Message -Filter {retrycount -ge 3}

小於

-lt

此運算子是與值以整數表示的內容搭配使用。篩選結果只會包含所指定內容的值小於運算式所提供之值的郵件。

若要顯示 SCL 小於 6 的郵件清單:

Get-Message -Filter {SCL -lt 6}

小於或等於

-le

此運算子是與值以整數表示的內容搭配使用。篩選結果只會包含所指定內容的值小於或等於運算式所提供之值的郵件。

若要顯示 SCL 小於或等於 6 的郵件清單:

Get-Message -Filter {SCL -le 6}

包含

-like

此運算子是與值以字串表示的內容搭配使用。篩選結果只會包含所指定內容的值含有運算式所提供之文字字串的郵件。您可以在套用於文字字串欄位的 -like 陳述式中使用 (*) 萬用字元,但若是具有列舉類型的欄位,則不可使用此字元。

若要顯示主旨中含有 "payday loan" 等文字的郵件清單:

Get-Messages -Filter {subject -like "*payday loan*"}

您可以使用命令介面中的 -and 比較運算子,或是在佇列檢視器中新增多個運算式,以指定用來評估多個運算式的篩選器。郵件必須符合所有篩選條件,才會納入結果集內。舉例來說,下列命令的結果,將顯示寄件者電子郵件地址的網域名稱是以 Contoso.com 結尾、且 SCL 大於 5 的郵件清單。

Get-Message -Filter {FromAddress -like "*Contoso.com*" -and SCL -gt 5}

回到頁首

郵件重試、重新提交及到期間隔

無法順利傳遞的郵件受限於各種重試、重新提交及截止期限,視郵件的來源和目的地而定。重試是指重試連接至目的地網域、智慧主機或 Mailbox server。重新提交是指將郵件送回提交佇列讓分類程式進行處理的動作。如果經過一段指定的時間,用盡所有傳遞方法仍然無法傳遞郵件,就稱郵件為已經「逾時」或到期。郵件過期之後,寄件者會接獲傳遞失敗的通知。接著就會從佇列中刪除郵件。

無論是重試、重新提交或過期,在自動處理郵件之前,您都可以先手動介入。

郵件重試的組態選項

當傳輸伺服器無法連接至下一個躍點時,佇列就會處於 [重試] 狀態。系統會持續嘗試連線,直到佇列過期或連線建立為止。

自動郵件重試的組態選項

下表說明可用的郵件重試間隔組態選項。

可用的郵件重試間隔組態選項

參數名稱 預設值 設定位置 描述

QueueGlitchRetryCount

4

EdgeTransport.exe.config

此參數指定當傳輸伺服器無法連接至目的伺服器時,立即重試連線的次數。這種連線問題通常是由短暫的網路中斷所造成。除非網路不穩定,造成連線經常意外中斷,否則您通常不需要修改此參數。

QueueGlitchRetryInterval

1 分鐘

EdgeTransport.exe.config

此參數控制 QueueGlitchRetryCount 參數所指定的每個連線嘗試之間的連線間隔。除非網路不穩定,造成連線經常意外中斷,否則您通常不需要修改此參數。

TransientFailureRetryCount

6

EMC 中的 Set-TransportServer 指令程式或傳輸伺服器內容

此參數指定在 QueueGlitchRetryCountQueueGlitchRetryInterval 參數所控制的連線嘗試失敗之後,重試連線的次數。如果重試 QueueGlitchRetryCountQueueGlitchRetryInterval 參數所指定的次數後還是有連線問題,可能是因為伺服器已重新啟動或快取 DNS 查閱失敗。

TransientFailureRetryInterval

  • Hub Transport server:5 分鐘
  • Edge Transport server:10 分鐘

EMC 中的 Set-TransportServer 指令程式或傳輸伺服器內容

此參數控制 TransientFailureRetryCount 參數所指定的每個連線嘗試之間的連線間隔。

OutboundConnectionFailureRetryInterval

  • Hub Transport server:10 分鐘
  • Edge Transport server:30 分鐘

EMC 中的 Set-TransportServer 指令程式或傳輸伺服器內容

此參數指定當先前嘗試的輸出連線失敗時,重試連線的間隔。先前失敗的連線嘗試則是由 TransientFailureRetryCountTransientFailureRetryInterval 參數控制。

MessageRetryInterval

1 分鐘

Set-TransportServer 指令程式

此參數指定當個別郵件的狀態為「重試」時,重試傳送該郵件的間隔。除非是有 Microsoft 客戶服務和支援的建議,否則建議您不要修改預設值。

MailboxDeliveryQueueRetryInterval

5 分鐘

EdgeTransport.exe.config

此參數控制在 Hub Transport server 之間重試信箱傳遞佇列的間隔。

您可以在 EdgeTransport.exe.config 檔案的 <appSettings> 區段中,新增組態選項或是修改現有的組態選項。有許多組態選項與郵件重試、重新提交及到期間隔完全無關。與這些間隔無關的組態選項已超出本主題的範圍。

如需 EdgeTransport.exe.config 檔案的詳細資訊,請參閱瞭解 EdgeTransport.exe.config 檔案

如需相關資訊,請參閱設定郵件重試、重新提交及到期間隔

手動郵件重試的組態選項

當信箱傳遞佇列或遠端傳遞佇列處於「重試」狀態時,您可以在 EMC 或在命令介面中使用 Retry-Queue 指令程式,手動強制立即嘗試連線。手動重試會覆寫下一個排定的重試時間。如果連線未成功,就會重設重試間隔計時器。傳遞佇列必須處於 [重試] 狀態,此動作才能生效。

如需相關資訊,請參閱重試佇列

延遲 DSN 郵件的組態選項

每次郵件傳遞失敗之後,Edge Transport server 或 Hub Transport server 就會產生延遲的傳遞狀態通知 (DSN) 郵件並放在佇列中,以待將無法傳遞的郵件遞交回寄件者。此延遲的 DSN 郵件僅會在指定的延遲通知逾時間隔後,且失敗的郵件在這段時間仍然無法傳遞,才會傳送。延遲通知逾時間隔預設為 4 小時。此項延遲可避免因暫時性的郵件傳輸失敗,而傳送不必要的延遲 DSN 郵件。無論是 Exchange 組織內或組織外產生的郵件,都可以選擇性地啟用或停用傳送延遲 DSN 通知郵件。

下表說明延遲 DSN 通知郵件可用的組態選項。

延遲 DSN 通知郵件可用的組態選項

參數名稱 預設值 位置 描述

DelayNotificationTimeOut

4 小時

Set-TransportServer

此參數指定伺服器要等待多久之後才將延遲 DSN 郵件傳送給郵件寄件者。該參數的值,應該永遠大於 TransientFailureRetryCount 參數的值乘以 TransientFailureRetryInterval 參數的值。

ExternalDelayDSNEnabled

$true

Set-TransportConfig

此參數指定延遲 DSN 郵件是否可以傳送給 Exchange 組織外的郵件寄件者。

InternalDelayDSNEnabled

$true

Set-TransportConfig

此參數指定延遲 DSN 郵件是否可以傳送給 Exchange 組織內的郵件寄件者。

如需相關資訊,請參閱設定郵件重試、重新提交及到期間隔

郵件重新提交的組態選項

郵件重新提交會將未傳遞郵件傳回提交佇列讓分類程式重新處理。

自動郵件重新提交

如果傳遞佇列處於 [重試] 狀態,而且無法在指定的時間內順利傳遞任何郵件,則會自動重新提交無法傳遞的郵件。該時間是由 EdgeTransport.exe.config 應用程式組態檔中的 MaxIdTimeBeforeResubmit 參數所控制。MaxIdTimeBeforeResubmit 參數的值預設是 12 小時。可自動重新提交的郵件僅限於信箱傳遞佇列或遠端傳遞佇列中的郵件。

如需相關資訊,請參閱設定郵件重試、重新提交及到期間隔

手動重新提交郵件

您可以手動重新提交 Hub Transport server 或 Edge Transport server 上處於下列狀態的郵件:

  • 處於「重試」狀態的信箱傳遞佇列或遠端傳遞佇列。佇列中的郵件必須不是處於「暫停」狀態。
  • 在「無法達到的」佇列中且不處於 [已擱置] 狀態的郵件。
  • 有害訊息佇列中的郵件。

如需有害訊息佇列和「無法達到的」佇列的相關資訊,請參閱本主題稍早的<關於有害訊息佇列及無法達到的佇列>。

如果要立即手動重新提交信箱傳遞佇列、「遠端傳遞」佇列或「無法達到的」佇列中的郵件,而不要再等候 MaxIdleTimeBeforeResubmit 參數所指定的時間經過,您必須使用 Retry-Queue 指令程式和 Resubmit 參數。若要手動重新提交有害訊息佇列中的郵件,您可以使用佇列檢視器或 Resume-Message 指令程式來繼續傳送郵件。

如需相關資訊,請參閱下列主題:

手動重新提交郵件的另一種作法是擱置郵件、將郵件匯出成 .eml 副檔名的文字檔,然後將 .eml 檔案複製到任何 Hub Transport server 或 Edge Transport server 上的重新顯示目錄。這種重新提交方法適用於信箱傳遞佇列、遠端傳遞佇列或「無法達到的」佇列中的郵件。有害訊息佇列中的郵件已處於 [已擱置] 狀態。「提交」佇列中的郵件則無法擱置或匯出。

注意

從佇列中匯出郵件時,不會從佇列中移除郵件。在匯出郵件並順利使用重新顯示目錄來重新提交郵件之後,應該移除擱置的郵件,以避免重複傳遞郵件。

如需詳細資訊,請參閱從佇列匯出郵件重新提交佇列中的郵件

讓郵件到期的組態選項

「郵件到期逾時間隔」指定 Edge Transport Server 或 Hub Transport Server 嘗試傳遞失敗郵件的時間長度上限。如果無法在到期逾時間隔之前順利傳遞郵件,則包含原始郵件或郵件標題的 NDR 會傳遞給寄件者。

自動讓郵件到期

郵件到期逾時間隔由 Set-TransportServer 指令程式中的 MessageExpirationTimeOut 參數,或由 EMC 中的傳輸伺服器內容來控制。MessageExpirationTimeOut 參數的值預設是 2 小時。

如需相關資訊,請參閱下列主題:

手動讓郵件到期

雖然無法手動強制讓郵件到期,但您可以手動從任何佇列中移除含或不含 NDR 的郵件,但「提交」佇列除外。

如需相關資訊,請參閱從佇列移除郵件

回到頁首