Bounce Doctor: is it a bad address or a block on your sending?
In short: Sorts every bounce in a pasted batch of NDRs or a CSV export into bad address, missing domain, sender block, security gateway or temporary, explains each code in plain English and builds suppress, retry and review files. Limit: It explains bounces you already have; it can't tell which of your remaining addresses will bounce next. That needs a mailbox check.
Paste your bounce messages or upload the bounce export from your sending tool. Bounce Doctor reads each SMTP code and explains it: bad addresses (5.1.1) and dead domains go on a suppression list, while 5.7.x blocks, security gateways and 4.x.x soft bounces are about your sending or timing, so those contacts stay. It runs in your browser, so nothing is uploaded.
Price: this tool is free. Checking a whole email list is from $9/mo, and the first 100 checks are free with Google, no card. See pricing
By SimpleVerifier Team · Last updated · Runs in your browser; nothing you paste is sent to us
How do I tell a bounce from a block?
- Export your bounces. In Instantly or Smartlead, filter leads by Bounced and export the CSV. Mailchimp, HubSpot, Brevo, SendGrid, Mailgun and Amazon SES all export bounce reports. Raw "Undeliverable" or "Delivery Status Notification" messages and SES JSON notifications work too.
- Paste the text or upload the file. The email column and the reason, code and type columns are found by name.
- Press Diagnose bounces. Each row gets a class, the SMTP code, the mailbox provider or gateway, a plain-English reason and a link to the page for that code.
- Read the summary. If more than a few bounces are blocks, the problem is your domain or IP, not your list: check your domain health before the next send.
- Download
suppress.csvand import it into your sending tool's block list. Keepretry.csvfor the next send and readreview.csvby hand.
Example
- You enter
- An Instantly export of 11 bounced leads with a
Bounce Reasoncolumn: Gmail550-5.1.1, Microsoft5.1.10and5.4.1 Access denied, three Outlook.com5.7.515and S3140 rejections, Yahoo554 5.7.9, a Mimecast refusal, a452 4.2.2over quota, an NXDOMAIN and a421 4.7.0. - You get
- 4 to suppress (3 bad addresses, 1 dead domain), 4 sender or reputation blocks, 1 security gateway, 2 to retry. The top reason is Outlook's authentication rule (
550 5.7.515), and the sender-health warning points at the sending domain, not the list. - Limits
- Runs in your browser; up to 50,000 CSV rows or 2 MB of pasted bounce text per run.
Is it a bounce or a block?
A bounce is about the address and a block is about you. In the enhanced status codes of RFC 3463, the middle number says which: 5.1.x is the address (5.1.1 no such user), 5.2.x the mailbox, and 5.7.x security or policy, meaning your authentication, IP, domain or content. A 5.7.x bounce says nothing bad about the contact.
The mix tells you where to look. Mostly 5.1.1, and the list is stale or badly sourced. Mostly 5.7.x from one provider, such as a wave of Outlook 550 5.7.515 rejections while Gmail delivers, and the problem is your sending domain. Deleting those contacts would throw away real people and fix nothing.
Which bounces should I suppress?
Suppress hard bounces for a bad address: 5.1.1, Microsoft's 5.1.10 RecipientNotFound, Yahoo's 554 delivery error: dd, and disabled mailboxes (5.2.1). Suppress addresses whose domain doesn't exist or has no mail server (5.1.2, 5.4.4, NXDOMAIN). Those go in suppress.csv.
One that people read the wrong way round: Microsoft 365's 550 5.4.1 Recipient address rejected: Access denied sounds like a block, but Microsoft documents it as an address the tenant doesn't know (Directory-Based Edge Blocking). Bounce Doctor puts it in the suppression list.
Don't suppress 4.x.x soft bounces after one try, or 5.7.x blocks at all. Retry soft bounces on the next send, and fix blocks on your side. Handling soft bounces covers the timings.
What does a security gateway bounce mean?
Many companies put a filter such as Mimecast, Proofpoint or Barracuda in front of their mailboxes. When it refuses a message, the bounce comes from the filter, often with its own wording ("Email rejected due to security policies") and a link to its own help page. The mailbox may exist and be fine.
Treat a gateway bounce as a signal about how you send to that company: plain text, fewer links, a warmed inbox and a low daily volume. Gateways often quarantine cold email without bouncing it at all, so a few gateway bounces usually mean more mail is being held silently. The email provider lookup shows which of your prospects sit behind one.
Which bounce exports does it read?
Any CSV with an email column and at least one column holding the reason, code, status or type. That covers the bounce exports of Instantly, Smartlead, lemlist, Mailchimp, HubSpot (bounce reason and category), Brevo, SendGrid (reason and status), Mailgun (delivery-status.code and delivery-status.message) and Amazon SES (diagnosticCode, bounceType). SES bounce notifications pasted as JSON are read too.
Pasted messages work the same way. Gmail and Outlook "couldn't be delivered" notices and RFC 3464 delivery status blocks (Final-Recipient, Status, Diagnostic-Code) are split per recipient, so one paste can hold hundreds of bounces. Up to 50,000 rows are read per file.
What does each bounce class mean, and what goes in which file?
| Class | Typical codes | What to do | File |
|---|---|---|---|
| Bad address | 5.1.1, 5.1.10, 5.2.1, 5.4.1 Access denied, "user unknown" | Suppress forever | suppress.csv |
| Domain doesn't exist | 5.1.2, 5.4.4, NXDOMAIN, no MX | Suppress | suppress.csv |
| Sender or reputation block | 5.7.x, block lists, DMARC or SPF failures, 535 login errors | Fix your sending, keep the contact | review.csv |
| Security gateway | Mimecast, Proofpoint, Barracuda refusals | Change how you send, don't suppress yet | review.csv |
| Mailbox full or temporary | 4.x.x, 4.2.2 mailbox full, 421 4.7.0 rate limit | Retry later | retry.csv |
| Other or unknown | No code, or no clear meaning | Read the message | review.csv |
Who uses this tool, and for what?
- Cold emailers
- After step 1 of a sequence, export the bounced leads from Instantly or Smartlead, suppress the true
5.1.1s before the follow-ups fire, and see whether the rest are blocks on one sending domain. - Agencies
- When a client says the list was bad, show which bounces were bad addresses and which were reputation blocks on the sending inboxes. The annotated CSV is the evidence.
- Newsletter and marketing teams
- Read a Mailchimp, Brevo or HubSpot bounce report as reasons rather than one bounce count, and catch a DMARC or block-list problem before the platform pauses the account.
- Developers on SES, SendGrid or Mailgun
- Paste the bounce events or notifications from a bad send to see the split by code and provider in one place, without writing a script.
What can’t this tool tell you?
- It explains bounces you already have; it can't tell which of your remaining addresses will bounce next. That needs a mailbox check.
- The class comes from the code and the server's own words. Some servers put a misleading code on a policy block; when the text names a block list, spam or authentication, the block wins.
- The provider is read from the bounce text, or from the recipient's domain for Gmail, Outlook.com, Yahoo and other consumer mail. For business domains with no host in the bounce, it can be blank.
- Up to 50,000 CSV rows or 2 MB of pasted text per run. Everything runs in your browser and nothing is sent anywhere.
Common questions
- How do I know if an email bounced or was blocked?
- Read the enhanced status code in the bounce. 5.1.x means the address is bad, which is a bounce. 5.7.x means the server refused your message for security or policy reasons, which is a block on your sending, and the address may be fine.
- What does 550 5.1.1 mean?
- The mailbox doesn't exist on that domain. It is a permanent hard bounce: remove the address, because every resend counts against your sender reputation.
- Should I remove soft bounces?
- Not after one. Soft bounces (4.x.x, mailbox full, rate limits) are temporary. Retry on the next send and suppress the address only if it keeps failing for days or weeks.
- Why are my cold emails bouncing?
- Either the list has bad addresses (5.1.1, dead domains), or receiving servers are refusing your sending (5.7.x, block lists, failed SPF, DKIM or DMARC). The share of each tells you whether to clean the list or fix your domain.
- How do I upload a suppression list to Instantly?
- Instantly's Global Blocklist takes a CSV with one email address or domain per row and no other columns, under 5 MB per file. Bounce Doctor's copy button gives exactly that: one address per line.
- Is my bounce data uploaded anywhere?
- No. Bounce Doctor runs in your browser. The file is read on your device and the downloads are built there, so the addresses and bounce text never leave the page.
Sources
Clean the list before the next send.
A bounce report only tells you about the addresses you already mailed. The rest of the list has the same kinds of dead mailboxes in it, and each one becomes a hard bounce recorded against your domain the moment you send.
- A real SMTP mailbox check on every row, before anything is sent
- Dead and mistyped addresses split out, so they never reach your sending tool
- Catch-all, disposable and role addresses flagged alongside
One plan, cancel anytime, no contract. Sign in with Google and your first 100 email checks are free, no card. The free tools stay free either way.