В облачном Exchange Online, как и в on-prem Exchange, есть встроенные мощные возможности для отслеживания полученных и отправленных пользователями писем. Трассировка писем позволяет узнать полную информацию о любом email сообщении, которое прошло через вашу организацию Exchange. С помощью трассировки вы сможете ответить на вопрос, получала ли ваша организация конкретное письмо, было ли оно доставлено в почтовый ящик пользователя или удаленную почтовую систему, или оно отфильтровано антиспам фильтрами или транспортными правилами. В этой статье мы рассмотрим основные способы трассировки (отслеживания) полученных и отправленных писем в Exchange Online (Microsoft 365) с помощь Exchange Admin Center и PowerShell.
Отслеживание сообщения в Exchange Admin Center
Вы можете выполнять трассировку сообщений прямо из веб интерфейса портала Exchange Admin Center. Аутентифицируйтесь в новом портал EAC ( https://admin.exchange.microsoft.com ) и перейдите в раздел Mail Flow -> Message Trace .
В открывшемся окне доступны несколько предустановленных запросов для трассировки сообщения. Чтобы выполнить новый поиск, нажмите на Start a trace .
Заполните поля запроса. Можно указать:
- Отправителя и/или получателя. В данном случае меня интересует информация обо всех письмах, отправленных в нашу организацию с внешнего домена gmail.com (
*@gmail.com
); - Промежуток времени для поиска. Отчет за последние 10 дней будет сформирован интерактивно. Если нужен поиск по логам старше 10 дней, такой отчет будет отправлен на указанный email;
- В разделе Detailed Search Options можно указать дополнительные критерии поиска (Message ID, IP адрес, Delivery Status).
Для начала поиска нажмите кнопку Search .
Перед вами должна появится информация о всех письмах, соответствующих вашим критериям.
Можно щелкнуть по любому письму и посмотреть более детальную информацию. В данном примере письмо успешно доставлено в ящик получателя (Status: The message was delivered to the recipient’s Inbox folder).
Последние 10 запросов трассировки сохраняются в консоли автоматически. Вы можете сохранить запросы, которые вы используете часто.
Трассировка сообщений в Exchange Online с помощью PowerShell
В on-prem Exchange для отслеживания отправленных/полученных писем в транспортных логах MessageTracking используется командлет Get-MessageTrackingLog . В облачном Exchange Online для трассировки сообщений используются командлеты Get-MessageTrace
и Get-MessageTraceDetail
.
Подключитесь к своему тенанту Microsoft 365 с помощью PowerShell модуля для Exchange Online :
Connect-ExchangeOnline -UserPrincipalName [email protected] -ShowProgress $true
Если запустить командлет Get-MessageTrace без параметров, он вернет информацию обо всех письмах в вашем тенанте Exchange за последние 48 часов. Можно указать интервал дат для поиска с помощью параметров -StartDate и -EndDate . Выведем информацию обо всех письмах, которые были отправлены определенному пользователю (RecipientAddress) за последние 5 дней:
Get-MessageTrace -RecipientAddress [email protected] -StartDate 7/18/21 -EndDate 7/22/21| select Received,SenderAddress,RecipientAddress,Subject,Size,Status|ft
В одном запросе трассировки можно одновременно искать по полям RecipientAddress и SenderAddress.
Можно воспользоваться параметром -Status для поиска по статусу доставки письма (Failed, Pending, Delivered, Expanded, Quarantined, FilteredAsSpam).
Для вывода подробной информации по найденным событиям используйте пайп с командлетом Get-MessageTraceDetail:
Get-MessageTrace -SenderAddress [email protected] -StartDate 7/20/21 -EndDate 7/22/21|Get-MessageTraceDetail|fl
Следующие команды позволят вам получить информацию о статусе доставки письма, которое было отправлено нескольким адресатам.
Сначала нужно получить MessageId нужного вам письма для любого получателя:
Get-MessageTrace -RecipientAddress [email protected] |fl
Затем скопируйте идентификатор письма и используйте в качестве аргумента параметра MessageId:
Get-MessageTrace -MessageId '<VI1P193MB05422485248CFE48357D13EF97E39@VI1P193MB0542.EURP193.PROD.OUTLOOK.COM>' | select Received, RecipientAddress, Subject, Status
Как вы видите, перед вами появилась сводная информацию о статусе доставки письма в ящики всех получателей.
Результаты команды Get-MessageTrace можно сохранить в CSV файл для дальнейшего анализа в Excel:
Get-MessageTrace -SenderAddress [email protected] |Export-Csv email_track_log.csv
В отличии от on-prem командлета Get-MessageTrackingLog, который ищет по всем доступным логам, Get-MessageTrace позволяет выполнить поиск только по сообщениям за последние 10 дней. Если вам нужно получить информацию о письмах, отправленныхдоставленных более 10 дней назад, нужно выполнить исторические запросы с помощью командлета Start-HistoricalSearch
.
При использовании командлета Start-HistoricalSearch в параметре NotifyAddress нужно указать email адрес, на который нужно отравить отчет:
Start-HistoricalSearch -ReportTitle "Trace2021-21-07" -ReportType MessageTrace -SenderAddress [email protected] -StartDate 06/11/2021 -EndDate 07/22/2021 -NotifyAddress [email protected]
Статус по историческим запросам трассировки можно получить с помощью команды:
Get-HistoricalSearch
Invalid StartDate value. The StartDate can't be greater than 90 days from today.