Browse templates

Soft bounce vs hard bounce: what the SMTP code inside the bounce tells you to do with that address.

Last checked Oct 1, 202622 min readSources named below

Definition

Email bounces are messages a receiving mail server refuses, returned to the sender as a bounce message. The soft bounce vs hard bounce split separates a temporary refusal, which the sending server may retry, from a permanent one, where the same request should not simply be sent again.

The split comes from SMTP itself. RFC 5321, the standard for the Simple Mail Transfer Protocol, gives every server reply a three digit code. A reply that starts with 4 is a transient negative completion: the command was not accepted, but the error condition is temporary.

A reply that starts with 5 is a permanent negative completion. The command was not accepted, the action did not occur, and the standard tells your sending server not to repeat the exact request in the same sequence.

Soft bounce and hard bounce are not terms in the standard. None of the RFCs cited on this page define them. They are vendor vocabulary: the labels email platforms put on those two classes of reply, and each platform draws the line in its own place.

So the code inside the bounce, not the label in the dashboard, is what tells a seller whether to wait, to suppress the email address, or to fix something on the sending side.

Email bounce meaning, and what a bounce message really is

The plain email bounce meaning is this: your message did not reach the mailbox, and something in the mail chain told you so. That refusal can happen in two places, and the difference decides what you receive and when.

  • Rejected during the SMTP conversation. The receiving server answers the RCPT TO or DATA command with a 4yz or 5yz reply, and your sending server never hands the message over. Your own server then writes the bounce.
  • Rejected after acceptance. The server answers 250 OK, takes responsibility for the message, then fails to deliver it. RFC 5321 says it must then mail a notification back to the address in the envelope return path.

That notification is the bounce you see in your inbox or in your sending tool. RFC 3464 calls it a delivery status notification, or DSN. Microsoft's documentation uses the same term, says it is also known as a bounce message, and calls the most common type a nondelivery report, or NDR.

What a bounced email looks like in your inbox

Yahoo's Sender Hub describes the familiar version: mail from a MAILER-DAEMON or a Mail Delivery Subsystem, with a subject similar to Failed Delivery. It says such messages normally have two parts, the reason for the bounce and a copy of your original message.

The reason is the part to read. In a standard DSN it sits in structured fields, and the raw reply from the remote server sits in a Diagnostic-Code field. A sending tool may show only a summary, so open the full bounce when the summary is vague.

What is not a bounce

An out of office reply is not a bounce. The message was delivered, and a person or a rule answered it. A message filed in spam is not a bounce either. In both cases there is no failure report, so neither belongs in your bounce numbers.

Soft bounce vs hard bounce, side by side

ComparedSoft bounceHard bounce
SMTP reply class4yz, transient negative completion5yz, permanent negative completion
Enhanced status class4.X.X, persistent transient failure5.X.X, permanent failure
What the standard saysThe SMTP client should try againThe client should not repeat the exact request
Typical causeFull mailbox, rate limit, busy server, greylistingMailbox does not exist, domain does not exist, delivery not authorized
What your sender doesQueues the message and retries on a scheduleStops and reports the failure
What you do with the addressLeave it, watch it, suppress only after repeatsSuppress it everywhere when the code points at the address
What it says about your dataLittle, unless the same code repeatsThe record is wrong, the person is gone, or you are blocked

One caution before you trust either column. A 4.X.X code is a persistent transient failure, which RFC 3463 defines as a valid message delayed or abandoned because a temporary condition persisted. When that condition outlives your queue, the same address produces a failure report anyway.

The reverse also happens. A 5yz reply about policy, such as 5.7.1, is permanent for that message, yet the address itself may be fine. RFC 5321 notes that a person can correct some permanent conditions later, for example after a spelling change or a change in account status.

Hard and soft are vendor labels, not standard terms

Because the labels belong to platforms, two tools can file the same bounced email in different buckets. The official help pages of two email marketing platforms show it clearly, and the differences matter when you compare reports across tools.

SituationMailchimp HelpHubSpot Knowledge Base
Mailbox fullListed as a common soft bounce reasonHard when the inbox is inactive or over quota for a long time, soft when it is full for a short time
Domain does not existListed as a soft bounce reason, noted as possibly temporaryNot named in either bounce list
Repeated soft bouncesConverted to a hard bounce after 7 soft bounces with no subscriber activity, up to 15 with prior activitySoft bounced contacts stay eligible for future emails
Still retryingNot described as a separate stateA pending bounce, retried for up to 72 hours before it becomes a soft bounce
Valid address that hard bouncedSays valid addresses occasionally hard bounceSays a strict security filter can cause it

