Email bounced back: find the reason line, then fix it
Last updated 2026-08-24
A mail server between your outbox and the recipient refused your message and wrote back to you instead. That report is what people call a bounce. One line inside it names the reason, and that line says whether the message is gone for good or still sitting in a queue.
What it means. Your email bounced back because a mail server refused it or gave up trying to deliver it. One line in the report it sent you carries a 3-digit reply code and a sentence naming the refusal.
What to change. Find that line before you do anything else. A code that starts with 5 is permanent, so resending the same message to the same address returns the same rejection. A code that starts with 4 is temporary, and the sending server retries on its own.
When it clears. A corrected address works on the next send. A temporary failure often clears within hours. A block on your domain clears once the sending setup is repaired, and the person who runs mail for the domain owns that job.
Find the reason line
Scroll to the bottom of the notice. You are looking for a line that starts with 3 digits, followed by a dotted number and a sentence:
That sentence is the reason, and the first digit decides your next move. A 5 means the server stopped for good. A 4 means it is still trying. Those classes come from RFC 3463. It defines a permanent failure as one that "is not likely to be resolved by resending the message in the current form".
The same verdict appears again lower down, in labelled fields:
Diagnostic-Code carries the other server's own reply, so it usually repeats
the reason line word for word. Read that field first. Action: failed and
Action: delayed are the machine-readable form of the same verdict. Those
field names come from RFC 3464,
so they read the same whichever system sent the notice. The
Mail Delivery Subsystem page reads the fields
one by one, and
Delivery Status Notification
(Failure) covers the subject line itself.
Gmail hides the reason line behind Show original
Every mail app puts that line somewhere different.
- Gmail sends the notice from Mail Delivery Subsystem. Google tells you to open it and read the error message inside. For the raw version, click More next to Reply, then Show original.
- Outlook and Microsoft 365 put a plain summary under a Cause heading, with the detail under More info for email admins. Older reports split in two: User information, then Diagnostic information for administrators. That second block names the server that refused you and quotes its reply. To read the headers in new Outlook or on the web, choose More actions, then View, then View message details. Classic Outlook for Windows keeps them under File, then Properties.
- Apple Mail on a Mac shows the notice as an ordinary message. Apple's Mail User Guide gives the path to the full detail: choose View, then Message, then All Headers.
I copy that line into a note before I close the bounce, along with the address on the
Final-Recipient line.
Match your reason line to the person who fixes it
Your code matches one row of this table, and that row names the person who can clear it.
| Reason line | Who fixes it | What they do |
|---|---|---|
5.1.1 no such mailbox |
The sender | Correct the address, send again |
4.2.2 or 5.2.2 out of storage |
The recipient | Clear space, or read mail elsewhere |
4.x.x other temporary failure |
The sending server | It retries, then gives up |
5.7.1 spam or a mail rule |
The recipient's admin | Allow the sender, or edit the rule |
5.7.26 or 5.7.515 |
The sending domain's admin | Repair the DNS records |
| Reports for mail you did not send | Nobody stops them arriving | Check Sent, then leave them |
Address errors: compare it against Final-Recipient
Gmail returns 550 5.1.1 with the text "The email account that you tried to
reach does not exist", and Microsoft's code table lists 5.1.1 as
Bad destination mailbox address. Microsoft also returns 5.4.1 with
"Recipient address rejected: Access denied", which the same table explains as an address
that does not exist.
Compare the address in the Final-Recipient line against the one you meant to
type. Check the domain as carefully as the name, because a wrong domain still resolves and
still bounces. If the address used to work, the person may have left, or an admin deleted
the mailbox. Microsoft names one more cause inside a single company: a mailbox that moved
while Outlook's recipient cache kept the old address. Its instruction there is to remove
that address from the sender's Outlook cache and start a new message. Resending the
original one fails the same way.
The sender corrects this one. No admin on either side can fix it.
Mailbox full: wait or call
Gmail returns 452 4.2.2 with "The recipient's inbox is out of storage space",
which is temporary, and 552 5.2.2 with "The recipient's inbox is out of
storage space and inactive", which is not. Google tells the sender to ask the person to
clear space in their account
storage before they can receive new mail.
Only the recipient can clear it. Reach them another way and tell them, because a phone call beats another send.
An out-of-office reply looks like a bounce in a busy inbox. RFC 3834 keeps the two apart. Delivery status notices report on a delivery. An "out of office" or "vacation" notice tells the sender that the message is unlikely to be read for some amount of time. It carries no status code.
4xx delays: the server is still trying
A code starting with 4 means the receiving server said "not now". RFC 3463 puts that class beside the permanent one quoted above: the message as sent is valid, and a temporary condition delayed it. The sending server keeps the message queued and tries again on a schedule its operator sets.
Exchange Online "repeatedly tries to deliver the message over 24 hours", and only
after those 24 hours does the sender get a
550 4.4.7 QUEUE.Expired; message expired report. A delay notice before then
leaves the message in the queue.
So a delay notice asks you to wait. Resending puts a second copy in the same queue, and the recipient gets both copies once the receiving server accepts them. If a delay turns into a failure a day later, treat the failure as the real event and start again at the reason line. Gmail's rate-limit version is 421-4.7.28, which the sending server retries.
5xx blocks: content, reputation or authentication
When a 5xx bounce says nothing about the address, the receiver made a policy call. The sentence beside the code says which policy. If your notice says the message was blocked, the line underneath it names the cause, and message blocked covers that family.
-
Spam scoring. Gmail returns
550 5.7.1with "This message is likely unsolicited email". The content, the links or the sending IP triggered a filter. -
A blocked sending IP. Microsoft has 2 forms of this, and each one has
its own fix.
550 5.7.606-649 Access denied, banned sending IPgoes through the Office 365 Anti-Spam IP Delist Portal athttps://sender.office.com. Microsoft's delist portal documentation rules that portal out for550 5.7.511 Access denied, banned sender. Forward that report todelist@microsoft.comwith the full code and IP. Microsoft says it contacts you within 48 hours with the next steps. -
A rule on the receiving side. Microsoft's
5.7.1also covers "Delivery not authorized". A distribution list or a transport rule returns that when it turns you away, and only the recipient's admin can change it. -
Authentication. Gmail prints
550-5.7.26in two versions: one says the sender is unauthenticated, and the other says the mail "is not accepted due to domain's DMARC policy". Microsoft returns550 5.7.515when a bulk sender misses its requirements. These are the ones you can fix from your own DNS.
A block aimed at your domain or your sending IP applies to every message you send to that receiver. You are also the only person who hears about it: the notice goes to the sender, and nobody tells the recipients that their copy was refused. You find out when one of them asks why you never replied.
Authentication rejections name the check that failed, or they call the sender unauthenticated. Start with 550-5.7.26, which tells Gmail's two versions apart, and 550 5.7.515 for the Microsoft form. When the error quotes your own policy back at you, DMARC fail with p=reject explains what your record asked receivers to do.
Our SPF, DKIM and DMARC checker reads all three records live with no signup, and it counts the SPF lookups against the limit of 10. Add a selector if you want the DKIM leg. It reads your DNS, so it shows you the rules that receivers apply to your mail.
Bounces for mail you never sent
Check your Sent folder for the original message before you treat the report as a break-in.
Delivery reports go to the envelope sender, which is a separate address from the one your reader sees. Section 6.1 of RFC 5321 is explicit about it. The notice goes to "the address from the envelope return path (or the Return-Path: line)". A spammer who forges your address in that field points every resulting report at you. Spamhaus calls the result backscatter: "incorrectly automated bounce messages sent by mail servers, typically as a side effect of incoming spam".
When Sent holds no matching message and you do not recognise the attached original,
somebody forged your address in the envelope, and your account is not the source. The
Mail Delivery Subsystem page has the longer
version of this check, including what a p=reject policy does and does not
stop.
Hard bounce vs soft bounce
Sending platforms sort bounces into two buckets, and those words belong to the platforms, not to SMTP. Amazon SES defines a hard bounce as "a persistent email delivery failure. For example, the mailbox does not exist", and a soft bounce as "a temporary email delivery failure. For example, the mailbox is full". SES retries soft bounces and does not retry hard bounces.
The first digit of the status code usually decides which label a platform applies: a 4 is
a soft bounce, and a 5 is normally a hard one. Gmail's storage pair breaks that rule,
because 552 5.2.2 is a 5 for a full mailbox that most platforms treat as
soft. Mailchimp says the same thing in its own words: providers
bounce messages "based on
their own rating systems and definitions". Mailchimp allows 7 soft bounces for an address
with no subscriber activity, and up to 15 for a contact with past activity. After that,
the soft bounce becomes a hard one.
A platform stops mailing an address once it passes those counts. For a single message from your own mailbox, read the code and act on it.
Free checks worth running
Google's Admin Toolbox Check MX reads MX and SPF records for a domain. Microsoft's Remote Connectivity Analyzer runs an Outbound SMTP Email test, and Microsoft's own bounce pages point admins at it.
For reputation problems at Gmail, Google Postmaster Tools is free and covers the mail you send to personal Gmail accounts. Google hides a day's numbers when the message count for that day is too low, to protect the privacy of individual users. Add the domain before you need the data.
One bounce tells you about one message on one day. Receivers already write your domain a report naming every server that sent as your domain, usually one file a day each, in XML. Those DMARC aggregate reports are how you see every sender at once. Cloudflare's DMARC Management lists each sending source and whether it passed. Cloudflare offers it on every plan to a domain that uses Cloudflare DNS. Postmark's DMARC Digests mail one summary a week. When I last checked, the free tier listed the top 10 mail sources with 5 IPs each and kept 7 days.
DomainCanary is our product, and what follows is us selling the paid version of it. Your reason line named one sender, and the platform that breaks next will do it on its own schedule. On a paid plan we mail you as that failing report arrives, so you hear about a new failing source on the day we see it rather than in the following Monday's digest. A settings checkbox holds back the digest on a week with nothing wrong, recording it on the dashboard instead, and after 8 held weeks we send the next clean digest anyway. Your first domain is free, and the realtime alerts come with Pro at $19 a month for 10 domains. An aggregate report counts messages by sending IP and never carries a bounce notice, so the message you have open is one we cannot read.
Hear about the next failing sender first
This rejection named one sender, and the next one to break sends no warning ahead of it. On a paid plan the first failing report from a new source reaches you as an email that day, rather than in Monday's digest. Pro watches 10 domains for $19 a month.
Get the alerts and the digestNo card · 12+ months of history · The free plan does not expire
Questions
Why did my email bounce back?
Start with the code in the report. A wrong or dead address returns 5.1.1. A full mailbox returns 4.2.2 or 5.2.2. A busy receiver returns another 4.x.x and clears on its own. A spam filter or an authentication rule returns 5.7.x. The sentence beside the code says which of those you have.
What is the difference between a hard bounce and a soft bounce?
A hard bounce is a permanent failure, such as a mailbox that does not exist. A soft bounce is a temporary one, such as a full mailbox or a busy server. Sending platforms retry soft bounces and drop hard ones. The status code usually matches, with 4 for soft and 5 for hard. Each platform then applies its own rules. Gmail returns 552 5.2.2 for a full mailbox, and most platforms still treat that as soft.
My email keeps bouncing back from the same person. What should I do?
Read the code in the newest report, because the last one may have carried a different code. A repeated 5.1.1 means the address is wrong or gone, so confirm it another way. A repeated block on your domain needs the sending setup fixed, and the person receiving your mail cannot fix that from their end.
Does a bounced message mean I have been blocked?
Usually no. Most bounces are address errors or full mailboxes. A block reads differently: the code starts with 5.7, and the text mentions spam, reputation, policy or authentication. That is also the group a recipient cannot fix by adding you to a contact list.
Keep reading
Checking as you fix? The DMARC checker, SPF checker and DKIM checker read the records live, no signup.