Email Bounces Explained: Hard vs Soft Bounces and Codes

By the MailboxTemp Editorial Team · Published · Updated

Email bounces explained in one line: a bounce is an email that could not be delivered, returned to the sender with a report saying why. A 5xx code means a hard bounce (permanent, such as an unknown user) and a 4xx code means a soft bounce (temporary, such as a full mailbox). Read the status code first, then the diagnostic text beside it, because that wording names the actual cause.

What actually happens when an email bounces

Email delivery is a conversation between servers. Your mail client hands a message to your outgoing server, which looks up the recipient domain's mail exchanger in DNS and connects to it. That receiving server replies with a three-digit SMTP status code at each stage. If it accepts the message, delivery continues. If it refuses, the sending server either gives up immediately or retries later, and eventually returns a report to the address in the message's return path.

That report is the bounce. It usually arrives as a separate message with an empty or system-generated sender, a subject like "Undelivered Mail Returned to Sender" or "Delivery Status Notification (Failure)", and a body containing the original headers plus the receiving server's explanation. The modern standard for machine-readable reports is the Delivery Status Notification defined in RFC 3464, which wraps the failure details in a message/delivery-status part.

Two details matter more than people expect. First, bounces go to the envelope sender, not necessarily the "From" address you see, so a mailing list or an automated system may receive the bounce rather than you. Second, a bounce is not the same as a spam rejection you never see: some filters silently discard mail after acceptance, which produces no bounce at all. If nothing arrives and nothing bounces, the message was probably accepted and then filtered.

What is the difference between a hard bounce and a soft bounce?

The split between hard and soft bounces is the single most useful distinction in the whole subject, because it determines whether retrying is sensible.

The trap is that a soft bounce can become a hard one. A mailbox that stays full past the retry window turns into a permanent failure from the sender's point of view. Equally, some servers return a 5xx for a condition that is arguably temporary, because their policy is simply to refuse. Always read the diagnostic text alongside the code rather than trusting the number alone.

How do you read a bounce message line by line?

Bounce reports look intimidating because they quote the entire original message. Skip to the parts that carry information:

  1. The status code. Look for a line beginning Status: in the delivery-status part, or an SMTP reply such as 550 5.1.1 User unknown in the diagnostic text. The first digit is the verdict: 5 is permanent, 4 is temporary.
  2. The enhanced status code. The dotted number after the SMTP code (5.1.1, 4.2.2 and so on) narrows down the cause. These are registered in the IANA sub-registry that accompanies RFC 3463.
  3. The diagnostic text. The human-readable sentence from the receiving server. This is where you learn whether the mailbox is missing, full, or blocked by policy.
  4. The action field. Values such as failed, delayed or delivered tell you what the reporting server did. A delayed report is a warning, not a final bounce.
  5. The original recipient. Confirm which address failed, especially if you sent to several.

If you want to check the path a message took before it failed, the techniques in our guide to reading email headers apply to bounce reports too, since they carry the original headers inside them.

What do the common bounce codes mean?

The table below covers the codes you will meet most often. Enhanced codes are conventions that most large providers follow, but wording and exact behaviour vary between servers and change over time, so treat the diagnostic text as authoritative.

CodeTypical meaningHard or softWhat usually helps
5.1.1Recipient address does not existHardCheck the spelling; contact the person another way
5.1.2Domain exists but has no such host or mailbox routeHardVerify the domain; it may be retired
5.1.3Bad syntax in the addressHardFix the address format
5.2.2Mailbox full (quota exceeded)Often hard in practiceRecipient must free space; sender can retry later
5.4.1No route to the destination hostHardDomain's mail records are broken or missing
5.7.1Delivery refused by policy, often a blocklist or spam filterHardSender reputation and authentication need attention
4.2.2Mailbox full, reported as temporarySoftRetry later; recipient clears space
4.4.1No answer from the destination hostSoftUsually resolves on retry
4.7.0Temporary policy refusal, including greylistingSoftLegitimate senders retry and get through

Greylisting deserves a note: some servers reject unfamiliar senders once with a 4xx on purpose, on the theory that spam software will not retry. A real mail server will, usually within minutes. If you see a single temporary refusal followed by successful delivery, that is the system working as designed, not a fault.

Why do legitimate emails bounce when the address looks fine?

Several causes have nothing to do with a typo:

If you are the recipient waiting for a message that never appears and no bounce reaches you, the problem is more likely filtering than bouncing. Our checklist for when a verification email is not arriving covers that scenario step by step.

What should senders do about bounces?

For anyone running a list, a product's signup flow, or a transactional mail system, bounces are feedback, not noise.

One honest caveat: many receiving systems now accept mail and discard it later, so a clean send log does not prove delivery. If you need certainty, use a mechanism that asks the recipient to act, such as a confirmation link.

What can recipients do when mail to them bounces?

If people tell you their mail to your address bounces, work through the likely causes in order:

  1. Confirm the exact address. Ask for a screenshot of the bounce. Aliases, plus-addressing and old addresses are frequent culprits.
  2. Check your mailbox quota. A full mailbox produces 4.2.2 or 5.2.2 replies. Clear space or upgrade the plan.
  3. Check filters and blocks. If you set a rule that rejects certain senders, their mail bounces rather than landing in spam.
  4. Check domain settings. If you own the domain, confirm its mail records still point somewhere valid; a lapsed hosting plan breaks delivery silently.
  5. Consider whether the address is still alive. Temporary inboxes expire by design. If you use one for a signup and later need password resets, the address will bounce, which is why a stable alias is often the better choice for anything long-lived.

There is nothing a recipient can do about a sender-side policy block except ask the sender to fix their authentication or reputation. Bounces are usually one-sided problems.

Sources

In short

Read the code first: 5xx means stop, 4xx means wait. The diagnostic text tells you whether the mailbox is missing, full or blocked, and that in turn tells you whether the fix belongs to the sender or the recipient. Senders should prune hard bounces, retry soft ones on a schedule, and treat policy refusals as a reputation and authentication problem. Recipients should check quota, filters and whether the address still exists. And remember the quiet failure mode: mail that is accepted and then filtered produces no bounce at all, so silence is not proof of delivery.

Frequently asked questions

What is the difference between a hard bounce and a soft bounce?

A hard bounce is a permanent failure, reported with a 5xx code, such as an address that does not exist. A soft bounce is temporary, reported with a 4xx code, such as a full mailbox or a busy server. Senders should remove hard-bounced addresses and retry soft bounces for a limited period before giving up.

What does the code 550 5.1.1 mean in a bounce message?

It means the receiving server has decided the recipient address does not exist. The 5 shows it is a permanent failure and 5.1.1 is the enhanced code for an unknown user. Check the spelling of the address and try another contact route; retrying the same address will not work.

Why did my email bounce when the address is correct?

Common causes include a full mailbox, a policy block against your sending domain, failed SPF, DKIM or DMARC checks, an oversized message, or a recipient-side rule that rejects certain senders. The diagnostic text in the bounce report usually names the reason, so read it before assuming a typo.

Can I stop bounce messages from arriving?

You can reduce them by keeping your address book current and by not sending to addresses you are unsure about. Bounces are generated by mail servers, so you cannot block them at the source, but you can filter them in your mail client. Most arrive with a system sender and a delivery-status subject line.

Does a missing bounce mean my email was delivered?

No. Many receiving systems accept a message and then discard or quarantine it without notifying the sender, so silence proves nothing. If delivery matters, use a confirmation link or another channel. This is also why a clean send log is not the same as proof of delivery.

Get a free temporary inbox →