Neither platform is wrong. Each one turns many server replies into a few buckets that drive its own suppression rules. The point for a seller is that a hard bounce count from one tool and a hard bounce count from another are not the same measure.

Where the standards themselves blur the line

  • A 552 that should be retried. RFC 5321 says clients should treat a 552 reply for too many recipients as temporary, because the older RFC 821 listed 552 for that case, where 452 is correct.
  • A 550 with a 4.x.x status. Microsoft documents its expired message report as 550 4.4.7: a permanent looking reply code carrying a transient enhanced status.
  • A soft fail in an RFC. RFC 6647, on greylisting, describes a 4xx reply as a transient (soft) fail. That is still a reply class, not a bounce category.

Where in the send a bounce happens

Your tool sendsmessage leaves the sending mailbox
MX lookupwhich server accepts mail for the domain
RCPT TOthe reply code decides everything
250 acceptedor 4yz deferred, or 5yz rejected
Queue and retryonly for 4yz replies
Bounce messageDSN sent to the return path
Sequencing toolSending serverReceiving serverReceiving serverSending serverYour reply mailbox

The lookup step is worth noting, because a domain with no working mail servers cannot accept anything at all. If you are not sure what that step does, the entry on MX records covers it.

When the lookup itself fails, the bounce is about the whole domain, not one mailbox. That case has its own codes and its own tests, covered in domain not found.

SMTP reply codes behind a soft bounce, the 4xx class

RFC 5321 defines the 4yz class as transient: the command was not accepted, the action did not occur, but the error condition is temporary and the action may be requested again. These are the codes your queue retries.

CodeStandard textWhat it can mean for a seller
421Service not available, closing transmission channelThe receiver is closing the connection. Read the text: Gmail uses 421 for rate limits and low reputation
450Requested mail action not taken: mailbox unavailable, for example mailbox busy or temporarily blocked for policy reasonsThe mailbox is not accepting right now
451Requested action aborted: local error in processingA problem on the receiving side, or a temporary policy check
452Requested action not taken: insufficient system storageNo room on the receiving system, or too many recipients in one transaction

Google publishes the exact strings its servers return. The documented examples include 452 4.2.2 for a recipient inbox that is out of storage space, 450 4.2.1 for a user receiving email too quickly, and a family of 421 4.7.28 replies for an unusual rate of email from your IP address or domain.

Yahoo groups its temporary errors the same way. Its error code page says a 421 or 451 indicates a temporary problem, lists causes from busy servers to traffic that looks like spam, and says you may retry sending later.

SMTP reply codes behind a hard bounce, the 5xx class

A 5yz reply is a permanent negative completion. RFC 5321 tells the client not to repeat the exact request in the same sequence, and notes that a person may correct some causes later, for example after a spelling change or a change in account status.

CodeStandard textWhat it can mean for a seller
550Requested action not taken: mailbox unavailable, for example mailbox not found, no access, or command rejected for policy reasonsThe classic hard bounce, and also the classic policy block
551User not local, with a forward path to try insteadThe address moved to another system
552Requested mail action aborted: exceeded storage allocationOver quota on this server, or a too many recipients reply that RFC 5321 says to treat as temporary
553Requested action not taken: mailbox name not allowed, for example mailbox syntax incorrectThe address itself is malformed in your data
554Transaction failedThe reply alone does not say why. Read the enhanced code and the text

Note what code 550 covers. The same number carries both "this person does not exist" and "we refuse your mail". Google's published replies show the difference in the text: 550 5.1.1 says the account does not exist, while 550 5.7.1 says the message is likely unsolicited and has been blocked.

Yahoo states the handling rule plainly. Its error code page says you should not retry an email that comes back with a 5xx error, and that list managers should have a policy for removing email addresses that generate 5xx bounces.

The second number: enhanced status codes

Modern servers add a second code in the form X.Y.Z, defined in RFC 3463. The first digit repeats the class: 2 for success, 4 for persistent transient failure, 5 for permanent failure. The second digit says where the problem sits, and the third names the precise condition.

