Why 'looks like an email' isn't the same as 'is a real inbox'
Format validation and deliverability are two completely different problems. Confusing them is a common source of bugs and false confidence.
"Validating" an email address usually means one of two very different things, and mixing them up leads to either overly strict forms that reject real addresses, or overly loose ones that accept obvious garbage.
Format validation
This checks that a string is *shaped* like an email address — has an @ symbol, a domain with at least one dot, no illegal characters. It's fast, requires no network calls, and catches typos and obviously malformed input. What it cannot tell you is whether that address actually exists or can receive mail — "notarealaddress@gmail.com" passes format validation just as easily as a real inbox does.
Domain and deliverability checks
A step further, checking whether the domain has valid MX records (mail server entries in DNS) confirms the domain is actually set up to receive email at all — catching typo'd domains like gmial.com that pass format validation but would bounce immediately. This still doesn't confirm the specific mailbox exists, just that the domain could theoretically receive mail.
True verification
The only way to actually confirm an inbox exists and is monitored is to send something to it and get a response — a confirmation link, a one-time code. This is why signup flows that matter (anything tied to account recovery, billing, or notifications) should always include an actual confirmation email rather than relying on format or domain checks alone.
A sane approach for most forms
- Use format validation client-side for instant feedback on obvious typos.
- Add a domain/MX check server-side if bounced signups are a real cost to you.
- Reserve full email confirmation for flows where a wrong address is actually costly — account creation, payment receipts, password resets.
Processa's email validator checks both format and domain/MX records in one step, which catches most bad input without needing a full confirmation-email flow for lower-stakes forms.
More from the blog
Understanding JWTs: what's actually inside that token
JWTs look like gibberish but they're just three pieces of base64. Here's how to actually read one, and the security mistakes to avoid.
DevRegex patterns every developer ends up needing
You don't need to memorize regex. You need to recognize the handful of patterns that cover 90% of real use cases.
Get new posts by email
We write practical guides on file processing, developer tools and product updates.
No spam. Unsubscribe any time.