Four layered checks — syntax, DNS/MX, SMTP handshake and risk scoring — answer the question "is this email real?" in under a second, without sending anything to the recipient. Here's how each layer works and how to wire them together.
RCPT TO — the server's response
code tells you if the mailbox exists, and (4) cross-check against disposable and
role-based databases.
Want the verdict right now? Paste an address into our free checker:
Verify an email now →200 free checks/month. No signup required for single lookups.
Catches ~70% of typos instantly and costs nothing. At minimum verify:
@ separating local part and domain.Don't roll your own regex — use a battle-tested library (egulias/email-validator
in PHP, email_validator in Python).
Ask DNS if the domain is set up to receive email. No MX records (and no fallback A record) means the address cannot be valid — reject before you spend an SMTP round-trip.
dig MX gmail.com +short
# 5 gmail-smtp-in.l.google.com.
# 10 alt1.gmail-smtp-in.l.google.com.
# ...
Cache MX results per domain — a 50k list typically has only a few thousand unique domains.
The decisive test. Open a TCP connection to the MX server, go through
EHLO → MAIL FROM → RCPT TO, then close
without sending DATA. The response to RCPT TO is the answer:
| Response | Meaning |
|---|---|
| 250 | Mailbox accepted (could still be catch-all) |
| 4xx | Temporary — retry with back-off |
| 550 | Mailbox doesn't exist — hard invalid |
| 554 | Your IP is blocked — your reputation, not theirs |
Full protocol walkthrough in our SMTP validation deep dive.
A mailbox can exist and still be worthless for your CRM. Layer on:
@10minutemail.com, Mailinator, TempMail and 15k+ others. See
disposable email detector.info@, sales@, support@ rarely engage.curl https://kaijuverifier.com/api/v1/verify-single \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"email":"alice@example.com"}'
→ 200 OK
{
"email": "alice@example.com",
"status": "valid",
"is_disposable": false,
"is_role": false,
"is_catchall": false,
"score": 0.98
}
See the full API documentation for PHP, Python and Node examples.
Use the SMTP handshake described in Step 3. You issue RCPT TO and close the
connection before DATA — nothing is delivered to the recipient.
Yes — KaijuVerifier includes 200 free checks/month, renewing monthly. No credit card required.
98% on representative lists. Catch-all domains are the hard ceiling.
Upload a CSV to the bulk cleaner. 10k emails take about 10 minutes and you download an enriched CSV.
A domain that accepts every recipient address, real or invented. SMTP returns 250 regardless, so the verdict is "risky" rather than "valid".
Real-time API, bulk CSV, 98% accuracy. No credit card.
Get started free