Enhanced codeRFC 3463 meaningBounce type it belongs to
X.1.1Bad destination mailbox address: the part left of the @ sign is invalidHard. The RFC says it is useful only for permanent failures
X.1.2Bad destination system address: the part right of the @ sign is invalid for mailHard, permanent only
X.2.2Mailbox full: a per mailbox quota or physical capacity was exceededSoft. The RFC says to use it as a persistent transient failure
X.2.3Message length exceeds an administrative limit for that mailboxHard by definition, though the fix is your message, not the address
X.4.1No answer from hostSoft. The RFC says it is useful only as a persistent transient error
X.7.1Delivery not authorized, message refused, from per host or per recipient filteringHard by definition, but it is about you, not the address

What the middle digit tells you

The middle digit is the fastest way to decide who owns the problem. RFC 3463 assigns each subject an owner, and that owner tells you whether the fix is in your data, in your sending, or out of your hands.

SubjectRFC 3463 nameWhose problem it usually is
X.1Addressing statusYour data. The RFC says these errors can generally be corrected by the sender and retried
X.2Mailbox statusThe recipient, whose mailbox is assumed to be under their control
X.3Mail system statusThe destination system administrator
X.4Network and routing statusThe destination or an intermediate system administrator
X.5Mail delivery protocol statusImplementation errors or an unreliable connection
X.6Message content or media statusBoth sides, which must support the same content types
X.7Security or policy statusThe sender, the recipient, or both

This is the level a seller should read. The bare code 550 tells you only that a message failed. The pair 550 5.1.1 tells you to retire the record, while 550 5.7.1 tells you to leave the record alone and fix your sending.

RFC 5248 set up the IANA registry for these codes, so new ones are registered rather than invented by each vendor. Vendors still attach their own meanings: Microsoft uses 5.1.10 for recipient not found, while RFC 7505 registers 5.1.10 for a recipient domain that publishes a null MX.

Real provider codes, and what to do with each

Gmail, Microsoft and Yahoo all publish their bounce text. Reading the actual string beats guessing from the label your tool assigned to the bounced email, because the same number can carry more than one meaning.

Published replySourceYour move
550 5.1.1 The email account that you tried to reach does not existGoogle, Gmail SMTP errors and codesSuppress the address in every campaign, then look for a new contact
550 5.2.1 The email account that you tried to reach is inactiveGoogle, Gmail SMTP errors and codesTreat as permanent. The account is disabled or abandoned
550 5.2.1 The user you are trying to contact is receiving email at a rate that prevents additional messagesGoogle, Gmail SMTP errors and codesSame code, different cause. Do not suppress on the number alone
452 4.2.2 The recipient's inbox is out of storage spaceGoogle, Gmail SMTP errors and codesNothing. The queue retries and the address stays on the list
552 5.2.2 The recipient's inbox is out of storage space and inactiveGoogle, Gmail SMTP errors and codesTreat as permanent. Full and inactive together means nobody is reading
421 4.7.28 Gmail has detected an unusual rate of email, temporarily rate limitedGoogle, Gmail SMTP errors and codesSlow that sending mailbox down. This one is about you
550 5.7.1 This message is likely unsolicited email, so it has been blockedGoogle, Gmail SMTP errors and codesPause the campaign, fix targeting and authentication, keep the address
5.1.1 Bad destination mailbox address, or 5.1.10 Recipient not foundMicrosoft, nondelivery reports in Exchange OnlineSuppress. The address does not exist in the destination system
5.4.1 Recipient address rejected: Access deniedMicrosoft, nondelivery reports in Exchange OnlineSuppress. Microsoft says the recipient's address does not exist
5.4.1 Relay Access DeniedMicrosoft, nondelivery reports in Exchange OnlineKeep the address. Microsoft says mail server or DNS misconfiguration causes it
550 4.4.7 QUEUE.Expired; message expiredMicrosoft, error code 4.4.7 in Exchange OnlineExchange Online tried for 24 hours. Check the address and the receiving domain
Recipient does not existYahoo Sender Hub, SMTP error codesYahoo says not to retry and to remove the address from your list

Microsoft also documents 5.7.1 as delivery not authorized, meaning the sender is not allowed to send to that recipient, and says it often happens with distribution groups that accept mail only from members. No amount of list cleaning will change that.

Gmail's own use of codes can differ from the registry. Its reference uses 550 5.7.27 for a message that failed SPF, while RFC 7505 registers 5.7.27 for a sender domain with a null MX. Read the text next to the number every time.

