Для того, чтобы отслеживать письма в Exchange 2010 можно использовать Power Shell. Для этого на почтовом сервере существуют специальный командлет Search-MessageTrackingReport. Для того, чтобы использовать этот командлет с компьютера администратора, нужно открыть сессию к рабочему пространству Exchange 2010 с помощью команды New-PSSession.
Командлет Search-MessageTrackingReport позволяет принимать много параметров, но наиболее важные из них это:
- Identity - имя почтового ящика;
- Sender - адрес отправителя;
- BypassDelegateChecking - разрешение администратору обрабатывать чужой почтовый ящик.
Также можно использовать дополнительные параметры фильтрации поиска сообщений:
- Recipients - адрес получателя (можно использовать как замену параметра Sender);
- Subject - тема сообщения;
- ResultSize - количество писем для вывода в отчет.
Ниже представлен скрипт, который я обычно использую для отслеживания писем при расследовании проблем с их доставкой.
# Переменные скрипта $MailboxServer = "SERVERNAME.domain.com" $MailboxID = "USERACCOUNT" $SenderEmail = "EMAIL" # Открытие сессии к почтовому серверу $ConnectionLink = 'http://' + $MailboxServer + '/PowerShell/' $Session = New-PSSession -ConfigurationName Microsoft.Exchange ` -ConnectionUri $ConnectionLink -Authentication Kerberos Import-PSSession $Session # Поиск писем в указанном почтовом ящике от указанного отправителя $msg = Search-MessageTrackingReport -Identity $MailboxID -Sender $SenderEmail -BypassDelegateChecking # Формирование отчета в CSV файл If ($msg -is [system.array]) { $msg | %{ Get-MessageTrackingReport -Identity $_.MessageTrackingReportId -BypassDelegateChecking } | ` Select SubmittedDateTime, FromAddress, RecipientAddresses, Subject, RecipientTrackingEvents, ` MessageTrackingReportId | ` Export-Csv ((Get-Childitem env:USERPROFILE).Value + "\Desktop\PSOutput.csv") ` -Delimiter "`t" -Encoding UTF8 } Else { $nothing | Out-File ((Get-Childitem env:USERPROFILE).Value + "\Desktop\PSOutput.csv") -Encoding UTF8 } # Закрытие сессии к почтовому серверуExit-PSSession
В отчете можно увидеть следующую информацию
SubmittedDateTime | 04.07.2013 13:25:08 |
FromAddress | hismail@domain.com |
RecipientAddresses | mymail@domain.com |
Subject | Very important e-mail |
RecipientTrackingEvents | mymail@domain.com,Delivered,,2013-07-04T13:25:09.0390000Z |
MessageTrackingReportId | Message-Id=<xxxx@SENDERMBXSERVER>, Server=SENDERHUBSERVER, Internal-Id=xxx, Recipient=xxx, Domain=domain.com |
Интересная информация в этом отчете помечена жирным шрифтом: доставлено ли письмо и когда, с какого сервера пришло письмо, через какой сервер прошло письмо.