Blog/ Outlook how-tos

Microsoft 365 Mail Flow Troubleshooting: Email Not Delivered

Nafiul HasanNafiul Hasan· 12 min read
AI Emaily blog cover for Microsoft 365 mail flow troubleshooting, showing an email that was not delivered traced through NDR codes, message trace, transport rules and connectors in Exchange Online

The short answer

Start with the evidence, not a guess. Read the non-delivery report (NDR) code — for example, 550 5.7.1 means delivery was not authorized — then run a message trace in the Exchange admin center. From there, check transport (mail flow) rules, connectors, and SPF, DKIM and DMARC alignment, then quarantine, and any forwarding loop or redirect limit that silently drops the message.

Email not delivered in Microsoft 365? Troubleshooting: read the NDR code, run a message trace, check transport rules, connectors and SPF, DKIM, DMARC.

On this page
  1. 01The short answer
  2. 02Before you start: gather the evidence
  3. 03Read the NDR code first
  4. 04How a message travels through Exchange Online
  5. 05Troubleshoot mail flow, step by step
  6. 06The forwarding and redirect limits that silently drop mail
  7. 07Platform differences: Exchange Online, hybrid and on-premises
  8. 08What to do when it doesn't work
  9. 09A faster way, once delivery is fixed

When email is not delivered in Microsoft 365, the fastest way to troubleshoot is to work from evidence rather than guesswork. Every failed message leaves a trail: a non-delivery report (NDR) with a status code, a message trace record, and a delivery path through transport rules, connectors and mail authentication. Read that trail in order and the cause usually names itself.

This guide covers messages that never arrive — external mail that vanishes, internal mail that bounces, and mail a trace shows as delivered but that never reaches the inbox. It is written for the admin doing the diagnosis, and it points at the documented Exchange Online limits that quietly drop mail before anyone sees an error.

The short answer#

Read the NDR code first. The enhanced status code — for example, 550 5.7.1 — tells you whether the message was blocked by policy, rejected by the recipient, lost to a bad address, or caught by authentication. Then run a message trace in the Exchange admin center to see where the message stopped.

From the trace, follow the path. Check mail flow (transport) rules for one that rejected or redirected the message. Check connectors if the mail crosses a boundary such as an on-premises server or a third-party filter. Verify SPF, DKIM and DMARC alignment, and check quarantine. Finally, rule out forwarding loops and the redirect limits that Exchange enforces silently.

Before you start: gather the evidence#

Diagnosis is faster when the facts are in front of you. Collect these before you open the admin center, ideally from the person who reported the problem.

  • The full NDR, if the sender received one — the enhanced status code (like 5.7.1 or 5.1.10) and its diagnostic text are the single most useful clue.
  • The exact sender and recipient addresses, and whether each is internal or external to your tenant.
  • The date and time the message was sent, in a known time zone, so you can find it in a message trace.
  • Whether the message was ever delivered before, or whether this is a new sender, recipient, domain or connector.
  • Admin access to the Exchange admin center (admin.exchange.microsoft.com) and the Microsoft Defender portal, or someone who has it.

Read the NDR code first#

The NDR (also called a bounce message) carries an enhanced status code defined by Microsoft. It narrows the cause before you touch a single setting. These are the codes you will see most often when mail is not delivered; each maps to a specific fix in Microsoft's documentation.

NDR codeWhat it meansWhere to look
550 5.7.1Delivery not authorized — the sender is not allowed to send to the recipient, or a transport rule rejected the message.Mail flow rules; the recipient's accept-from settings.
550 5.4.14Routing loop detected — the message bounced between systems until Exchange stopped it after 20 hops.Forwarding rules and connectors on both sides.
550 5.1.1Bad destination mailbox address — the recipient address does not exist in the destination system.The recipient address; Outlook's recipient cache.
550 5.1.10Recipient not found — SMTP address lookup did not find the recipient.Whether the recipient mailbox or contact still exists.
550 5.7.23SPF violation — the receiving system checks SPF and your SPF configuration failed.The sending domain's SPF record.
550 5.7.509The sending domain failed DMARC and its DMARC policy is set to reject.The sending domain's DMARC alignment.
550 5.7.367A forwarded or relayed message broke SPF or DKIM — common when a non-Microsoft gateway is in the path.The forwarding path and the intermediate gateway.
550 5.7.64TenantAttribution; Relay Access Denied — an inbound connector's configuration is now incorrect.The inbound connector from your on-premises or partner system.

