
You run a list through an email verifier and every address comes back with a label: valid, risky, catch-all, unknown, disposable. But what do these statuses actually mean, and more importantly, what should you do with each one? Getting this wrong is expensive. One marketer ran 12,000 addresses through three different verifiers in the same week and the tools disagreed loudly: one marked 847 addresses risky, another called 312 of those same addresses valid, and a third returned unknown for 600 that the others had clear opinions on.
That disagreement is the reality of email verification in 2026. Tools promising 98 to 99% accuracy cannot always agree on a sample you could count on your fingers. The reason is that most people never learn what these status codes mean at the protocol level, or which ones are hard technical facts versus soft judgment calls.
This guide explains every email verification status you will encounter. It covers the four standard industry categories that nearly every tool uses (valid, invalid, risky, unknown), then breaks down each specific status in detail, including the granular results MailTester.Ninja returns: Accepted, Limited, Rejected, Disposable, No MX, Catch-All, MX Error, Timeout, SPAM Block, and Greylisted. By the end, you will know exactly how to act on each result.
Contents
- How Email Verification Produces a Status
- SMTP Response Codes Behind Each Status
- The 4 Standard Email Verification Status Categories
- Valid / Deliverable / Accepted
- Invalid / Undeliverable / Rejected
- Risky and Its Subtypes
- Unknown and Its Subtypes
- Every MailTester.Ninja Status Explained
- Email Verification Statuses Across Different Tools
- Why Verifiers Disagree on the Same Email
- How to Act on Each Status
- Frequently Asked Questions
How Email Verification Produces a Status
Every email verification status comes from the same underlying technical process. Understanding the sequence helps you interpret what each label is really telling you. Most verifiers follow four steps, and the status you get reflects how far through this sequence an address gets.
The status you receive reflects how an address behaves across these four steps. Most disagreement between tools happens at steps 3 and 4.
At the SMTP stage, the verifier connects to the recipient's mail server and issues a RCPT TO command asking whether the mailbox exists, without ever sending an actual email. The server's response determines the core result: a 250 response means the address is valid, while a 550 response means the mailbox does not exist. Some servers return ambiguous responses, which is what produces unknown results. As infrastructure providers like Twilio SendGrid note, SMTP acceptance does not always equal final deliverability. For the full picture of how this fits into your email program, see our complete email deliverability guide.
SMTP Response Codes Behind Each Status
Every email verification status ultimately traces back to a numeric SMTP response code returned by the recipient mail server. These codes are the raw signal that tools interpret into friendly labels. Knowing them helps you understand exactly why an address received its status, and they are the same codes you will see in bounce messages.
| SMTP code | Meaning | Resulting status | Type |
|---|---|---|---|
250 | Requested action completed, mailbox exists | Valid / Accepted | Success |
251 | User not local, will forward | Valid | Success |
421 | Service not available, try again later | Unknown / Timeout | Temporary |
450 | Mailbox unavailable, busy or temporarily blocked | Greylisted / Unknown | Temporary |
451 | Local error in processing | Unknown / MX Error | Temporary |
452 | Insufficient system storage | Limited | Temporary |
550 | Mailbox not found or access denied | Invalid / Rejected | Permanent |
551 | User not local | Invalid | Permanent |
552 | Mailbox full, storage limit exceeded | Limited / Invalid | Permanent |
553 | Mailbox name not allowed, invalid format | Invalid | Permanent |
The first digit tells you the category at a glance. A code starting with 2 means success, the action worked. A code starting with 4 is a temporary failure, meaning you should retry later, which is what produces unknown and greylisted statuses. A code starting with 5 is a permanent failure, which produces invalid and rejected statuses and means you should remove the address.
The 4 Standard Email Verification Status Categories
Despite different naming across tools, nearly every email verifier sorts addresses into four top-level categories. Learning these four makes every tool's output readable, even when the specific labels differ.
| Category | What it means | Safe to send? | Other names |
|---|---|---|---|
| Valid | Mailbox exists and accepts mail | Yes | Deliverable, Accepted, OK |
| Invalid | Mailbox does not exist | Never | Undeliverable, Rejected, Bad |
| Risky | Deliverable but uncertain or low quality | With caution | Accept-all, Catch-all, Low quality |
| Unknown | Verification could not complete | Retry first | Unverifiable, Blocked, Greylisted |
Valid / Deliverable / Accepted
This is the status you want. It means the verifier confirmed, with high confidence, that the mailbox exists and is associated with a valid, active account that can receive email. These are the best contacts for your campaigns and are safe to send to without restriction.
In MailTester.Ninja, this result appears as Accepted. The recipient mail server confirmed the mailbox exists and will accept mail. This is the green light: the address passed every check and returned a clean positive response at the SMTP level.
Across the industry you will see this same outcome labeled Deliverable (Verifalia, Emailable), Valid (Hunter, Snov.io), or simply OK. They all mean the same underlying thing: the SMTP server returned a positive 250 response confirming the mailbox.
Invalid / Undeliverable / Rejected
This status is the clear opposite. The address failed verification because the mailbox does not exist, the domain cannot receive mail, or the format is broken. Sending to these addresses produces hard bounces, which directly damage your sender reputation, so they should be removed from your list immediately.
MailTester.Ninja returns Rejected when the mail server explicitly refuses the address because the mailbox does not exist. This corresponds to an SMTP 550 response, the server's way of saying there is no such recipient.
No MX means the domain has no mail server (no MX records) configured at all, so it physically cannot receive email. The domain might exist as a website, but it is not set up for mail.
Other tools call this Undeliverable (Verifalia, Emailable), Invalid (Hunter, Snov.io), or break it into sub-reasons like Invalid Domain and Invalid Syntax. The common thread is certainty: the verifier knows the address cannot receive mail.
Risky and Its Subtypes
Here is where verification gets nuanced. Risky is not a single protocol response. It is a tool-level judgment that an address is technically deliverable but carries elevated risk, whether because of how the domain is configured or what kind of address it is. The risky bucket usually contains several distinct subtypes, each needing different handling.
A Catch-All (or accept-all) domain is configured to accept mail for every address, even mailboxes that do not exist. The server returns a positive response regardless, so the verifier cannot confirm whether a specific mailbox is real. MailTester.Ninja flags these as Catch-All because, in its own words, the recipient email cannot be definitively verified.
Disposable addresses come from temporary or burner email providers, designed to expire shortly after creation. People use them to bypass signup forms or avoid follow-up mail. They are technically deliverable for a short window but worthless for any real campaign.
MailTester.Ninja returns Limited when the recipient mailbox is over its storage quota or is hitting a rate limit. The mailbox exists and is valid, but it may be temporarily unable to accept new mail.
A fourth common risky subtype is the role-based address, like info@, sales@, or support@. These exist but are usually shared among several people and tend to generate high spam complaint rates, so many tools (notably Snov.io) flag them as risky by default. They are a business judgment call, not a protocol fact.
Unknown and Its Subtypes
Unknown does not mean an address is bad. It means the verification could not be completed, usually because the recipient server prevented a definitive answer. These addresses often need a retry rather than removal. Several specific conditions produce an unknown result.
Greylisting is an anti-spam technique where the mail server temporarily defers unfamiliar senders, expecting legitimate ones to retry. It blocks the verifier's probe, so the address cannot be confirmed in a single pass. MailTester.Ninja labels these Greylisted.
Timeout means the recipient mail server did not respond within the expected window. The address may well be valid, but the server was slow, unreachable, or temporarily down during the check.
SPAM Block indicates the recipient mail server has strong spam protection that blocked the verification attempt. The server is actively refusing probes to prevent directory harvesting, which hides whether the mailbox exists.
MX Error means the domain has mail server records, but an error occurred when trying to reach or communicate with that mail server. Unlike No MX, the records exist; the problem is a connection or configuration fault at verification time.
Across tools, this category appears as Unknown (Hunter, Emailable), Blocked (Hunter), or specific failure reasons. The shared meaning is always the same: the verifier needs another attempt, not a deletion.
Every MailTester.Ninja Status Explained
MailTester.Ninja returns more granular statuses than the basic four-bucket model, which gives you clearer guidance on exactly why an address landed where it did. Here is the complete reference, mapped to the standard categories.
| MailTester status | Standard category | Meaning | Action |
|---|---|---|---|
| Accepted | Valid | Mailbox exists and accepts mail | Send |
| Limited | Risky | Mailbox over quota or rate limited | Send, monitor |
| Rejected | Invalid | Mailbox does not exist | Remove |
| Disposable | Risky | Temporary or burner address | Remove |
| No MX | Invalid | Domain has no mail server | Remove |
| Catch-All | Risky | Domain accepts all addresses | Segment |
| MX Error | Unknown | Mail server error on connection | Retry |
| Timeout | Unknown | Mail server did not respond | Retry |
| SPAM Block | Unknown | Server has strong spam protection | Retry |
| Greylisted | Unknown | Server temporarily deferred the probe | Retry |
Email Verification Statuses Across Different Tools
One of the most confusing parts of email verification is that every tool uses its own vocabulary for the same underlying results. An address labeled Accepted in one tool is Deliverable in another and Valid in a third. This table maps the equivalent statuses across the major verification tools so you can translate any result.
| Standard category | MailTester.Ninja | ZeroBounce | Hunter | NeverBounce |
|---|---|---|---|---|
| Valid | Accepted | Valid | Valid | Valid |
| Invalid | Rejected, No MX | Invalid | Invalid | Invalid |
| Risky | Catch-All, Disposable, Limited | Catch-All, Spamtrap, Abuse | Accept-all, Disposable | Catchall, Disposable |
| Unknown | Timeout, Greylisted, SPAM Block, MX Error | Unknown, Greylisted | Unknown, Blocked | Unknown |
Notice that MailTester.Ninja breaks each category into more granular statuses than most competitors. Where a tool might simply return Unknown, MailTester.Ninja tells you specifically whether the issue was a Timeout, Greylisting, a SPAM Block, or an MX Error, so you know exactly why an address could not be verified and whether a retry is worthwhile.
This is why comparing tools on labels alone is misleading. What matters is the accuracy of the underlying verification, the granularity of the statuses, and the pricing model. A tool that returns a vague Unknown and charges you for it is far less useful than one that tells you precisely why an address failed and prices fairly. For a deeper comparison, see our guide to the best email verification tools.
Why Verifiers Disagree on the Same Email
If you have ever run the same address through two tools and gotten different answers, you are not imagining it. The disagreement is real and it has specific causes. Understanding them helps you trust the right result.
How to Act on Each Status
Knowing what a status means is only half the value. The other half is having a clear policy for each one. Here is a simple, proven framework you can apply to any verification result.
| Status category | Policy | Why |
|---|---|---|
| Valid / Accepted | Send freely | Confirmed deliverable, lowest risk |
| Invalid / Rejected / No MX | Remove immediately | Guaranteed hard bounce |
| Catch-All | Segment, send carefully | May be valid, carries bounce risk |
| Disposable | Remove or block at signup | Goes dead quickly, no engagement |
| Unknown (Timeout, Greylisted, etc.) | Retry, then decide | Often deliverable, just needs another pass |
The single most effective habit is to build this policy into your workflow so it runs automatically: valid addresses get sent, invalid ones get blocked, catch-all gets segmented, and unknown gets held for a recheck. Verifying at the point of capture, then again before each major send, keeps your list clean without manual effort. This protects your sender reputation and keeps your bounce rate low on every campaign.
Frequently Asked Questions
Danila has spent the last few years deep in email deliverability, helping SaaS companies and growth teams fix the infrastructure problems that silently kill their outbound results. As COO of MailTester.Ninja, he oversees product and operations with a single obsession: making email verification fast, accurate, and genuinely useful for the people who need it most.
See every status on your list in seconds
MailTester.Ninja returns all ten verification statuses with real-time SMTP accuracy: Accepted, Catch-All, Disposable, Greylisted, and more. Reliable catch-all detection, spam trap flagging, and zero data storage, at a fraction of incumbent prices.
Verify your list for freeReal-time SMTP verification · 10 detailed statuses · Catch-all detection · GDPR compliant

