When an email cannot be delivered, the receiving mail server returns a bounce code explaining why. Understanding these codes is essential for maintaining a clean email list and good sender reputation.
Bounce code structure
SMTP responses use a three-digit code, optionally followed by an enhanced status code:
Component
Format
Example
Meaning
Basic SMTP code
3 digits (XYZ)
550
Class (5=permanent); category; specific
Enhanced status code
X.Y.Z
5.1.1
Class.Subject.Detail
Human-readable text
Free text
"User unknown"
Provider-specific explanation
Basic SMTP code classes
First digit
Class
Meaning
Action
2XX
Success
Message accepted
No action needed
4XX
Temporary failure (soft bounce)
Try again later; may resolve
Retry; monitor
5XX
Permanent failure (hard bounce)
Will not succeed on retry
Remove from list or investigate
Hard Bounce Codes (5XX) -- Remove or Investigate
550 -- Mailbox unavailable
Enhanced code
Meaning
Common text
Action
5.1.1
User unknown / mailbox does not exist
"The email account does not exist"
Remove from list immediately
5.1.2
Bad destination domain
"Host unknown"
Check domain; remove if domain invalid
5.1.3
Bad destination mailbox syntax
"Invalid address format"
Check email format; correct or remove
5.1.6
Destination mailbox has moved
"Mailbox has moved, no forwarding"
Remove; find updated address
551 -- User not local
Enhanced code
Meaning
Common text
Action
5.1.6
Mailbox moved; no forwarding
"User not local; try [other address]"
Try suggested address; remove original
552 -- Mailbox full / message too large
Enhanced code
Meaning
Common text
Action
5.2.2
Mailbox full (can be temporary)
"Over quota"
Soft bounce initially; hard bounce after 3+ failures
5.3.4
Message too large
"Message size exceeds fixed limit"
Reduce email size; not a list problem
553 -- Mailbox name not allowed
Enhanced code
Meaning
Common text
Action
5.1.3
Invalid email address syntax
"Mailbox syntax incorrect"
Verify email format; correct or remove
554 -- Transaction failed / policy rejection
Enhanced code
Meaning
Common text
Action
5.7.1
Delivery not authorised; message refused
"Message rejected due to policy"
Check content; check sender reputation
5.7.13
Sender account disabled
"Sender account disabled"
Sender-side issue; check your sending account
5.7.23
SPF validation failed
"SPF check failed"
Fix SPF record
5.7.25
Reverse DNS failed
"Reverse DNS check failed"
Fix PTR record for sending IP
5.7.26
DMARC policy violation
"Message failed DMARC"
Fix DMARC alignment
556 -- Domain does not accept mail
Enhanced code
Meaning
Common text
Action
5.1.10
Null MX (RFC 7505)
"Domain does not accept mail"
Remove from list; domain configured to reject all email
Soft Bounce Codes (4XX) -- Retry, Then Investigate
421 -- Service not available
Enhanced code
Meaning
Common text
Action
4.7.0
Temporary connection issue
"Try again later"
Retry in 30-60 minutes
4.7.1
Connection rate limited
"Too many connections from your IP"
Reduce sending speed; spread over time
450 -- Mailbox unavailable (temporary)
Enhanced code
Meaning
Common text
Action
4.2.1
Mailbox temporarily disabled
"Mailbox busy"
Retry in 1-4 hours
4.7.1
Greylisting
"Try again later" (first-time sender delay)
Retry in 5-30 minutes; normal anti-spam measure
451 -- Requested action aborted
Enhanced code
Meaning
Common text
Action
4.3.0
Temporary system error
"Internal server error"
Retry in 1-4 hours
4.3.2
System not accepting messages
"System overloaded"
Retry in 1-4 hours
4.7.1
Rate limiting / throttling
"Too many messages"
Slow down sending; spread over hours
452 -- Insufficient storage
Enhanced code
Meaning
Common text
Action
4.2.2
Mailbox full (temporary)
"Over quota; try later"
Retry in 24-48 hours; convert to hard bounce after 3 failures
4.3.1
Mail system full
"Insufficient system storage"
Retry in 1-4 hours
Provider-Specific Bounce Messages
Gmail / Google Workspace
Error message
Meaning
Action
"The email account that you tried to reach does not exist"
Address invalid
Remove from list
"You have reached a limit for sending mail"
Sending rate limit hit
Slow down; wait 24 hours
"Our system has detected that this message is likely unsolicited mail"
"550 Requested action not taken: mailbox unavailable"
Address invalid
Remove from list
"553 5.7.1 [BL21] Connections will not be accepted from [IP]"
IP blocklisted
Request delisting via Yahoo Postmaster
"421 4.7.0 [TS01] Messages from [IP] temporarily deferred"
Rate limiting
Slow down; wait and retry
"554 delivery error: dd This user doesn't have a yahoo account"
Account does not exist
Remove from list
Bounce Category Quick Reference
Category
Examples
List action
Sender action
Invalid address (hard)
5.1.1, 5.1.2, 5.1.3, 556
Remove immediately
None (list quality issue)
Mailbox full (soft, then hard)
4.2.2, 5.2.2
Retry 3 times over 72 hours; then remove
None (recipient-side)
Content / policy rejection
5.7.1, 554
Keep on list
Review email content; fix authentication
Authentication failure
5.7.23, 5.7.25, 5.7.26
Keep on list
Fix SPF, DKIM, DMARC records
Rate limiting (soft)
4.7.1, 421, 451
Keep on list
Slow sending speed; throttle
Blocklist (hard or soft)
Various 5.7.X
Keep on list
Request delisting; improve practices
Server error (soft)
4.3.0, 4.3.1, 4.3.2
Keep on list; retry
Retry later; not your issue
Preventing Bounces Before Sending
Before sending to any email list, verify and clean your addresses. Upload your email lists (CSV, TXT, XLSX) to Email Extractor to extract valid email addresses and remove duplicates. While Email Extractor performs format-level extraction and deduplication (catching typos in email format, removing invalid syntax and eliminating duplicates), follow up with a dedicated email verification service for mailbox-level checks that catch 5.1.1 (user unknown) bounces before they happen. Clean extraction followed by verification reduces bounce rates from the 10-20% range common with unverified lists down to under 2%.