Como monitorar mensagens rejeitadas do Office 365 via Script

É crucial procurar mensagens devolvidas originadas do Office 365. Principalmente quando você está adicionando um domínio ao Office 365, que estava no G-Suite ou em qualquer outro sistema.

Leia mais:

Configurando Microsoft Advanced Threat Analytics (ATA)
Intune: Removendo Administrador Local com String
Habilitar autenticação moderna para Outlook no Exchange Online
Adicionar / remover permissões de calendário no Office 365 / Exchange via PowerShell
O que é DKIM (Domain Keys Identified Mail)

Há grandes chances de que alguns erros ocorram e que retornos sejam gerados.

Cenário:

  • Adicionado o domínio contoso.com ao Office 365.
  • O registro MX do domínio não está apontando para contoso-com.mail.protection.outlook.com
  • O domínio padrão do locatário é contoso.onmicrosoft.com
  • Por acaso, esquece-se de permitir que o grupo de distribuição [email protected] receba e-mails da Internet.

Onde procurar falhas de entrega?

  • Rastreamento de mensagens
Get-MessageTrace -SenderAddress [email protected]
  • Tenha um script para procurar e-mails da última hora de [email protected] e, em seguida, execute uma consulta reversa e uma pesquisa rápida no mesmo período.
  • O script abaixo irá ajudar a facilitar esta busca:
# First connect to Exchange Online and then run this script
$StartDDBounce = (get-date).addhours(-6)
$EndDDBounce = get-date
 
# Find All messages sent by postmaster in last 6 hours containing Undeliverable in Subject
# FYI Get-MessageTrace can return message data for the last 10 days. Max 1000000 result can be returned
 
$Bounce = Get-MessageTrace -SenderAddress [email protected] -StartDate $StartDDBounce -EndDate $EndDDBounce |
where {$_.Subject -like "Undeliverable*"}| 
select Received, Subject
 
$result = @()
foreach ($EachBounce in $Bounce)
{
[datetime]$EndDT = $EachBounce.Received
[datetime]$StartDT = ($EachBounce.Received).addminutes(-10)
$OriginalMsg = $EachBounce.subject -replace "Undeliverable: "
# Look for Failed Message Only
$result += Get-MessageTrace -StartDate $StartDT -EndDate $EndDT -Status Failed | where {$_.Subject -like $OriginalMsg} | select Received, SenderAddress, RecipientAddress, Subject, MessageId, Status, MessageTraceId
}
$result | Export-Csv $Home\Desktop\Bounces.csv -NoTypeInformation

Este artigo foi útil?

Para manter um padrão de qualidade para vocês, investimos em um ótimo plano de hospedagem, CDN Pago, Plugins de Otimização para o Site, etc…

Ajude-nos a manter o projeto ativo! 

Acompanhe as novidades em tempo real. Siga nosso perfil no Instagram..

Felipe Santos
Felipe Santos é Arquiteto de Cloud e Segurança, com vivência em Administração de Ambientes Windows Server, Cluster, Storages, Backups Veeam e Office 365.
pt_BRPortuguese

ATÉ 90% DE DESCONTO

DECOLE SUA CARREIRA!!

Quer dar um upgrade na sua carreira? 

Invista em você e saia na frente! Conquiste aquele emprego dos sonhos em 2022!