📁 Microsoft 365 / Exchange  ·  ⏱ Leitura: ~20 min  ·  👤 Nível: Administrador de Sistemas  ·  🗓 Abril 2026

Falhas de entrega de email no Exchange Online podem ter origens muito distintas — desde registos DNS incorretos e políticas de autenticação de email (SPF, DKIM, DMARC), até regras de transporte, conectores mal configurados, quarentena anti-spam ou limitações de envio do tenant. Este guia cobre o diagnóstico completo e sistemático, do sintoma à causa raiz, com os comandos PowerShell e ferramentas de administração necessários.



1. Identificar o Cenário de Falha

O primeiro passo é classificar o tipo de falha — isso determina onde começar o diagnóstico.

Sintoma Causa mais provável Ir para
Recebeu NDR (bounce) com código de erro Rejeição SMTP — destinatário, quota, bloqueio Secção 3
Email enviado mas não chegou — sem NDR Quarentena, regra de transporte, filtro anti-spam Secção 2
Email externo vai para Lixo/Junk SPF/DKIM/DMARC do remetente, reputação de IP Secção 4
Emails do domínio vão para Junk no destino SPF/DKIM/DMARC do nosso domínio incorretos Secção 4
Email bloqueado por sistema externo (aplicação, impressora) Conector SMTP mal configurado ou IP não autorizado Secção 6
Email redirecionado, modificado ou apagado Regra de transporte ativa no tenant Secção 7
Erro 550 5.7.x — quota ou limite excedido Limite de envio diário ou por minuto atingido Secção 8



2. Message Trace — Rastrear o Email Passo a Passo

O Message Trace é a ferramenta central de diagnóstico do Exchange Online — regista cada passo de entrega de qualquer mensagem, incluindo o motivo exato de falha. É o primeiro passo para qualquer problema de email não explicado.

2.1 — Via Centro de Administração Microsoft 365

  1. Aceder ao Centro de Administração do Exchange
  2. Navegar para Fluxo de correio → Rastreamento de mensagens
  3. Preencher: remetente, destinatário, intervalo de datas (máximo 90 dias para pesquisa histórica)
  4. Clicar em Pesquisar
  5. Clicar na mensagem → “Ver detalhes da mensagem” para ver cada hop de entrega

💡 Resultados do Message Trace — estados a identificar:
GettingStatus — mensagem ainda em processamento
Delivered — entregue na caixa de correio do destinatário
Failed — falha permanente (ver código de erro nos detalhes)
FilteredAsSpam — bloqueada como spam pelo EOP
Quarantined — em quarentena (ver Secção 5)
Expanded — enviada para lista de distribuição
Redirected — redirecionada por regra de transporte

2.2 — Via PowerShell (Exchange Online)

PowerShell — Exchange Online

# Ligar ao Exchange Online (se ainda não ligado)

Connect-ExchangeOnline -UserPrincipalName [email protected]

 

# Rastrear emails das últimas 48 horas entre dois endereços

Get-MessageTrace -SenderAddress [email protected] -RecipientAddress [email protected] -StartDate (Get-Date).AddDays(-2) -EndDate (Get-Date)

 

# Ver detalhes de uma mensagem específica (usar MessageId dos resultados)

Get-MessageTraceDetail -MessageId “<ID_DA_MENSAGEM>” -RecipientAddress [email protected]

PowerShell — Pesquisa histórica (até 90 dias)

# Para mensagens com mais de 10 dias usar Start-HistoricalSearch

Start-HistoricalSearch -ReportTitle “Falha Email Jan” -StartDate 01/01/2026 -EndDate 31/01/2026 -ReportType MessageTrace -SenderAddress [email protected] -NotifyAddress [email protected]

 

# Ver estado da pesquisa histórica

Get-HistoricalSearch | Select ReportTitle, Status, SubmitDate



3. Interpretar Códigos de Erro NDR

Uma NDR (Non-Delivery Report) contém um código de estado SMTP no formato 5.X.X (falha permanente) ou 4.X.X (falha temporária). Os códigos mais frequentes no Exchange Online:

Código NDR Significado Ação
550 5.1.1 Destinatário não existe (endereço de email inválido) Confirmar endereço; verificar se caixa foi eliminada ou renomeada
550 5.1.10 Domínio do destinatário não existe ou não aceita email Verificar registo MX do domínio de destino
550 5.2.2 Caixa de correio do destinatário com quota excedida Aumentar quota ou limpar caixa de correio no destino
550 5.4.1 Relay não permitido — domínio de envio não autorizado Verificar configuração do conector de envio
550 5.7.1 Mensagem rejeitada por política — SPF, DKIM ou regra Verificar SPF/DKIM do domínio remetente (Secção 4)
550 5.7.23 Falha de validação SPF — IP de envio não autorizado no SPF Adicionar IP ao registo SPF do domínio remetente
550 5.7.64 TenantAttribution — envio relay não autorizado pelo tenant Configurar conector de entrada com IP autorizado
550 5.7.509 DMARC falhou — domínio tem política p=reject Corrigir SPF e/ou DKIM para passar DMARC alignment
451 4.7.500 Limite de envio temporariamente atingido (throttling) Aguardar — o Exchange retenta automaticamente
452 4.2.2 Caixa de correio com quota cheia (temporário — pode esvaziar) Aumentar quota ou arquivar emails da caixa

