Eklow

Why Did My Email Bounce? How To Read A Bounce, Recipient By Recipient

Why did my email bounce? How to read a bounce message, tell a hard bounce from a soft one, and spot whether a campaign's bounces come from the list or from one sending domain.

Sohaib Asghar5 min readDeliverability

Cover for why did my email bounce: an Eklow recipients view with scheduled, queued, sent and failed counts, a hard bounce marked 550 5.1.1, a soft bounce marked 452 4.2.2 and the server's diagnostic text.

Introduction

A bounce is the receiving side telling you, in a fairly standard format, exactly why it did not take your message. Most people never read that part. They see a count go up, assume the address was bad, and move on. Sometimes that is right. Sometimes the address is fine and the bounce is about the sender, and suppressing the contact fixes nothing.

The short answer: look at three things in the bounce. The status code (a 5 means permanent, a 4 means temporary), the enhanced code after it (5.1.x is the address, 5.7.x is you), and the server's own sentence, the diagnostic. Then look at the pattern across the campaign: bounces spread across every sending domain point to the list; bounces bunched on one domain point to that sender.

What A Bounce Message Contains

A bounce reaches you in one of two ways. Either the receiving server refuses the message during the SMTP conversation and your sending server gets the reply straight away, or the message is accepted and refused further along, and a delivery status notification (DSN) arrives in the sending mailbox later. RFC 3464 defines the machine-readable part of a DSN. The fields worth reading:

FieldExampleWhat it tells you
Final-Recipientrfc822; [email protected]Which address failed, after any forwarding
Actionfailed or delayedFailed is final; delayed means the server is still retrying
Status5.1.1The enhanced status code: class, subject, detail
Remote-MTAdns; mx.northbay.coWhich server refused it
Diagnostic-Codesmtp; 550 5.1.1 The email account that you tried to reach does not existThe receiving server's own reply, word for word
The machine-readable part of a typical DSN
Final-Recipient: rfc822; [email protected]
Action: failed
Status: 5.1.1
Remote-MTA: dns; mx.northbay.co
Diagnostic-Code: smtp; 550 5.1.1 The email account that you tried to
    reach does not exist.

Hard Bounce Or Soft Bounce?

A hard bounce is permanent: a 5xx reply, and when the enhanced code is 5.1.x, the address itself does not work. Stop mailing it. A soft bounce is temporary: a 4xx reply such as a busy server, a rate limit or a full mailbox, and the same message may be delivered later. Two exceptions catch people out: a full mailbox reported as 552 5.2.2 is still a real person, and a 5.7.x rejection is permanent for this message from this sender but says nothing bad about the address. The full reference, code by code, is in email bounce codes.

The Common Reasons, And What Each Looks Like

ReasonTypical bounceAddress problem or sender problem?
The mailbox does not exist550 5.1.1Address: remove it
The domain does not exist or takes no mail550 5.1.2, 5.1.10Address: remove it, check for a typo
The mailbox is full452 4.2.2, 552 5.2.2Neither: retry later
You are sending too fast421 4.7.28, 421 RP-001Sender: slow down
Your mail failed authentication550 5.7.26Sender: fix SPF, DKIM and DMARC
Your IP or domain is on a blocklist554 5.7.1 … blocked using …Sender: get delisted
The message was too big552 5.3.4Message: send it smaller

Read The Pattern, Not Just One Bounce

One bounce tells you about one address. A campaign's bounces, taken together, tell you where the problem is.

  • Mostly 5.1.1, spread across every sending domain: the list. Old exports, scraped or guessed addresses. Verify the rest before sending more; how to clean an email list has the order.
  • Mostly 5.7.x, bunched on one sending domain: that domain. Check its authentication and whether it is listed; email blacklist removal covers the portals.
  • Mostly 4xx rate limits at one receiving provider: your pace. Spread the campaign out; email throttling for cold email explains how.
  • Bounces concentrated on one recipient company: that company's mail server or filter. Pause sends to that domain and look at the diagnostic text.

To see this, you need to filter a campaign's recipients by the domain that sent to them and see the bounce code next to each one. A single bounce count for the whole campaign hides every one of these patterns.

What To Do With Each Kind

  1. Hard bounces on the address: suppress the address everywhere, not just in this campaign.
  2. Soft bounces: let them retry. If the same address soft-bounces campaign after campaign, it is probably abandoned.
  3. Policy rejections: keep the contact, fix the sender, then send again.
  4. A bounce rate that keeps climbing: stop the campaign and find out why before sending more. An automatic stop on a high bounce rate does this without waiting for you.

Email Bounce Questions

Why Did My Email Bounce When The Address Is Correct?

Because the receiving server refused the sender, not the address. Look for a 5.7.x code or words like "blocked", "policy", "unauthenticated" or a blocklist name in the diagnostic. Fix authentication or the listing and the same address will usually accept your mail.

Why Did A Bounce Arrive Hours Later?

The message was accepted by one server and refused by another further along, or the sending server kept retrying a temporary failure until it gave up. Both produce a delivery status notification rather than an immediate refusal.

What If The Bounce Has No Code At All?

Read the diagnostic text. "User unknown", "no such user" or "does not exist" is a hard bounce on the address; "blocked", "spam" or "policy" is about the sender.

Reading Bounces In Eklow

Every campaign has a Recipients tab. It opens with a summary of the send queue: Scheduled (everyone the campaign will send to, including contacts not queued yet), Queued with the time of the next send, then Sent, Failed and Canceled. Click a card to filter the list to it. When nothing is moving, plain notes underneath say why, for example that the campaign is outside its send window and when the next email is due.

Each recipient's status shows the outcome rather than just the last step: a contact who replied reads Replied, and a bounced one reads Hard bounce or Soft bounce with its code beside it, such as 550 5.1.1. Hover over it to see what the code means and the receiving server's diagnostic, word for word. When the campaign sends from more than one domain, a sending-domain filter narrows the list to the recipients one domain sent to, which is how you tell a list problem from a domain problem. Eklow reads bounces both from the SMTP reply and from the bounce reports that land in a connected mailbox with inbox access, and a recorded bounce adds the address to your suppression list and cancels the contact's remaining steps.

Keep reading

Run outbound from one place.

Connect your senders, build sequences, and keep replies moving.

Start freeExplore features