Revisione delle fonti: 29 settembre 2026. Validazione nel tenant da eseguire.
Strumenti e dettagli della guida
Inizia da un messaggio preciso
Invii ripetuti possono creare duplicati e nascondere il problema originale. Traccia prima il messaggio iniziale.
Usa accesso Exchange autorizzato
Il tenant deve avere Exchange Online e l’operatore un ruolo Exchange autorizzato con permessi di tracciamento. Exchange Administrator è un’opzione supportata; non usare Global Administrator per comodità. Un normale utente fornisce le evidenze all’helpdesk.
L’EAC corrente può cercare fino a 90 giorni di cronologia. Usa un intervallo ristretto, massimo 10 giorni, per una query riepilogativa; report più ampi sono scaricabili e possono richiedere più tempo. Uno stato recente può avere alcuni minuti di ritardo. Registra il periodo e ripeti la verifica quando opportuno.
Un percorso ibrido o gateway esterno può richiedere prove da un altro sistema. Una lacuna nella traccia del tenant non dimostra che il mittente non abbia inviato il messaggio.
Traccia il messaggio e leggi gli eventi
- Apri Exchange admin center → Mail flow → Message trace → Start a trace. Verifica il tenant.
- Imposta mittente, destinatario e intervallo delimitato con fuso corretto. Inizia con tutti gli stati. Se noto, usa Internet Message-ID completo, incluse parentesi angolari presenti.
- Apri il risultato corrispondente e gli eventi. Controlla espansione dei destinatari, reindirizzamento e destinazione finale, oltre allo stato riepilogativo.
- Salva filtri, risultato e ora UTC dell’indagine. Conserva il report nello spazio approvato: può contenere indirizzi personali e oggetti.
| Risultato | Azione |
|---|---|
| Nessun risultato | Verifica indirizzi, fuso, alias e Message-ID; amplia con attenzione l’intervallo. Conferma l’invio su questo percorso dal sistema sorgente. Conserva NDR o traccia a monte. |
| In attesa o differito | Leggi ultimo evento e motivo del nuovo tentativo. Controlla stato servizio e destinazione/connettore indicati. Riesamina lo stesso messaggio prima di reinviarlo. |
| Fallito o filtrato | Usa errore SMTP o spiegazione del filtro precisa per scegliere la correzione. Non attribuire ogni errore al DNS. |
| In quarantena | Un operatore autorizzato esamina messaggio, rilevamento e possibilità di rilascio. Non rilasciare malware e non creare un’allowlist ampia per provare il recapito. |
| Consegnato | Esamina eventi, destinatario e cartelle/regole. La consegna non prova che la persona l’abbia visto nella Posta in arrivo o letto. |
Traccia PowerShell in sola lettura per un messaggio
Usa una sessione Exchange Online PowerShell già autorizzata nel tenant corretto. I comandi V2 richiedono ExchangeOnlineManagement 3.7.0 o successivo. L’esempio non si connette e non modifica la configurazione. Richiede mittente, destinatario, Message-ID e intervallo UTC esatti.
V2 interroga i dati disponibili degli ultimi 90 giorni, per un massimo di 10 giorni a richiesta. Restituisce normalmente 1.000 righe, al massimo 5.000. Lo script richiede 5.000 e si ferma se raggiunge il limite. Riduci l’intervallo o usa la continuazione documentata. -Page non è la paginazione di V2.
Mantieni l’Internet Message-ID completo, incluse le parentesi angolari se presenti. È diverso da MessageTraceId, generato dal servizio e usato per i dettagli. Passa anche le date della query originale al comando dei dettagli, altrimenti usa un intervallo recente più breve.
# Read only. Use an existing authorized Exchange Online session in the correct tenant.
# Requires ExchangeOnlineManagement 3.7.0 or later. Does not connect or change settings.
$ErrorActionPreference = 'Stop'
Get-Command Get-MessageTraceV2, Get-MessageTraceDetailV2 -ErrorAction Stop | Out-Null
$sender = (Read-Host 'Exact sender address').Trim()
$recipient = (Read-Host 'Exact recipient address').Trim()
$messageId = (Read-Host 'Full Internet Message-ID, including angle brackets if present').Trim()
if (-not $sender -or -not $recipient -or -not $messageId) { throw 'All message identifiers are required.' }
$startInput = Read-Host 'Start with UTC offset, e.g. 2026-09-29T08:00:00Z'
$endInput = Read-Host 'End with UTC offset, e.g. 2026-09-29T10:00:00Z'
if ($startInput -notmatch 'T.*(Z|[+-][0-9]{2}:[0-9]{2})$' -or $endInput -notmatch 'T.*(Z|[+-][0-9]{2}:[0-9]{2})$') {
throw 'Both timestamps need Z or an explicit UTC offset.'
}
$start = [datetimeoffset]::Parse($startInput, [cultureinfo]::InvariantCulture).UtcDateTime
$end = [datetimeoffset]::Parse($endInput, [cultureinfo]::InvariantCulture).UtcDateTime
if ($end -le $start -or ($end - $start).TotalDays -gt 10) { throw 'Use a positive interval no longer than 10 days.' }
if ($start -lt [datetime]::UtcNow.AddDays(-90) -or $end -gt [datetime]::UtcNow) { throw 'Choose a past interval within the last 90 days.' }
$trace = @(Get-MessageTraceV2 -SenderAddress $sender -RecipientAddress $recipient -MessageId $messageId -StartDate $start -EndDate $end -ResultSize 5000)
if ($trace.Count -ge 5000) { throw 'Result cap reached. Narrow the query before interpreting the results.' }
$trace | Format-List Received,SenderAddress,RecipientAddress,Subject,Status,MessageId,MessageTraceId
if ($trace.Count -eq 0) { Write-Warning 'No match in this query. Recheck identifiers, route, timing and coverage.' }
foreach ($row in $trace) {
Get-MessageTraceDetailV2 -MessageTraceId $row.MessageTraceId -RecipientAddress $row.RecipientAddress -StartDate $start -EndDate $end |
Format-List *
}Esempio verificato sulle fonti e con comandi simulati. Non eseguito in un tenant cliente.
Get-MessageTraceV2 · Get-MessageTraceDetailV2 · Microsoft: EAC message trace
Correggi la causa supportata dalla traccia
Per indirizzo o configurazione destinatario errati, il responsabile corregge quell’impostazione. Per un sintomo limitato al client, conserva la copia cloud e verifica account, viste e sincronizzazione di quel client.
Per un filtro, il responsabile sicurezza verifica il rilevamento e il percorso appropriato di falso positivo o rilascio. Per connettori, regole o DNS conserva la configurazione precedente e applica una modifica circoscritta con il responsabile del servizio. Non aggiungere un bypass per tutto il tenant.
Se viene citata una regola, confronta la configurazione attuale con quella all’ora del messaggio. La regola può essere cambiata dopo l’evento. Documenta questa incertezza prima di attribuire l’azione originale alle impostazioni di oggi.
Inoltri o regole non autorizzati possono indicare un incidente. Conservali e usa Account compromesso invece di cancellare subito le evidenze.
Segui l’evento di trasporto fino alla destinazione
RECEIVE indica accettazione da parte del servizio. DELIVER indica consegna alla cassetta postale. SEND indica un passaggio effettuato dal servizio, non prova di lettura o arrivo nella Posta in arrivo esterna. Conserva destinazione e risposta, poi richiedi la traccia del sistema successivo.
EXPAND riguarda i membri di un gruppo di distribuzione: segui il percorso del destinatario previsto. DEFER indica un tentativo rinviato: usa motivo ed eventi successivi. FAIL richiede la risposta SMTP o NDR reale, non una correzione DNS ipotizzata.
Per Delivered ma messaggio assente, cerca il messaggio esatto in Outlook sul web, inclusi Posta indesiderata, Elementi eliminati, archivio e regole. Verifica inoltro, quarantena o azioni di sicurezza successive quando indicato dalle prove. Una consegna seguita dallo spostamento tramite regola è diversa da un errore al gateway esterno.
Verifica l’originale e un test controllato
Se la modifica circoscritta causa una regressione, il responsabile autorizzato ripristina le impostazioni salvate e verifica ancora lo stesso percorso. Esegui l’escalation con traccia/NDR se il problema appartiene a un altro servizio o la causa resta sconosciuta.
Prepara il passaggio per il flusso di posta
Problema: mancante / in ritardo / fallito / solo client Direzione e ambito destinatari: Ora invio originale e offset UTC: Message-ID e NDR conservati internamente: Intervallo traccia, stato ed evento rilevante: Controlli mailbox cloud / sistema a monte: Modifica circoscritta e risultato del test: Lacuna nelle evidenze / prossimo responsabile:
Richiedi supporto per il flusso di posta con un riepilogo senza dati riservati. Concorda un canale sicuro prima di inviare intestazioni, corpi dei messaggi o export.