💡 Referência completa de NDR: A Microsoft mantém uma lista atualizada de todos os códigos de NDR do Exchange Online em learn.microsoft.com — NDR Exchange Online.



4. SPF, DKIM e DMARC — Diagnóstico de Autenticação

A autenticação de email é a causa mais frequente de emails a ir para spam ou a serem rejeitados. Os três mecanismos trabalham em conjunto e devem estar todos corretamente configurados.

4.1 — Verificar estado atual via PowerShell

PowerShell — Exchange Online

# Verificar DKIM — estado de todos os domínios

Get-DkimSigningConfig | Select Domain, Enabled, Status, Selector1CNAME, Selector2CNAME

 

# Ativar DKIM para um domínio específico

Set-DkimSigningConfig -Identity empresa.pt -Enabled $true

 

# Verificar política DMARC via DNS (nslookup)

nslookup -type=TXT _dmarc.empresa.pt

4.2 — Configuração correta para Exchange Online

Registo Tipo DNS Valor correto para M365
SPF TXT v=spf1 include:spf.protection.outlook.com -all
DKIM Selector 1 CNAME selector1._domainkey → selector1-empresa-pt._domainkey.empresa.onmicrosoft.com
DKIM Selector 2 CNAME selector2._domainkey → selector2-empresa-pt._domainkey.empresa.onmicrosoft.com
DMARC TXT v=DMARC1; p=quarantine; rua=mailto:[email protected]; pct=100
MX MX empresa-pt.mail.protection.outlook.com (prioridade 0)

⚠️ SPF com múltiplos serviços: Se o domínio usar outros serviços de email além do M365 (ex: plataforma de newsletters, sistema CRM, servidor on-premises), todos os IPs/serviços de envio devem estar incluídos no SPF. Um SPF incompleto causa falhas de entrega intermitentes difíceis de diagnosticar. O SPF tem um limite de 10 lookups DNS — exceder este limite invalida o registo.

4.3 — Verificar cabeçalhos de autenticação de uma mensagem recebida

Para verificar se SPF, DKIM e DMARC passaram numa mensagem específica, analisar os cabeçalhos de email:

  1. No Outlook: abrir a mensagem → Ficheiro → Propriedades → Cabeçalhos de Internet
  2. Copiar o conteúdo completo e colar em Message Header Analyzer (ferramenta Microsoft gratuita)
  3. Localizar a linha Authentication-Results nos cabeçalhos

Exemplo de cabeçalho Authentication-Results — tudo a passar

Authentication-Results: spf=pass smtp.mailfrom=empresa.pt;

 dkim=pass header.d=empresa.pt;

 dmarc=pass action=none header.from=empresa.pt



5. Quarentena e Anti-Spam

Mensagens bloqueadas pela proteção Exchange Online Protection (EOP) podem ir para quarentena em vez de serem entregues ou rejeitadas. O utilizador pode não receber qualquer aviso.

5.1 — Verificar e gerir a quarentena

  1. Aceder ao Microsoft Defender (security.microsoft.com)
  2. Navegar para Email e colaboração → Revisão → Quarentena
  3. Filtrar por remetente, destinatário ou data
  4. Selecionar a mensagem → “Libertar” para entregar na caixa de correio ou “Libertar e reportar”

PowerShell — Exchange Online

# Listar mensagens em quarentena para um destinatário

Get-QuarantineMessage -RecipientAddress [email protected] | Select Subject, SenderAddress, ReceivedTime, QuarantineTypes

 

# Libertar mensagem específica da quarentena

Release-QuarantineMessage -Identity <MessageIdentity> -User [email protected]

5.2 — Criar exceção anti-spam para remetente ou domínio

Se um remetente legítimo está a ser consistentemente bloqueado ou enviado para quarentena, adicionar uma exceção na política anti-spam:

PowerShell — Exchange Online

# Ver remetentes/domínios permitidos na política anti-spam predefinida

Get-HostedContentFilterPolicy -Identity Default | Select AllowedSenders, AllowedSenderDomains

 

# Adicionar domínio à lista de permitidos (usar com cautela)

Set-HostedContentFilterPolicy -Identity Default -AllowedSenderDomains @{Add=”parceiro.pt”}

⚠️ Atenção: Adicionar domínios inteiros à lista de permitidos desativa a filtragem de spam para todos os emails desse domínio, incluindo emails fraudulentos que falsifiquem o remetente. Preferir adicionar remetentes individuais em vez de domínios. Para parceiros confiáveis, usar antes um conector de entrada com IP fixo (Secção 6).



6. Conectores e Fluxo de Correio

Os conectores definem como o Exchange Online envia e recebe email de sistemas externos — servidores on-premises, aplicações, equipamentos de impressão/digitalização, ou parceiros. Um conector mal configurado é causa frequente de falhas de relay SMTP.