How a message travels through Exchange Online#

A message in Microsoft 365 is not delivered in one hop. It enters through a connector or Microsoft's own inbound path, passes anti-spam and anti-malware filtering, is evaluated against every mail flow rule in order, and only then lands in the mailbox — where inbox rules and forwarding can move or drop it again. Mail that is not delivered stopped at one of these stages, and a message trace shows which.

Knowing the path also explains the failures that produce no NDR at all. A transport rule can delete a message silently. A forwarding loop can exhaust its hops. A redirect can exceed a documented limit and be dropped without a bounce. The steps below walk the path in the order a message travels it.

Diagram of a message's path through Exchange Online: inbound connector, then anti-spam and anti-malware filtering, then mail flow rules evaluated in order, then mailbox delivery where inbox rules and forwarding can redirect or drop the message
Mail that is not delivered stopped at one of these stages; a message trace shows which one.

Troubleshoot mail flow, step by step#

Work the path in order. Each step either clears a cause or points at the next one.

  1. 1

    Run a message trace

    In the Exchange admin center, open Mail flow, then Message trace. Search by sender, recipient and time. Recent messages return in real time; older searches run as a downloadable report. The trace shows each event — received, filtered, rule matched, delivered, failed — and the exact point the message stopped. The current retention window is shown in the tool itself.

  2. 2

    Check mail flow (transport) rules

    In Mail flow, then Rules, review any rule that could reject, redirect or delete the message. NDR 5.7.1 is often a transport rule rejecting a match. Rules run in priority order, and a delete action produces no bounce, so a message that vanishes with no NDR is frequently a rule. Disable a suspect rule and re-test.

  3. 3

    Check connectors

    Connectors control mail that crosses a boundary — to or from an on-premises Exchange server, a partner organisation, or a third-party filtering or archiving service. A wrong smart host, an expired TLS certificate, or a criteria mismatch can reject or misroute mail. NDR 5.7.64 points straight at an inbound connector whose configuration no longer matches your environment.

  4. 4

    Verify SPF, DKIM and DMARC alignment

    For external senders, authentication failures cause both rejections and quarantine. Confirm the sending domain publishes a valid SPF record, signs with DKIM, and aligns for DMARC. NDR 5.7.23 signals an SPF failure; 5.7.509 means the sender failed DMARC and its policy is reject. For your own outbound, check the same three records at your domain's DNS.

  5. 5

    Check quarantine

    In the Microsoft Defender portal, open Review, then Quarantine. Legitimate mail is held here when anti-spam, anti-phishing or a mail flow rule flags it. Release the message, and if it should always arrive, adjust the policy or add an allow entry — carefully, because allow-listing weakens spoofing protection. Quarantined mail is kept for a configurable window (up to 30 days) and then deleted.

  6. 6

    Rule out forwarding loops and redirect limits

    Automatic forwarding, redirect rules and connectors can send a message in a circle. Exchange breaks the loop after 20 hops and returns NDR 5.4.14. Separately, Exchange enforces documented limits on forwarding and redirection — and exceeding them drops mail with no obvious error. Those limits are the next section.

The DMARC standard changed in 2026 — check the current spec

DMARC is now defined by RFC 9989 (2026), which obsoletes the older RFC 7489. The update removes the pct tag, replaces reliance on the Public Suffix List with a DNS tree walk, and adds a psd tag. Many published guides — and some vendor documentation — still describe the earlier version, so verify DMARC record syntax against RFC 9989 when you troubleshoot an alignment failure.

The forwarding and redirect limits that silently drop mail#

This is the failure that wastes the most time, because it produces no bounce and no quarantine entry. Exchange Online caps how many recipients a redirect can reach and how many times a message can be redirected. Cross the cap and the message is simply not redirected.

The values below are from Microsoft's Exchange Online limits documentation (as of 2026). They can differ by plan, so confirm the current numbers for your subscription on that page before you rely on them.

LimitExchange Online valueWhat happens when exceeded
Forwardee limit (recipients on a redirecting rule)10 recipientsThe rule cannot be applied, and no recipient on it receives the message.
Number of times a message is redirected1 redirectionFurther redirects are not performed.
Number of times transport rules redirect a message1 redirectionA second rule-based redirect does not happen.
Recipients added by all transport rules100 recipientsRecipients beyond the limit are not added.
Maximum transport rules in the organisation300 rulesYou cannot create the 301st rule.
Routing loop cutoff20 hopsExchange stops the loop and returns NDR 5.4.14.

