Email Validation: Methods and Tools That Work
How to run email validation properly: syntax, MX, SMTP probe, catch-all and disposable addresses without hurting your reputation.
How to run email validation the right way
Email validation is a four-layer sequence: check the address syntax, confirm the domain has MX records, run an SMTP probe against the mailbox, and filter risky addresses (disposable, role-based, catch-all). Clearing all four layers removes invalid addresses before you send, keeps hard bounces under 2%, and protects your sender reputation.
Layer 1. Syntax
First the address is checked against RFC 5322: one @ symbol, a valid local part and domain, no spaces or illegal characters. This catches obvious typos like john@@mail..com but does not prove the mailbox exists.
Layer 2. Domain MX records
Next you confirm the domain can receive mail at all. Querying MX records reveals the mail servers:
$ dig +short MX gmail.com
5 gmail-smtp-in.l.google.com.
10 alt1.gmail-smtp-in.l.google.com.No MX records means the domain cannot accept mail — the address is 100% invalid.
Layer 3. SMTP probe
The most accurate step emulates delivery without actually sending. The validator opens a connection to the MX server and stops at the RCPT TO command:
> HELO validator.yourtrend.online
> MAIL FROM: <probe@yourtrend.online>
> RCPT TO: <user@example.com>
< 250 2.1.5 Recipient OK # mailbox exists
< 550 5.1.1 No such user # mailbox does not existA 250 means the mailbox is accepted, a 550 means it is rejected. The connection closes on QUIT and no email is delivered.
Layer 4. Risky addresses
- Catch-all — the domain answers
250to any address, so the SMTP probe cannot confirm a specific mailbox. These are flagged as "risky". - Disposable — throwaway domains (mailinator.com, temp-mail.org). They live minutes and bounce within an hour.
- Role-based — info@, sales@, admin@. They often route to groups and generate complaints.
Limits of the SMTP probe
The SMTP probe is accurate but not omniscient. Some servers deliberately answer 250 to any address (catch-all) or apply greylisting — temporarily rejecting an unknown sender with a 4xx code, which can make the validator wrongly treat a mailbox as unreachable. Large providers (Gmail, Outlook) rate-limit probes from a single IP, so you cannot run a bulk check in one thread without risking a temporary block of the probing address.
Spam traps — the main hidden threat
A spam trap is an address that belongs to no real person and exists only to catch senders with poor hygiene. There are two kinds:
- Pristine traps — addresses that never opted in, published on decoy pages. Hitting one means a purchased or scraped list.
- Recycled traps — abandoned mailboxes a provider reactivated as traps. Hitting one means you have not cleaned your list in a long time.
A validator cannot always tell a trap from a live address, so the only real defense is to never buy lists and to remove inactive contacts regularly.
Real-time vs batch validation
Validation runs in two modes. Real-time validation on the signup form keeps a typo or a disposable domain out of your list from the start. Batch validation each quarter clears addresses that decayed over time: an employee left, a domain changed owner. Combining both modes is optimal.
Why dirty lists are dangerous
Sending to an unverified list damages reputation instantly:
| Metric | Healthy | Danger zone |
|---|---|---|
| Hard bounce | < 2% | > 5% |
| Spam traps | 0 | any number |
| Complaints | < 0.1% | > 0.3% |
Providers like Gmail and Mail.ru read a bounce spike as a sign of a purchased list and start filtering mail to spam or blocking the IP.
Risk scoring instead of yes/no
Modern validation returns a risk score, not a binary answer. An address can be syntactically valid, have MX, and accept mail, yet still belong to a disposable domain or be role-based — those are flagged "risky", not "valid". The practical approach is not to delete risky addresses blindly but to deprioritize them: keep them out of new-IP warm-up, do not send cold campaigns to them, and require confirmation via double opt-in. That way you keep potentially live contacts without staking your domain reputation on them.
Tools and automation
For a one-off check, use our free email validator: it runs all four layers and flags catch-all and disposable addresses. For ongoing cleaning, use the API — YourTrend validates the address at signup through SDKs for PHP, Node, Python and Go, so only live mailboxes reach your list.
- Validate the address on the signup form in real time.
- Run the whole list through the validator quarterly.
- Remove hard bounces immediately and move them to a suppression list.
- Block disposable domains at intake.
A hybrid approach — validation at intake plus periodic cleaning — keeps your database healthy. API details are in the documentation, and validation plans are on the pricing page.
On this page
← All articlesOne click. It tells us what to write next.
No ratings yet — yours would be the first.
Comments
Comments are read before they appear.