Common hard bounce reasons

  • The person left. The mailbox was removed or disabled after a departure. Microsoft notes a 5.1.1 can occur when an address was valid before and was later changed or removed, which is how records go through data decay.
  • The address was guessed. A pattern such as first.last was inferred and never verified, so the part before the @ sign does not exist.
  • The domain is wrong or gone. A typo, a rebrand, an acquisition or an expired domain, reported as a bad destination system address. Google's wording is that it was not able to find the recipient domain.
  • Syntax errors in your file. Trailing spaces, two addresses in one cell, or a stray comma. Gmail answers 553 5.1.3 when the recipient address is not a valid RFC 5321 address.
  • You are refused by policy. The server returns a permanent code because of filtering, authentication or reputation, not because anything is wrong with the address.

A domain that declares it takes no mail

RFC 7505 lets a domain publish a null MX, a single MX record with a dot as its target, to say it accepts no email. A server rejecting mail for that reason should reply 556 with status 5.1.10, so the failure shows up on the first attempt.

The same RFC says a domain with no MX record and no mail listener can leave senders retrying for a long period, typically a week. A null MX turns that slow soft failure into an immediate hard one, which is better for everyone, including you.

Common soft bounce reasons

  • Mailbox full. RFC 3463 classes a full mailbox as a persistent transient failure, because the recipient can delete messages and free space.
  • Rate limits. The receiver is throttling you or the recipient, as in Google's documented 450 4.2.1 and 421 4.7.28 replies.
  • Server or connection trouble. No answer from host, a busy server, or insufficient system storage on the receiving side. Yahoo lists busy servers among its temporary errors.
  • Your reputation or content. Yahoo says temporary deferrals can follow user complaints, content with characteristics of spam, a poor IP reputation or unusual traffic patterns.
  • Temporary authentication or DNS failure. Yahoo names a name server that was temporarily unavailable, and authentication results that could not be determined because of a temporary error.

Greylisting: a refusal designed to be retried

RFC 6647 describes greylisting as degraded service for an unknown or suspect source, typically lasting minutes or a few hours. In its narrow sense, it means answering a new sender with an SMTP temporary failure and accepting the retry later.

The technique works because, as the RFC explains, much spam software does not retry after a temporary failure. A legitimate server retries, and the second attempt gets through. That is why a first send from a new mailbox can show soft bounces that clear on their own.

The RFC also says some confusion in the industry treats any temporary failure as greylisting. A 4.7.28 rate limit is not greylisting. It is a statement about your volume, and it needs a response from you.

Retry behavior: what happens after a soft bounce

After a 4yz reply, your sending server queues the message. RFC 5321 sets the shape of what follows, and leaves the exact parameters to each system: it says the retry algorithm must be configurable.

  • A delay is required. The sender must wait after a failed attempt, and the retry interval should generally be at least 30 minutes.
  • Retries back off. The standard describes two connection attempts in the first hour a message sits in the queue, then one every two or three hours.
  • There is a give-up point. Retries continue until the message is transmitted or the sender gives up, and the give-up time generally needs to be at least 4 to 5 days.
  • You may get a delay notice first. RFC 3464 defines an Action value of "delayed" for a message the server is still trying to deliver, separate from "failed", and an optional Will-Retry-Until date.
SystemHow long it keeps tryingWhat you see at the end
RFC 5321 guidanceGive-up time generally at least 4 to 5 daysA failure notification to the return path
Microsoft Exchange OnlineRepeated attempts over 24 hoursAn NDR with 550 4.4.7, message expired
HubSpotA pending bounce, retried for up to 72 hoursA soft bounce in the email report

Two practical consequences. A soft bounce is not final until the queue expires, so resending the same message from another tool the same day is wasted effort. And a bounce that lands days later belongs to a message you sent days ago, not to today's step.

How to read the bounce message itself

A delivery status notification carries structured fields, defined in RFC 3464. Four of them answer almost every question a seller has about a failed send.

Final-RecipientThe address that failed, which can differ from the one you typed after forwarding
Actionfailed, delayed, delivered, relayed or expanded
StatusThe X.Y.Z code: 2 success, 4 transient failure, 5 permanent failure
Diagnostic-CodeThe raw reply from the remote server, the most useful line in the report
Read in this orderAction, then Status, then the diagnostic text