6.1 — Verificar conectores existentes

PowerShell — Exchange Online

# Listar conectores de entrada

Get-InboundConnector | Select Name, Enabled, SenderDomains, SenderIPAddresses, RequireTls

 

# Listar conectores de saída

Get-OutboundConnector | Select Name, Enabled, SmartHosts, TlsSettings, UseMxRecord

 

# Testar fluxo de correio via conector de saída

Validate-OutboundConnector -Identity “Nome do Conector” -Recipients [email protected]

6.2 — Configurar relay SMTP para aplicações e equipamentos

Para impressoras multifunções, sistemas de monitorização ou aplicações que precisem de enviar email via Exchange Online, existem três métodos:

Método Como funciona Melhor para
Opção 1 — SMTP direto M365 smtp.office365.com porta 587 com credenciais M365 Aplicações com suporte a Modern Auth
Opção 2 — Relay direto MX do tenant + conector de entrada com IP fixo autorizado Impressoras, equipamentos sem suporte OAuth
Opção 3 — SMTP relay partilhado smtp.office365.com porta 25 + conector entrada + SPF Envio para destinatários externos

PowerShell — Criar conector de entrada para relay por IP

New-InboundConnector -Name “Relay Impressoras” -ConnectorType OnPremises -SenderIPAddresses “192.168.1.50”,”192.168.1.51″ -RequireTls $false -CloudServicesMailEnabled $false



7. Regras de Transporte (Mail Flow Rules)

As regras de transporte podem modificar, redirecionar, bloquear ou colocar em cópia mensagens automaticamente. Quando um email desaparece, chega ao destinatário errado, ou chega com conteúdo alterado, as regras de transporte são o primeiro lugar a verificar.

7.1 — Listar e auditiar regras ativas

PowerShell — Exchange Online

# Listar todas as regras de transporte ativas

Get-TransportRule | Select Name, State, Priority, Description | Sort-Object Priority

 

# Ver detalhes completos de uma regra específica

Get-TransportRule -Identity “Nome da Regra” | Format-List

 

# Desativar temporariamente uma regra para teste

Disable-TransportRule -Identity “Nome da Regra”

7.2 — Verificar se uma mensagem foi afetada por regra

No Message Trace, se o estado de uma mensagem for Redirected ou se existir uma entrada com Transport Rule nos detalhes, confirmar qual a regra responsável:

PowerShell — Exchange Online

# Ver detalhes do rastreio incluindo ação de regras de transporte

Get-MessageTraceDetail -MessageId “<ID>” -RecipientAddress [email protected] | Where-Object {$_.Event -eq “Transport rule”} | Select Detail



8. Limites de Envio do Exchange Online

O Exchange Online impõe limites de envio que, quando atingidos, causam falhas temporárias ou permanentes. Conhecer estes limites evita erros em campanhas de email, notificações em massa ou processos automatizados.

Limite Valor Âmbito
Destinatários por mensagem 500 Por email enviado
Destinatários por dia (utilizador) 10 000 Por caixa de correio / 24h
Mensagens por minuto 30 Por caixa de correio
Tamanho máximo de mensagem 150 MB Envio e receção
Tamanho máximo de anexo 150 MB Por mensagem
Membros de lista de distribuição 100 000 Por grupo
Expiração de mensagem na fila 24 horas Após falha de entrega temporária

PowerShell — Verificar limites configurados na caixa de correio

# Ver limites de envio e receção de uma caixa de correio

Get-Mailbox -Identity [email protected] | Select MaxSendSize, MaxReceiveSize, RecipientLimits

 

# Verificar se conta está em modo restrito por envio de spam

Get-BlockedSenderAddress | Select SenderAddress, BlockedUntilDate, Reason



9. Checklist de Diagnóstico Rápido

📋 Percorrer esta checklist na ordem indicada. O Message Trace deve ser sempre o primeiro passo — fornece o motivo exato da falha e evita diagnósticos desnecessários.

Verificação Ferramenta
Executar Message Trace — identificar estado e evento de falha EAC / PowerShell
Se NDR recebida — interpretar código de erro (5.X.X ou 4.X.X) Secção 3 / Microsoft Docs
Verificar registo SPF do domínio remetente — inclui todos os IPs de envio nslookup / MXToolbox
DKIM ativo e com CNAMEs corretos no DNS Get-DkimSigningConfig
DMARC configurado com política e endereço de relatório rua= nslookup _dmarc
Verificar quarentena — mensagem pode estar retida sem NDR security.microsoft.com
Verificar regras de transporte ativas — redirecionar, bloquear ou modificar Get-TransportRule
Para relay externo — conector de entrada com IP autorizado configurado Get-InboundConnector
Verificar se conta de envio está na lista de remetentes bloqueados Get-BlockedSenderAddress
Confirmar que limites de envio não foram atingidos (10 000 dest./dia) Get-Mailbox / Message Trace
Cabeçalhos Authentication-Results confirmam spf=pass dkim=pass dmarc=pass mha.azurewebsites.net

Referências e Ferramentas

Este artigo foi útil?

Duarte Spínola

Deixe um Comentário