Экспорт сообщений из очередей в Exchange Server

На серверах почтовых ящиков и пограничных транспортных серверах в Exchange Server можно экспортировать сообщения в очереди в файлы. Экспортированные сообщения не удаляются из очереди. Копии сообщений создаются в указанном расположении в виде файлов обычного текста. Файлы сообщений можно просмотреть в Блокноте или Outlook, а также повторно отправить файлы сообщений с помощью каталога Воспроизведения на любом другом сервере почтовых ящиков или пограничном транспортном сервере в организации Exchange или за ее пределами.

Что нужно знать перед началом работы

  • Предполагаемое время для завершения каждой процедуры: 5 минут

  • Для выполнения этой процедуры (процедур) необходимы соответствующие разрешения. Сведения о необходимых разрешениях см. в разделе "Очереди" в разделе Разрешения потока обработки почты .

  • Чтобы экспортировать сообщения из очереди доставки, очереди отправки или очереди Недоступно, сообщения должны находиться в состоянии Приостановлено. Для активных и работоспособных очередей сначала нужно приостановить очередь, чтобы затем можно было приостановить сообщения. Сообщения в очереди сообщений о сбое уже находятся в состоянии приостановки. Дополнительные сведения см. в разделах Приостановка очередей и Приостановка сообщений в очередях.

  • Экспортировать сообщения с помощью средства просмотра очередей на панели инструментов Exchange невозможно. Однако средство просмотра очередей можно использовать для поиска, идентификации и приостановки сообщений перед их экспортом с помощью командной консоли Exchange. Дополнительные сведения о средстве просмотра очереди см. в статье Queue Viewer. Сведения о том, как открыть командную консоль Exchange в локальной организации Exchange, см. в статье Open the Exchange Management Shell.

  • При экспорте сообщений из очереди они не удаляются. При повторной отправке экспортированных сообщений с помощью каталога Воспроизведения следует удалить сообщения из очереди, чтобы избежать дублирования доставки сообщений. Дополнительные сведения см. в разделе Удаление сообщений из очередей.

  • Проверьте следующие сведения о целевом расположении экспортированных файлов сообщений:

    • Целевая папка должна существовать перед экспортом сообщений и не будет создана для вас. Если не указать полный путь, файлы записываются в текущий рабочий каталог командной консоли Exchange.
    • Путь может быть локальным для сервера Exchange Server или UNC-путем к общей папке на удаленном сервере (\server\share).
    • Ваша учетная запись должна иметь разрешение на запись в целевой папке.
  • Мы используем значение свойства InternetMessageID сообщения для экспортированных имен файлов сообщений, чтобы обеспечить уникальность. Процедуры включают шаги по удалению угловых скобок (> и <), так как они не разрешены в именах файлов. Кроме того, мы используем расширение EML-файла, чтобы можно было легко открыть файлы в Outlook или повторно отправить их с помощью каталога Воспроизведения.

  • Дополнительные сведения об удостоверениях и фильтрах для очередей и сообщений в очередях см. в следующих разделах:

  • Сочетания клавиш для процедур, описанных в этой статье, приведены в статье Сочетания клавиш в Центре администрирования Exchange.

Совет

Возникли проблемы? Обратитесь за помощью к участникам форумов Exchange. Посетите форумы по адресу: Exchange Server, Exchange Online или Exchange Online Protection.

Экспорт определенного сообщения из очереди с помощью командной консоли Exchange

Чтобы экспортировать определенное сообщение из очереди, используйте следующий синтаксис:

Export-Message -Identity <MessageIdentity> | AssembleMessage -Path <FilePath>\<FileName>.eml

В этом примере выполняются следующие действия на сервере с именем Mailbox01:

  1. Приостанавливает очередь доставки contoso.com.

  2. Приостанавливает сообщение в очереди со значением InternalMessageID 1234.

  3. Экспортирует копию сообщения в файл D:\contoso Export\export.eml.

Suspend-Queue Mailbox01\contoso.com
Suspend-Message -Identity Mailbox01\contoso.com\1234
Export-Message -Identity Mailbox01\contoso.com\1234 | AssembleMessage -Path "D:\Contoso Export\export.eml"