RFC 3464 makes one distinction explicit: Action and Status are not the same thing. A message with a temporary status of 4 can be reported as "delayed" while the server keeps trying, then reported as "failed" once it gives up, with the same status code both times.

The standard also explains why the diagnostic line matters. The Status field exists so any system can parse the report, but it is sometimes less precise than the actual reply, so the Diagnostic-Code field keeps the original text.

A handling rule you can apply without thinking

Bounce handling breaks down when every bounce is a judgment call. Turn it into three branches, read from the code in the diagnostic line rather than from the wrapper your tool displays. The rule below is this page's recommendation.

  1. Status 5.1.x, or 5.2.1 with an inactive account: the address is wrong

    Suppress it in every campaign and mark the record in the CRM. Then decide whether to replace the contact at that account, which is a lead enrichment task, not a sending one.

  2. Status 4.x.x: the condition is temporary

    Do nothing. Let the queue retry on its own schedule. Suppress only after the address soft bounces across several separate sends, a number you write down in advance.

  3. Status 5.7.x, or 4.7.x repeating: the problem is you

    Stop the sending mailbox, not the contact. Check authentication, volume and targeting, and treat it as a deliverability incident rather than a data cleanup.

The sorting step matters more than the actions. A rule that suppresses everything that bounced quietly deletes good contacts whose servers were busy, and hides the block that is actually costing you replies.

Bounce rate, and what mailbox providers publish

Bounce rate is the share of messages in a send that bounced. The formula used on this page is bounced messages divided by messages sent, times 100, counted per sending mailbox and per campaign, because that is the level at which something can be paused.

A worked example written for this page, with invented round numbers: 400 emails sent from one mailbox, 8 bounced, a bounce rate of 2 percent. Split those 8 by status before you react. Six 5.1.1 replies and two 4.7.28 replies call for two different fixes.

The provider pages cited here do not set a bounce rate threshold. What they publish is a set of requirements and a few direct instructions about bounces, and mailing addresses that do not exist works against them.

  • Google, for mail to personal Gmail accounts: authenticate with SPF or DKIM, use a TLS connection, publish valid forward and reverse DNS records, and keep spam rates reported in Postmaster Tools below 0.3%.
  • Google, above 5,000 messages a day: SPF and DKIM plus DMARC, a From domain aligned with SPF or DKIM, and one-click unsubscribe on marketing and subscribed messages.
  • Google, on bounces: if messages start bouncing or being deferred, reduce sending volume until the SMTP error rate decreases, then increase slowly again. Google also lists automatically unsubscribing recipients with multiple bounced messages.
  • Yahoo, all senders: SPF or DKIM, a valid forward and reverse DNS record for sending IPs, and a spam rate below 0.3%. Bulk senders must also publish DMARC and honor unsubscribes within 2 days.
  • Yahoo, on bounces: monitor hard and soft bounces as well as inactive recipients, and remove invalid recipients promptly. Its error page also has an excessive unknown recipients error, which tells senders to remove addresses that generate bounces.
No benchmarks here

Sending platforms and verification vendors publish average bounce rates measured on their own users. Those figures are not quoted on this page. Track your own rate per sending domain and per list source, and compare it with your own history.

The routine that keeps that rate low, from capture checks to a suppression list, is email hygiene. This page stays on the bounce itself.

Bounce handling in a sequencing tool

An outreach tool sits between you and the mail server, so its bounce settings decide how much damage a bad list can do. These are the settings worth checking before a sales cadence starts.

  • Stop the sequence on a hard bounce. Otherwise step two goes to the same dead mailbox, and the pattern repeats on every later step.
  • Share the suppression list. A bounce in one campaign has to block that address in all of them, and in future imports.
  • Do not count a bounce as a reply. Bounce messages land in the reply mailbox, where they can end a sequence or mark a dead lead as engaged.
  • Alert per mailbox, not only per campaign. A cluster of 4.7.x replies on one sending mailbox is a reputation event, even when the campaign looks fine.
  • Store the status code, not just the word bounce. HubSpot, for one, says a bounced one-to-one email shows less detail than a marketing email, with the full response in your own inbox.

The same logic applies to a mass send from a marketing platform, covered in email blast. The difference is that outbound tools send from real mailboxes, so the reputation cost of a bad list lands on the mailbox your reps also reply from.

