Deliverability

Mail delivery failed: returning message to sender — what it means and how to fix it

How to read a bounce message, hard vs soft bounces, SMTP status codes, why you get failures for mail you never sent, spotting fake bounce scams, and how to stop them in Gmail and Outlook.

September 28, 2026 · 9 min read

A mail delivery failure — often titled “Mail delivery failed: returning message to sender” or sent from Mailer-Daemon — is an automatic notice that your email could not be delivered. It is not spam and it is not a virus. It is the mail system doing its job: telling you a message bounced instead of silently dropping it.

This guide covers every version of the question people ask about these messages: what they mean, how to read one, why you sometimes get them for mail you never sent, how to tell a real bounce from a fake one, and how to make them stop.

What the message actually means

When you send an email, your mail server hands it to the recipient’s mail server. If the recipient’s server refuses it — the address does not exist, the mailbox is full, the content looks like spam — it replies with a rejection code. Your server then generates a bounce message (a Non-Delivery Report) and sends it back so you know the email never arrived.

You the sender Your mail server sends the email Recipient server rejects it ✕ Mailer-Daemon writes the bounce 1. send 2. deliver attempt 3. rejection code 4. bounce to your inbox
The round trip of a bounced email. The bounce you receive is step 4 — a report, not the original problem.

The key idea: the bounce is a symptom. The real reason is in the rejection code the recipient’s server sent back. Learn to find that code and you can solve almost any delivery problem.

How to read a bounce message

Most bounces look intimidating because of the technical headers. But you only need four things: who it was for, the status code, the reason text, and the original subject. Here is a typical bounce with the important parts marked.

From: Mail Delivery Subsystem <[email protected]>
Subject: Mail delivery failed: returning message to sender

This message was created automatically by the mail system.

A message that you sent could not be delivered. The following
address failed:

   [email protected]    ← who it was for

   550 5.1.1 <[email protected]>  ← status code
   The email account that you tried to
   reach does not exist.
    ← reason — read this!

----- Original message -----
Subject: Your March invoice    ← your subject
Date: Tue, 15 Sep 2026 10:04:11 +0000

Start with the reason line. Nine times out of ten it says what went wrong in plain English — “account does not exist”, “mailbox full”, “rejected as spam”. The number beside it (like 550 5.1.1) confirms it.

Hard bounce vs soft bounce

Every bounce is one of two kinds, and the difference decides what you should do next.

Permanent Hard bounce

The address will never accept mail. Don’t retry.

  • Address doesn’t exist / typo
  • Domain doesn’t exist
  • Recipient server blocked you

Do: fix the typo or remove the address. Repeated sends to dead addresses hurt your reputation.

Temporary Soft bounce

A passing problem. It may work if you try again later.

  • Mailbox full
  • Message too large
  • Server down or greylisting

Do: usually nothing — servers auto-retry soft bounces for a day or two before giving up.

SMTP status codes cheat sheet

The three-digit code gives the category; the dotted “enhanced” code (like 5.1.1) gives the specific reason. The first digit is the fastest tell: 4xx = temporary (will retry), 5xx = permanent (will not).

Code Type What it means What to do
550 5.1.1 Permanent No such user / address doesn’t exist Fix the typo or remove it
550 5.7.1 Permanent Rejected — spam, policy, or blocklist Check SPF/DKIM & reputation
552 5.2.2 Permanent Mailbox full / over quota Ask recipient to clear space
552 5.3.4 Permanent Message too large Send a link, not an attachment
421 4.7.0 Temporary Service unavailable / rate-limited Wait — it will auto-retry
451 4.7.1 Temporary Greylisted — try again shortly Nothing; normal anti-spam step
450 4.2.1 Temporary Mailbox busy / temporarily blocked Let the retry handle it

Rule of thumb: a 5.7.x code almost always means an authentication or reputation problem on your side — see the fix below.

“Why am I getting failures for email I never sent?”

This is the most confusing case. You open your inbox and find bounces for emails you have no memory of sending, often to strangers. You are almost certainly seeing backscatter caused by email spoofing.

Spammers forge the “From” address on their emails. If they put your address in the From field and blast thousands of messages, every server that rejects one sends the bounce back to the forged sender — you. Your address was used as a disguise; your account was never touched.