Экспорт всех сообщений из очереди с помощью командной консоли Exchange

Чтобы экспортировать все сообщения из очереди и использовать значение InternetMessageID каждого сообщения в качестве имени файла, используйте следующий синтаксис:

Get-Message -Queue <QueueIdentity> -ResultSize Unlimited | ForEach-Object {$Temp=<Path>+$_.InternetMessageID+".eml"; $Temp=$Temp.Replace("<","_"); $Temp=$Temp.Replace(">","_"); Export-Message $_.Identity | AssembleMessage -Path $Temp}

В этом примере выполняются следующие действия на сервере с именем Mailbox01:

  1. Приостанавливает очередь доставки contoso.com.
  2. Приостанавливает все сообщения в очереди.
  3. Экспортирует копии сообщений в локальную папку D:\Contoso Export.
Suspend-Queue Mailbox01\contoso.com
Get-Queue Mailbox01\contoso.com | Get-Message -ResultSize Unlimited | Suspend-Message
Get-Message -Queue Mailbox01\Contoso.com -ResultSize Unlimited | ForEach-Object {$Temp="D:\Contoso Export\"+$_.InternetMessageID+".eml"; $Temp=$Temp.Replace("<","_"); $Temp=$Temp.Replace(">","_"); Export-Message $_.Identity | AssembleMessage -Path $Temp}

Экспорт определенных сообщений из всех очередей на сервере с помощью командной консоли Exchange

Чтобы экспортировать определенные сообщения из всех очередей на сервере и использовать значение InternetMessageID каждого сообщения в качестве имени файла, используйте следующий синтаксис:

Get-Message -Filter "<MessageFilter>" [-Server <ServerIdentity>] -ResultSize Unlimited | ForEach-Object {$Temp=<Path>+$_.InternetMessageID+".eml"; $Temp=$Temp.Replace("<","_"); $Temp=$Temp.Replace(">","_"); Export-Message $_.Identity | AssembleMessage -Path $Temp}

В этом примере выполняются следующие действия на сервере с именем Mailbox01:

  1. Приостанавливает все очереди на сервере.
  2. Приостанавливает все сообщения во всех очередях на сервере от отправителей в домене fabrikam.com.
  3. Экспортирует копии сообщений в локальную папку С именем D:\Fabrikam Export.
Suspend-Queue -Server Mailbox01
Suspend-Message -Filter "FromAddress -like '*@fabrikam.com'" -Server Mailbox01
Get-Message -Filter "FromAddress -like '*@fabrikam.com'" -Server Mailbox01 -ResultSize Unlimited | ForEach-Object {$Temp="D:\Fabrikam Export\"+$_.InternetMessageID+".eml"; $Temp=$Temp.Replace("<","_"); $Temp=$Temp.Replace(">","_"); Export-Message $_.Identity | AssembleMessage -Path $Temp}

Экспорт всех сообщений из всех очередей на сервере с помощью командной консоли Exchange

Чтобы экспортировать все сообщения из всех очередей на сервере и использовать значение InternetMessageID каждого сообщения в качестве имени файла, используйте следующий синтаксис:

Get-Message [-Server <ServerIdentity>] -ResultSize Unlimited | ForEach-Object {$Temp=<Path>+$_.InternetMessageID+".eml"; $Temp=$Temp.Replace("<","_"); $Temp=$Temp.Replace(">","_"); Export-Message $_.Identity | AssembleMessage -Path $Temp}

В этом примере выполняются следующие действия на сервере с именем Mailbox01:

  1. Приостанавливает все очереди на сервере.
  2. Приостанавливает все сообщения во всех очередях на сервере.
  3. Экспортирует копии сообщений в локальную папку С именем D:\Mailbox01 Export.
Suspend-Queue -Server Mailbox01
Get-Queue -Server Mailbox01 | Get-Message -ResultSize Unlimited | Suspend-Message
Get-Message -Server Mailbox01 -ResultSize Unlimited | ForEach-Object {$Temp="D:\Mailbox01 Export\"+$_.InternetMessageID+".eml"; $Temp=$Temp.Replace("<","_"); $Temp=$Temp.Replace(">","_"); Export-Message $_.Identity | AssembleMessage -Path $Temp}