How to Verify an Email Address: Step-by-Step Guide
Whether you need to check one address or clean an entire list, here are the manual and automated methods available — with honest tradeoffs for each.
Why Verify Before You Send?
Sending to unverified addresses risks hard bounces, spam complaints, and damage to your sender reputation. A 2% bounce rate can trigger ESP throttling. A 0.10% complaint rate triggers Gmail filtering. Verification eliminates both risks at the source.
Verification also protects your domain from being associated with poor-quality sending — reputation damage that can persist for months even after you clean up your list.
Method 1: Manual Syntax Check
The simplest check is confirming the address follows valid email syntax per RFC 5322:
Valid syntax pattern:
[email protected]Common syntax errors to catch:
Syntax checking alone catches typos but cannot determine if the address is actually live. It is a necessary first step, not a complete solution.
Method 2: Manual DNS / MX Record Lookup
After confirming valid syntax, check whether the domain has mail exchange (MX) records — DNS entries that specify which servers handle incoming mail for that domain.
Run this in your terminal (macOS / Linux):
nslookup -type=MX gmail.comOr using dig:
dig MX gmail.com +shortIf no MX records are returned, the domain cannot receive mail. No MX means a guaranteed hard bounce.
MX checks confirm the domain can receive mail but cannot confirm the specific mailbox exists. A domain might have MX records while [email protected] does not exist.
Method 3: Manual SMTP Handshake
The most thorough manual method is an SMTP handshake — connecting to the mail server and asking whether the mailbox exists without sending a message.
Manual SMTP check (terminal):
This works for many domains but has significant limitations: catch-all domains always return 250, many servers block port 25 from residential IPs, and greylisting may cause false negatives. It is also completely impractical at scale.
Method 4: Automated Verification with FareOf
All three checks in under 2 seconds
FareOf combines syntax, MX, SMTP, disposable detection, catch-all detection, and role account flagging into a single API call. For bulk lists, upload a CSV and receive results in minutes.
Manual vs Automated: Comparison
| Method | Accuracy | Scale | Time per address |
|---|---|---|---|
| Syntax check | Low | Any | < 1ms |
| MX record lookup | Medium | Any | ~100ms |
| Manual SMTP | High* | 1–10 addresses | 5–30 seconds |
| FareOf API | High (98%+) | Unlimited | < 2 seconds |
* Manual SMTP accuracy limited by catch-all domains and server-side blocking.
Verify any email address now — free
Single checks need no account. Bulk verification and API access available on any FareOf plan.
Try the verifier