Spammer forges your address Stranger’s server rejects ✕ Another server rejects ✕ A third server rejects ✕ Your inbox fills with bounces
Backscatter: the spammer wears your address as a mask, and every rejection is mailed back to you.

Good news and bad news. Your account isn’t hacked — but your domain is being impersonated. The fix is a correct SPF, DKIM and DMARC setup, which tells the world’s mail servers to reject anything pretending to be you. A strict DMARC policy is the single best defence against backscatter.

Real vs fake failure messages

Scammers copy the look of a bounce to trick you into clicking. A fake “delivery failure” usually wants you to hit a button to “release” or “resend” a message — that button leads to a phishing page. Here is how to tell them apart.

Genuine bounce

Comes from mailer-daemon at your own provider
Quotes an email you actually sent
Contains a real status code and reason
No buttons, no login prompts, no urgency

Fake / phishing

“Click here to release 3 held messages”
Sender domain doesn’t match your provider
Asks for your password to “verify”
References a message you never sent

Never click a button inside a delivery-failure email. A real bounce has nothing to click. If in doubt, check the link’s domain — or just delete it and resend your email normally.

How to stop and prevent bounces

Most avoidable bounces come down to one thing: the receiving server is not sure your mail is really from you. Three DNS records fix that. Set all three and your legitimate mail sails through — while forgeries in your name get rejected.

1 SPF Who may send Lists the servers allowed to send from your domain. 2 DKIM Proof of integrity Adds a signature proving the message was not altered. 3 DMARC The policy Tells servers what to do with fakes: reject or quarantine.
SPF authorises, DKIM signs, DMARC enforces. Together they stop both bounces and impersonation.

The practical checklist

  • Publish SPF, DKIM and DMARC for your sending domain — the biggest single win. See our SPF vs DKIM vs DMARC guide.
  • Clean your list. Remove hard-bounced addresses immediately; never keep mailing them.
  • Send from a real domain you control, not a free address forwarded through another service.
  • Warm up new domains slowly and keep volume steady rather than spiky.
  • Use a dedicated sending service that signs your mail, retries soft bounces, and shows every bounce with its reason code.

Gmail & Outlook specifics

Outlook — “Mail delivery failed: returning message to sender”

Outlook and Exchange show the reason under a heading like “Your message was not delivered” with a code such as 5.1.1 or 5.7.1. Click “More info on this error code”, but treat the reason line as the truth. For repeated 5.7.x rejections, the fix is your domain’s SPF/DKIM/DMARC, not Outlook settings.

Gmail — stopping delivery status notifications

You cannot switch off genuine failure notices from Gmail — they are generated by the receiving servers, not by Gmail. What you can do is stop the flood: if you are getting backscatter, tighten DMARC to p=reject; if a specific daemon keeps mailing you, create a filter for messages from mailer-daemon that do not match a message you sent. Never filter them blindly, though — you will miss real bounces.

Bottom line: don’t suppress bounce notifications — read them. A bounce you understand is a problem you can fix in minutes.

Frequently asked questions

Is a mail delivery failure message dangerous?

A genuine one is harmless — it’s just a report. The risk is fake ones designed to look like bounces so you’ll click a phishing link. Real bounces never ask you to log in or click a button.

Why did I get a failure for an email I never sent?

Because a spammer forged your address as the sender. The bounces from their rejected mail come back to you. It’s called backscatter, and a strict DMARC policy is the fix.

Should I resend a bounced email?

Only for a soft bounce (a 4xx code) — and usually the server retries for you. For a hard bounce (5xx), fix the address first; resending to a dead address just hurts your reputation.

What does “Mailer-Daemon” mean?

It’s the automated program on a mail server that generates delivery reports. Mail “from” Mailer-Daemon simply means the mail system, not a person, is writing to you.

How do I stop bounces for good?

Authenticate your domain (SPF + DKIM + DMARC), keep your address list clean, and send through a service that signs every message and reports bounces clearly.

Related reading

Fix email delivery on your site

SecureSMTP delivers WordPress, Shopify, and custom form emails with SPF + DKIM + DMARC alignment. Free tier covers most small sites.