Catch-all domains and bounces that arrive late

Some domains accept mail for every address, real or not, and sort it out afterwards. A check before the send cannot confirm a mailbox there, because the server will not say whether it exists. The entry on catch-all email covers those domains.

The result is a bounce that arrives after acceptance. The server answered 250 OK, took responsibility for the message, found no mailbox, and mailed a nondelivery report back. RFC 5321 requires exactly that behavior for a delivery failure that follows acceptance.

RFC 5321 also says some failures after acceptance are unavoidable, for example when a server cannot validate every address during the conversation, when the target is a mailing list, or when the server is only relaying.

For a seller this means two things. A clean check on a catch-all domain proves little, and the bounce number for a campaign is not final on the day it sends. Read it again a few days later.

Blocks, spam folders and silent drops

No bounce does not mean the inbox. A message can be accepted and filed in spam. RFC 5321 acknowledges that dropping mail without notifying the sender is permitted in practice, while warning that it should be considered only where there is very high confidence that a message is seriously fraudulent or otherwise inappropriate.

That gap is why bounce rate alone is a weak deliverability measure. It counts only the failures loud enough to announce themselves. Reply rate per sending mailbox, and spam rate in the providers' own postmaster tools, catch quiet failures that bounces never show.

The wider picture, from authentication to placement, is in email deliverability. A warm sending setup before volume matters too, a topic covered in email warm up and across the cold email hub.

Backscatter: bounces for mail you never sent

Backscatter is a nondelivery report you receive for a message you did not send. Microsoft describes the mechanism: spammers use real email addresses as the From address, and when a nonexistent recipient receives the spam, the destination server sends the NDR to the forged sender.

Two details from RFC 5321 explain the limits. Notifications must be sent with a null reverse path, an empty pair of angle brackets in the MAIL FROM command. When the return path is already null, the receiver must not send a notification at all, which stops bounce loops.

The same standard says that when a message is rejected for hostile content, bounce messages should not be sent unless the receiving site is confident they will be usefully delivered.

Microsoft says its service tries to drop messages from dubious sources without generating an NDR, but that sending absolutely no backscatter is almost impossible given the volume of email flowing through it.

For a sales team, backscatter looks like a pile of bounces in a reply mailbox for campaigns that do not exist. Do not import those addresses as suppressions, and do not auto-reply to them. Check whether the volume followed a spam run against your domain, and check your authentication records.

Reducing bounces before the send

SourceKnow where the record came from

Keep the source on every record. When one form, import or supplier keeps producing bounced emails, you can retire that source instead of cleaning up after it.

ConfirmConfirm addresses at the point of capture

Yahoo recommends double or confirmed opt-in to reduce invalid recipients, and Google says to confirm each recipient's address before subscribing them.

RefreshRe-check records that sat unused

People change jobs. In this page's view a list that was clean two quarters ago should be checked again before a large send, which is the argument for a maintained email marketing database.

PaceMatch volume to the mailbox

Google advises starting with a low volume to engaged users, increasing slowly, and avoiding sudden volume spikes if you have no history of sending large volumes.

In this page's view, data work does most of it. The rest is sending setup: correct records for the domain, a real mailbox behind the address, and a volume that does not look like a burst to the receiving server.

Mistakes with email bounces

  • Suppressing every bounce, soft ones included, and losing contacts whose mailbox was simply full that week.
  • Reading the label in the dashboard instead of the diagnostic code inside the bounce.
  • Comparing hard bounce counts across two tools as if both used the same definition.
  • Treating a 5.7.x policy refusal as a data problem, then cleaning the list while the real block stays in place.
  • Reading a vendor code with the registry meaning, such as Microsoft's 5.1.10 or Gmail's 5.7.27.
  • Pushing the rest of a send through a bounce spike instead of reducing volume, as Google advises.
  • Re-importing a bounced address next quarter because suppression lived inside one campaign.
  • Counting a bounce as a reply, so a dead contact is marked as engaged and the sequence stops.
  • Judging a campaign on send day, before the late bounces from catch-all domains arrive.
  • Answering backscatter, or adding it to a suppression list as if those addresses were your prospects.

In a sequence

A hard bounce at a target account is information, not only a data error. A 5.1.1 can mean the person left, and the account may still have the problem you sell against. The message below asks a colleague, and says plainly why you are writing to them. It was written for this page.

