Для того, чтобы отслеживать письма в 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 |
Интересная информация в этом отчете помечена жирным шрифтом: доставлено ли письмо и когда, с какого сервера пришло письмо, через какой сервер прошло письмо.
