共用方式為


從佇列匯出郵件

 

適用版本: Exchange Server 2010 SP2, Exchange Server 2010 SP3

上次修改主題的時間: 2012-10-30

您可以使用命令介面在將 Microsoft Exchange Server 2010 集線傳輸伺服器角色或邊際傳輸伺服器角色安裝到指定檔案路徑的電腦上,從佇列匯出郵件。您無法使用佇列檢視器來執行此工作。不過,在執行此工作前,您可以使用佇列檢視器來尋找、識別及擱置郵件。

當您從佇列將郵件匯出到檔案時,並不會從佇列中移除郵件。而會在指定的位置中以純文字檔形式建立郵件的複本。您可以在文字編輯器之類的應用程式或是電子郵件用戶端應用程式中檢視結果檔案,或是使用 Exchange 組織內外部任何其他集線傳輸伺服器或邊際傳輸伺服器上的重新顯示目錄來重新提交郵件檔案。

要尋找與管理傳輸佇列相關的其他管理工作嗎?請參閱管理傳輸佇列

必要條件

匯出佇列中的郵件之前,必須先執行下列步驟:

  1. 確認目標目錄位置的下列資訊:

    • 必須有目標目錄,您才能匯出郵件。系統不會為您建立目錄。若未指定絕對路徑,會使用目前的命令介面工作目錄。

    • 該路徑可以在 Exchange 2010 電腦本機上,或是遠端伺服器共用資料夾的通用命名慣例 (UNC) 路徑。

    • 您的帳戶必須要有該目標目錄的寫入權限。

  2. 尋找並識別要匯出的郵件。如需如何檢視郵件的詳細資訊,請參閱檢視佇列的郵件內容

  3. 擱置要匯出的郵件,以免郵件在匯出程序期間進行傳遞。郵件必須處於擱置狀態,匯出程序才能成功。您可以從遠端傳遞佇列、信箱傳遞佇列、無法存取的佇列或有害訊息佇列中匯出郵件。有害郵件佇列中的郵件已處於擱置狀態。您無法擱置或匯出位於提交佇列中的郵件。如需如何擱置郵件的詳細資訊,請參閱擱置郵件

  4. 指定檔名時,請確定有加上 .eml 副檔名,使電子郵件用戶端應用程式可以輕易開啟該檔案,或讓重新顯示目錄正確處理該檔案。

使用命令介面從特定的佇列匯出特定的郵件

您必須已獲指派權限,才能執行此程序。若要查看您需要的權限,請參閱傳輸權限主題中的「佇列」項目。

注意事項附註:
您無法使用 EMC 來執行此工作。

此範例會將 InternalMessageID 為 1234,位在伺服器 Exchange01 上之網域 Contoso.com 遠端傳遞佇列中的郵件副本,匯出至路徑 C:\Contoso Export\export.eml。

Export-Message -Identity ExchSrv1\contoso.com\1234 | AssembleMessage -Path "c:\exportfolder\filename.eml"

如需詳細的語法及參數資訊,請參閱 Export-Message

使用命令介面從特定的佇列匯出所有的郵件

您必須已獲指派權限,才能執行此程序。若要查看您需要的權限,請參閱傳輸權限主題中的「佇列」項目。

注意事項附註:
您無法使用 EMC 來執行此工作。

此範例會將位於伺服器 Exchange01 上之 Contoso.com 遠端傳遞佇列中的所有郵件副本,匯出至本機電腦上的 C:\Contoso Export 目錄,並使用每個郵件的網際網路郵件識別碼作為檔案名稱。命令會進行下面的動作以完成此工作:

  • 使用 Get-Message Cmdlet 在特定佇列中擷取所有郵件。

  • 將結果以管線傳送至 ForEach-Object Cmdlet,該 Cmdlet 會為每個郵件執行下列動作:

    • 使用暫時變數 $Temp 準備包含完整路徑的檔案名稱,此檔案名稱由網際網路郵件識別碼組成,副檔名為 .eml。角括弧 (> 和 <) 為無效的檔案名稱,如果 [網際網路郵件識別碼] 欄位含有角括弧,則需移除。可使用暫時變數的 Replace 方法完成。

    • 使用備妥的檔案名稱匯出郵件。

Get-Message -Queue "Exchange01\Contoso.com" | ForEach-Object {$Temp="C:\Contoso Export\"+$_.InternetMessageID+".eml";$Temp=$Temp.Replace("<","_");$Temp=$Temp.Replace(">","_");Export-Message $_.Identity | AssembleMessage -Path $Temp}

如需詳細的語法及參數資訊,請參閱 Get-MessageExport-Message 主題。

使用命令介面從伺服器上的所有佇列匯出特定的郵件

您必須已獲指派權限,才能執行此程序。若要查看您需要的權限,請參閱傳輸權限主題中的「佇列」項目。

注意事項附註:
您無法使用 EMC 來執行此工作。

此範例會將伺服器 Exchange01 上的所有佇列中,寄件者來自 Contoso.com 網域的所有郵件副本,匯出至本機電腦上的 C:\Contoso Export 目錄,並使用每個郵件的網際網路郵件識別碼作為檔案名稱。命令會進行下面的動作以完成此工作:

  • 使用 Get-Message 搭配篩選器來擷取符合準則的所有郵件。

  • 將結果以管線傳送至 ForEach-Object Cmdlet,該 Cmdlet 會為每個郵件執行下列動作:

    • 使用暫時變數 $Temp 準備包含完整路徑的檔案名稱,此檔案名稱由網際網路郵件識別碼組成,副檔名為 .eml。角括弧 (> 和 <) 為無效的檔案名稱,如果 [網際網路郵件識別碼] 欄位含有角括弧,則需移除。可使用暫時變數的 Replace 方法完成。

    • 使用備妥的檔案名稱匯出郵件。

Get-Message -Filter {FromAddress -like "@Contoso.com"} -Server "Exchange01" | ForEach-Object {$Temp="C:\Contoso Export\"+$_.InternetMessageID+".eml";$Temp=$Temp.Replace("<","_");$Temp=$Temp.Replace(">","_");Export-Message $_.Identity | AssembleMessage -Path $Temp}

如需詳細的語法及參數資訊,請參閱 Get-MessageExport-Message 主題。

 © 2010 Microsoft Corporation. 著作權所有,並保留一切權利。