Email Validation

Validation Levels

Cleanmails offers two verification levels with different speed/accuracy tradeoffs.

Level 1 — Fast Analysis

Near-instant checks that don't require SMTP connections:

CheckSpeedWhat It Does
Syntax<1msRFC-compliant regex validation
MX Lookup~50msVerifies domain has mail servers
Disposable<1msChecks against 126,000+ disposable domains
Role Account<1msDetects info@, admin@, support@, etc.
Free Provider<1msFlags Gmail, Yahoo, Outlook, etc.
Domain Suggestion~5msLevenshtein distance typo correction

Speed: 10,000+ emails/minute

Use when: You need fast filtering, don't need deliverability confirmation, or port 25 is blocked.

Level 2 — Deep SMTP Handshake

Everything in Level 1, plus real SMTP verification:

CheckSpeedWhat It Does
SMTP Connect1-10sConnects to recipient's mail server on port 25
RCPT TO1-5sTests if the specific mailbox exists
Catch-All2-5sTests random addresses to detect accept-all domains
Google API1-3sGXLU endpoint for Gmail verification
Yahoo API2-5sSignup validation for Yahoo addresses
Outlook API1-3sGetSelfSignedKey for Microsoft addresses

Speed: 50-100 emails/second (network dependent)

Accuracy: >98.5%

Use when: You need to confirm deliverability before sending campaigns. Required for cleaning lists before outreach.

Choosing a Level

ScenarioRecommended Level
Signup form validationLevel 1 (instant feedback)
Pre-campaign list cleaningLevel 2 (maximum accuracy)
Port 25 blocked on your serverLevel 1 (SMTP won't work)
Large list (>50k) quick filterLevel 1 first, then Level 2 on valid results
CRM integration (real-time)Level 1 (fast response)

Catch-All Domains

Some domains accept all addresses (catch-all). Level 2 detects these by sending RCPT TO with random addresses. If the server accepts random addresses, the domain is marked as catch-all and individual deliverability can't be confirmed — result is unknown.

For bulk jobs, once a domain is identified as catch-all, all remaining emails on that domain skip the SMTP check (optimization).