Email to a colleague after a hard bounce
Subject: Wrong person at {{companyName}}?

Hi {{firstName}},

I wrote to {{formerContact}} about {{problem}} last week, and the message came back saying that account no longer exists.

Your name came up as the person who owns {{area}} at {{companyName}} now. If that is right, is {{problem}} still on your list this quarter?

If it sits with someone else, tell me who and I will leave you out of it.

{{senderName}}
Backfires when

You did not read the code, and the bounce was a policy refusal rather than a missing mailbox.

Then the first contact is still there, you wrote to a second person for no reason, and the account has now heard from you twice.

Read the status code first, and never paste the bounce into the email.

Frequently asked questions

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

A soft bounce is a temporary refusal carried by a 4yz SMTP reply, such as a full mailbox or a rate limit, and the sending server retries it.

A hard bounce is a permanent 5yz refusal, such as a mailbox that does not exist. The labels come from email platforms, not from the SMTP standard.

What does it mean when an email bounces?

It means a mail server refused your message and something in the chain told you so. You receive a bounce message, which Microsoft calls a delivery status notification and, in its most common form, a nondelivery report. It usually contains the reply code the receiving server gave.

Which SMTP codes are soft bounces?

Codes in the 4xx class. RFC 5321 calls them transient negative completion replies: the command was not accepted, but the condition is temporary and the client should try again. The 4xx replies it lists are 421, 450, 451, 452 and 455, often paired with an enhanced 4.X.X status code.

Which SMTP codes are hard bounces?

Codes in the 5xx class, which RFC 5321 calls permanent negative completion replies. The mailbox and transaction replies are 550, 551, 552, 553 and 554. The enhanced code matters: 5.1.1 means the mailbox does not exist, while 5.7.1 means your mail was refused by policy.

What does 550 5.1.1 mean?

Google documents that reply as the email account you tried to reach does not exist, and RFC 3463 defines X.1.1 as a bad destination mailbox address, useful only for permanent failures. Suppress the address and look for another contact at that account.

What does 421 4.7.28 mean?

Google publishes a family of 421 4.7.28 replies for an unusual rate of email from your IP address, domain or netblock, with mail temporarily rate limited. It is a soft bounce about your sending, not about the recipient, so slow that mailbox down.

How long does a server retry a soft bounce?

RFC 5321 says the retry interval should generally be at least 30 minutes, and the give-up time generally needs to be at least 4 to 5 days.

Systems set their own windows: Microsoft says Exchange Online retries for 24 hours, and HubSpot retries a pending bounce for up to 72 hours.

Should I remove soft bounces from my list?

Not on the first one. Let the queue retry, since a full mailbox or a busy server is temporary by definition. Google lists automatically unsubscribing recipients with multiple bounced messages, and Mailchimp converts repeated soft bounces into hard bounces, so write down your own repeat limit.

Should I remove hard bounces immediately?

Yes, when the enhanced code points at the address, such as 5.1.1 or an inactive account. Yahoo says not to retry 5xx errors and that list managers should have a removal policy. A 5.7.x refusal is different: that is a policy block about you, so fix the sending instead.

What is a good bounce rate for cold email?

Google and Yahoo do not set a bounce rate threshold on the pages cited here. They set spam rate limits below 0.3%. Google says to reduce volume when messages start bouncing, and Yahoo says to remove invalid recipients promptly. Compare your own rate per list source against its history.

Why do emails bounce after they were accepted?

Because some servers accept mail before they can check every address, then discover there is no mailbox. RFC 5321 requires a notification after a delivery failure that follows acceptance, so the bounce arrives later. That is why a catch-all domain cannot be fully checked before a send.

Is a full mailbox a soft bounce or a hard bounce?

RFC 3463 treats a full mailbox as a persistent transient failure, and Gmail answers 452 4.2.2. Gmail uses 552 5.2.2 when the inbox is full and inactive. HubSpot counts a mailbox full for a long time as a hard bounce, while Mailchimp lists a full mailbox as a soft bounce.

What is backscatter in email?

It is a nondelivery report you receive for a message you never sent. Microsoft describes how it happens: a spammer uses your real address as the From address, and the destination server sends the failure notice to that forged sender rather than to the spammer.

Do bounces hurt my sender reputation?

