Olá a todos!
Nesse post vou explicar como rastrear e-mails enviados e recebidos no Exchange Online utilizando o Powershell.
Para isso vamos utilizar o cmdlet Get-MessageTrace.
Alguns pontos a serem observados:
- O Get-MessageTrace irá retornar dados dos últimos 10 dias
- Se utilizarmos os parâmetros para retornar dados acima de 10 dias, será retornado um erro
- Dados acima de 10 dias, devemos utilizar o Start-HistoricalSearch e o Get-HistoricalSearch (assunto para outro post)
- Se não passarmos nenhum parâmetro, dados das ultimas 48 horas serão retornados
Vamos aos exemplos:
Obtendo todos os e-mails enviados e recebidos em um determinado período:
PS C:\> Get-MessageTrace -StartDate 05/01/2022 -EndDate 05/03/2022
Especificando um Sender:
Get-MessageTrace -StartDate 05/01/2022 -EndDate 05/03/2022 -SenderAddress breno@uptocloud.com
Especificando um Sender e um Recipient:
PS C:\> Get-MessageTrace -StartDate 05/01/2022 -EndDate 05/03/2022 -SenderAddress breno@uptocloud.com -RecipientAddress test@abcde.com.br
Para filtrar pelo status da entrega, adicione o parâmetro -Status <opções>
Opções: Failed, Pending, Delivered, Expanded, Quarantined, FilteredAsSpam
Filtrando por palavras específicas:
No exemplo abaixo filtramos:
- por um determinado período
- o endereço do sender contém a palavra 'dba'
- o subject contém a palavra 'Alerta'
PS C:\> Get-MessageTrace -StartDate 05/01/2022 -EndDate 05/03/2022 | Where {$_.SenderAddress -like '*dba*' -and $_.Subject -like '*Alerta*'}
Exportando o resultado
PS C:\> Get-MessageTrace -StartDate 05/01/2022 -EndDate 05/03/2022 | Where {$_.SenderAddress -like '*dba*' -and $_.Subject -like '*Alerta*'} | Export-Csv -NoTypeInformation -Path c:\temp\file.csv
Por hoje é tudo.
Breno Padovan