Bounce and error codes
Look up the rejection string from your bounce below.
Last updated 2026-08-31
550 5.7.515 Access denied, sending domain does not meet the required authentication level
Outlook, Hotmail and Live return 550 5.7.515 when a high-volume sender fails Microsoft's authentication requirements. What it means and how to clear it.
550 5.7.509 Access denied, sending domain does not pass DMARC verification
Microsoft returns 550 5.7.509 when your own DMARC policy tells it to reject the message. How to tell a misconfigured sender from a genuine spoof.
550-5.7.26 This mail has been blocked because the sender is unauthenticated
Gmail returns 550-5.7.26 for two different failures: no authentication at all, and a DMARC policy rejection. Tell them apart, then fix the right one.
550 5.7.1: email rejected per DMARC policy
550 5.7.1 covers several rejections. When the text names DMARC, here is what failed, how to confirm it and what to change at Gmail, Yahoo and elsewhere.
550 5.7.23 The message was rejected because of Sender Policy Framework violation
Exchange Online returns 550 5.7.23 when SPF fails for the sending IP. What triggers it, why forwarding causes it, and how to fix it properly.
421 4.7.28 Gmail has detected an unusual rate of unsolicited mail
421 4.7.28 is a temporary Gmail throttle, not a block. How to tell whether it is your IP or your domain, and how to clear it without making it worse.
dmarc=fail (p=REJECT) in Authentication-Results
Your headers say spf=pass and dmarc=fail at once. How to read the Authentication-Results line, why alignment is the culprit, and what to change.
SPF PermError: too many DNS lookups
Over ten DNS lookups and your SPF record silently stops passing. What counts toward the limit, how to see your real total, and how to get under it.
dkim=fail (body hash did not verify)
Something altered the message body after signing. The usual culprits, how to prove which one it is, and what to change so DMARC stops failing.
Mail Delivery Subsystem: check whether your message arrived
Mail Delivery Subsystem is Gmail's name on a delivery notice. Read Action to see whether Gmail is retrying or stopped, then use Diagnostic-Code to fix it.
Message blocked: what Gmail is telling you, and what to change
Message blocked is Gmail's heading on a bounce, and the SMTP line under it names the cause. Read the status code to find out who owns the fix.
Delivery Status Notification Failure: what stopped your message
Delivery Status Notification Failure is the subject line on a bounce. What it means, how a delay notice differs, and which line names the cause.
Email bounced back: find the reason line, then fix it
Your email bounced back. Find the one line that names the reason, then match it to the fix: wrong address, full mailbox, a delay, or a block.
Your message could not be delivered: what Microsoft's NDR says
Your message could not be delivered is Microsoft's bounce wording. Find the reason sentence, then the SMTP reply sitting underneath it.
550 permanent failure means the receiver refused for good
A 550 permanent failure is a refusal your server will not retry. Read the code after the 550, then follow the fix that code points to.
550 5.4.1 Recipient address rejected: Access denied
Microsoft 365 returns 550 5.4.1 when the address you sent to is not in the recipient's directory. What the bounce means, and who can clear it.
Email quarantined: your message was held at the recipient, with no bounce
A recipient says your email was quarantined and nothing bounced. What Microsoft 365 holds, what a sender fixes, and what only their admin can.
550 5.1.1: the mailbox at that address does not exist
550 5.1.1 means the receiving server found no mailbox at that address. Check the spelling, clear your Auto-Complete entry, then write to their admin.
Elsewhere on the site
SPF and DKIM by provider
The records each platform needs, and where alignment breaks.
Guides
Setup, alignment, aggregate reports and the ten-lookup limit.
Or check a domain right now with the free DMARC, SPF and DKIM lookups.
See the bounce before your customer does
A rejection is the last warning, not the first. The reports name the failing sender days before its volume is high enough to bounce. On a paid plan, that first failing report becomes an email the same day. One summary a week, and your first domain is free.
Get the weekly digestNo card · 12+ months of history · The free plan does not expire