Deliverability, Troubleshooting, Cold email
Cold Email Bounce Codes Explained: 5.1.1, 5.7.1, 5.7.26, 4.7.28 and More
A bounce message starts with a code. The first digit tells you whether to retry or stop, and the rest tells you whether the address, the mailbox or your sending reputation is the problem.

In this article
A bounce code starting with 4 is temporary, so the server will retry. A code starting with 5 is permanent, so stop sending to that address. After that, the middle digits tell you the cause: 5.1.1 means the address does not exist, 5.2.2 means the mailbox is full, and 5.7.x means the receiver refused you for a policy or reputation reason, which is the one to take seriously.
How to read a code
A code such as 550 5.1.1 has two parts. The first, 550, is the SMTP reply. The second, 5.1.1, is the enhanced code in three numbers: class, subject and detail. Class 4 is a temporary failure, class 5 a permanent one. Subject 1 is the address, 2 the mailbox, 3 the mail system, 4 the network, 5 the protocol and 7 security or policy.
| Code | Usual meaning | What to do |
|---|---|---|
| 5.1.1 | The address does not exist (user unknown) | Remove it. A rising share of these means a poor list. Verify addresses before sending |
| 5.2.2 | The recipient's mailbox is full | Treat as undeliverable for now. Do not keep retrying in a sequence |
| 4.x.x | A temporary problem: greylisting, rate limiting, a busy server | Let the server retry. If it repeats for many recipients at one provider, slow down |
| 5.7.1 | Refused for policy or reputation reasons | Read the text after the code. It often names a blocklist or a rule |
| 5.7.26 | Gmail: the sender is not authenticated | Fix SPF and DKIM, and check that DMARC passes with alignment |
| 4.7.28 (Gmail) | Gmail is rate limiting you because mail looks unsolicited | Pause, lower volume, check complaints, and check the list |

Permanent bounces from a bad list: 5.1.1
These are the bounces you can fully control. Each one hurts your reputation a little, and a high share looks like a scraped list. Remove every hard bounce from your lists at once and verify new lists before the first send. See the bounce rate guide for what is normal.

Policy blocks: the 5.7 family
Codes starting 5.7 are the ones to investigate, because they are about you, not the recipient. The text after the code usually says why. Typical reasons are failed or missing authentication, a listing on a blocklist, a bad reputation for your domain or IP, or content the receiver does not accept. Work through them in order.
- Check SPF, DKIM and DMARC for the sending domain, and read the headers of a delivered message to confirm dmarc=pass.
- Look up your sending domain and IP on blocklists.
- Look at your complaint and bounce numbers and at what changed recently: volume, list, template or tracking domain.
- If it is Gmail 4.7.28, or a similar rate limit, cut volume sharply for a few days rather than retrying harder.
Frequently asked questions
What is the difference between a 4xx and a 5xx bounce?
A 4xx code is a temporary failure and the sending server retries. A 5xx code is permanent and the message will not be delivered, so stop sending to that address.
What does 550 5.1.1 mean?
The recipient address does not exist. Remove it from your list.
What does Gmail error 5.7.26 mean?
Gmail refused the message because the sender is not authenticated. Fix SPF and DKIM for the sending domain and check that DMARC passes.
What should I do about 4.7.28 from Gmail?
Treat it as Gmail rate limiting you. Pause sending, reduce volume, and check your list quality and complaint rate before ramping up again.