A redirect over the limit fails without a bounce

If an inbox or transport rule is set to redirect to more than the forwardee limit of 10 recipients, Exchange cannot apply the rule at all — every recipient on it is skipped, and the sender sees no error. The same is true when a message would be redirected more than once. If mail 'disappears' after you add a forwarding or redirect rule, check that rule against these limits first.

Platform differences: Exchange Online, hybrid and on-premises#

Where your mailboxes and routing live changes both the symptoms and the fix. The routing-loop NDR code, in particular, tells you which side generated it: Exchange Online returns 5.4.14, while an on-premises server returns 5.4.6.

EnvironmentRouting-loop NDR codeMost common failure point
Exchange Online (cloud only)550 5.4.14A transport rule, a forwarding rule, or a quarantine policy.
Exchange hybrid5.4.6 on the on-premises leg; 5.4.14 in the cloudA connector between on-premises Exchange and Microsoft 365 — TLS or matching criteria.
On-premises Exchange550 5.4.6Send and receive connectors, and hub transport routing.

What to do when it doesn't work#

If the trace looks clean and the message still does not arrive, the cause is usually past the point of delivery — at the mailbox itself. Work these symptoms.

SymptomLikely causeFix
Trace says 'Delivered' but the mail is not in the inboxAn inbox rule moved or deleted it, or it went to Junk or the Other tab.Check the mailbox's inbox rules, the Junk folder, and the Focused Inbox split.
External mail never arrives, no NDR to the senderA transport rule with a delete action, or the message sits in quarantine.Search message trace for the sender; check Rules and the Defender quarantine.
All mail from one external domain failsThat domain's SPF, DKIM or DMARC is broken, or your connector rejects it.Check the sending domain's authentication; review the inbound connector.
Mail stopped after you added a forwarding ruleThe forward or redirect exceeded a documented limit, or it created a loop.Compare the rule to the forwardee and redirect limits; look for NDR 5.4.14.
A specific recipient bounces with 5.1.1 or 5.1.10The address is wrong, was changed, or the mailbox no longer exists.Confirm the recipient exists; clear the sender's Outlook auto-complete cache.
Mail is delayed but eventually arrivesA temporary throttling or greylisting response (a 4.x.x code) is retrying.Check the trace for a 4.x.x code; these retry automatically and are not a hard failure.

A faster way, once delivery is fixed#

The tools for this job are Microsoft's own: the Exchange admin center for message trace, mail flow rules and connectors, and the Defender portal for quarantine. AI Emaily is not a mail flow admin tool, a message trace, or a DMARC monitor, and it will not configure transport rules or connectors for you. For the server-side fixes above, stay in the admin center.

The adjacent job we do starts once delivery works. AI Emaily connects to your Microsoft 365, Gmail or IMAP mailbox and reads the same SPF, DKIM and DMARC results on the mail that does arrive — so it can flag a spoofed sender that failed alignment, and triage the rest so important messages surface first. It keeps approve-before-send, undo and a full audit trail. We build AI Emaily, and it comes with a 7-day free trial on the Pro and Autopilot plans.

Frequently asked

Nafiul Hasan

Written by

Nafiul Hasan

Nafiul Hasan is an entrepreneur and AI automation system builder with 10+ years of experience turning messy, manual workflows into reliable automated systems. He designs and ships AI enterprise solutions end-to-end — the agent logic, the data plumbing, and the product people actually use — and founded AI Emaily to give busy professionals their attention back. He writes here from the builder's seat: what works, what breaks, and how to put AI to work without giving up control.

EntrepreneurAI Automation System BuilderAI EnthusiastBuilds AI Enterprise Solutions10+ years experience
More from Nafiul
Ready when you are

Fix delivery in the admin center. Handle the inbox with AI Emaily.

Message trace, mail flow rules and connectors live in Microsoft's admin tools. Once mail arrives, AI Emaily triages it, flags senders that failed SPF, DKIM or DMARC, and drafts replies in your voice — with approve-before-send, undo and a full audit trail. Try it on a 7-day free trial.

  • 7-day free trial
  • Cancel anytime
  • Every provider