ServiceDeskSimulator
AI coaching on Start

Knowledge base

Running a message trace

Reference: Microsoft Learn — Message trace in the modern Exchange admin center

← All articles
exchangemail-flowdiagnostics

Message trace answers three questions that nothing else can, and it answers them

without changing anything:

  1. Did the message exist? Settles "they say they sent it" arguments in seconds.
  2. Where did it stop? Delivered, quarantined, filtered, failed, or pending.
  3. Who actually received it? Essential when sizing a security incident.

Reading the status column

StatusMeaning
DeliveredReached the mailbox. If the user cannot see it, look at inbox rules and folders.
QuarantinedHeld by anti-spam, anti-phishing or a transport rule. Not lost — see Quarantine, SPF, DKIM and DMARC.
Filtered as spamDelivered to Junk Email, or dropped by policy.
FailedRejected. The detail carries the SMTP code and reason.
PendingStill in transit or queued for retry.
ExpandedSent to a distribution group; trace the individual recipients.

Useful SMTP codes

CodeMeaning
550 5.1.1Recipient does not exist
550 5.2.2Recipient mailbox is over quota
550 5.4.1Recipient not found / relay denied
550 5.7.1Blocked by policy or transport rule
550 5.7.708Sending IP or tenant blocked for reputation — often signals compromise
421 4.4.2Connection timed out; usually transient

Practical technique

rather than one exact subject line. You are looking for a pattern and a cut-off

point, not one email.

that was delivered and the first that was not. That timestamp is usually when

something changed — a policy, a DNS record, a quota, a connector.

from the affected mailbox tells you who has been contacted and needs warning.

delivered as a downloadable report rather than on screen.

What a trace does not tell you

check the mailbox rules and the folder tree next.

Related