Repeated bounces are a signal providers act on. Yahoo has an error for excessive unknown recipients and tells senders to remove addresses that generate bounces, and Google tells senders to reduce volume while bounces and deferrals continue. Providers publish spam rate limits rather than bounce limits.

Sources and reading
  1. RFC 5321, Simple Mail Transfer Protocol, sections 4.2.1, 4.2.3, 4.5.3.1.10, 4.5.4.1, 4.5.5, 6.1 and 6.2, for the 4yz and 5yz reply classes, the code texts, the 552 too many recipients rule, retry interval and give-up time, the null reverse path, failures after acceptance and silent dropping, checked Oct 1, 2026.
  2. RFC 3463, Enhanced Mail System Status Codes, sections 2 and 3, for the class and subject sub-codes and the meaning of X.1.1, X.1.2, X.2.2, X.2.3, X.4.1 and X.7.1, checked Oct 1, 2026.
  3. RFC 5248, A Registry for SMTP Enhanced Mail System Status Codes, for the IANA registry of enhanced status codes, checked Oct 1, 2026.
  4. RFC 3464, An Extensible Message Format for Delivery Status Notifications, sections 2.3.2, 2.3.3, 2.3.6 and 2.3.9, for the Final-Recipient, Action, Diagnostic-Code and Will-Retry-Until fields and the note on Action versus Status, checked Oct 1, 2026.
  5. RFC 7505, A Null MX No Service Resource Record, for the null MX format, the week of retries it prevents and replies 556 with 5.1.10 and 550 with 5.7.27, checked Oct 1, 2026.
  6. RFC 6647, Email Greylisting: An Applicability Statement for SMTP, for the definition of greylisting, its use of temporary failures and the confusion between greylisting and any temporary failure, checked Oct 1, 2026.
  7. Google Workspace Admin Help, Gmail SMTP errors and codes, for the exact Gmail replies quoted, including 550 5.1.1, 550 5.2.1, 552 5.2.2, 452 4.2.2, 450 4.2.1, 421 4.7.28, 553 5.1.2, 553 5.1.3, 550 5.7.1 and 550 5.7.27, checked Oct 1, 2026.
  8. Google, Gmail Help, Email sender guidelines, for the personal Gmail scope, the requirements for all senders and above 5,000 messages a day, the 0.3% spam rate, automatic unsubscribe after multiple bounces, reducing volume when messages bounce, slow volume increases and confirming addresses, checked Oct 1, 2026.
  9. Microsoft Learn, Email nondelivery reports and SMTP errors in Exchange Online, for the DSN and NDR terms and codes 5.1.1, 5.1.10, 5.4.1 and 5.7.1, checked Oct 1, 2026.
  10. Microsoft Learn, Fix email delivery issues for error code 4.4.7 in Exchange Online, for 550 4.4.7 and the 24 hours of delivery attempts, checked Oct 1, 2026.
  11. Microsoft Learn, Backscatter in cloud organizations, for the definition of backscatter and how forged senders receive it, checked Oct 1, 2026.
  12. Yahoo Sender Hub, SMTP Error Codes, for the 4XX and 5XX groups, the rule not to retry 5xx errors, the removal policy for list managers, the excessive unknown recipients and recipient does not exist errors, and the sample failed delivery message, checked Oct 1, 2026.
  13. Yahoo Sender Hub, Sender Requirements and Recommendations, for the Yahoo sender requirements, the spam rate limit, the 2 day unsubscribe rule, confirmed opt-in and the guidance on hard and soft bounces, checked Oct 1, 2026.
  14. HubSpot Knowledge Base, Email bounce types, for HubSpot's hard, soft, pending and global bounce categories and the 72 hour retry for pending bounces, checked Oct 1, 2026.
  15. Mailchimp Help, Soft vs. Hard Bounces, for Mailchimp's hard and soft bounce reasons and its conversion of repeated soft bounces into hard bounces, checked Oct 1, 2026.
  16. The example email and the worked bounce rate example on this page were written for this page. No bounce rate averages are quoted, because the published ones are measured on a vendor's own users, and none of the provider pages cited here sets a bounce rate threshold. No vendor is ranked.
Take the sequence with you

The 10-day cadence, five templates, one email.

Five touches across email, LinkedIn and phone, five templates with placeholders marked, and the first-30-days checklist. One email.

Build a LinkedIn or outreach tool? Jeluvi is read by the people who use them. See how partners appear on Jeluvi.