Sign up and contact support to get 100 free checks.Sign up free
EmailCheckPro workflow illustration for Email Verification vs Email Validation: What Each Step Tells You
A visual overview of the workflow discussed in this EmailCheckPro article.

Email validation confirms an address is written correctly; email verification checks whether it is deliverable at check time, and each belongs at a different point in a workflow.

Email verification vs email validation comes down to two different questions. Validation asks whether an address is written in an acceptable format: one @ sign, a local part, a domain, and no illegal characters. Verification asks whether a correctly formatted address is deliverable, meaning it can receive mail at the time of the check. Validation runs instantly in your own code and costs nothing, but it cannot tell you whether a mailbox exists. A deliverability check, such as the EmailCheckPro Email Deliverability Check, returns deliverable or undeliverable without sending anything to the address. Most teams need both: validation first to catch typos, then a deliverability check on the addresses that pass.

What Email Validation Checks

Validation is a set of format rules applied to the text a person typed or a file contains. It never contacts anything outside your application. Typical rules include:

  • Exactly one @ separating a local part and a domain.
  • No spaces, commas, or unquoted special characters.
  • A domain with at least one dot and a plausible top-level label.
  • Length limits. RFC 5321 caps the local part at 64 octets and a full forward path at 256 octets, so anything longer is safe to reject.

Browsers already apply a deliberately simplified rule set for <input type="email">; the HTML Living Standard describes its definition as a willful violation of the full RFC 5322 grammar, chosen because the full grammar accepts strings no real user types.

What validation cannot do is just as important. jane.doe@example.com and jdoe1987@example.com both pass every format rule, yet one may be a working mailbox and the other may never have existed. A format check also cannot spot a misspelled but well-formed domain such as gmial.com, because that string is syntactically fine.

What an Email Verification Step Tells You

Verification picks up where format rules stop. With EmailCheckPro, a completed Email Deliverability Check reports one of two outcomes for a correctly formatted address:

  • Deliverable: the address could receive mail at the time of the check.
  • Undeliverable: the address could not receive mail at the time of the check.

A third situation is handled separately. Some domains accept mail for any local part (catch-all domains), so a single mailbox cannot be confirmed either way. EmailCheckPro treats these as undetermined rather than guessing; the realtime request returns a non-zero business code with no result, and the check is not charged.

Two practical properties make verification useful in production. First, nothing is sent: the address owner receives no message or notification. Second, the result describes one moment. An address that is deliverable today can be closed next quarter, so a stored result should carry the date it was produced.

Verification also has a scope. It informs whether an address can receive mail; it says nothing about who controls the mailbox or whether they agreed to hear from you.

Email Verification vs Email Validation Side by Side

Format validation Deliverability check
Question answered Is the address written correctly? Can this address receive mail right now?
Where it runs Your form, script, or import tool An external service such as EmailCheckPro
Speed Instant, local One network request per address or batch
Cost None beyond your code Billed per completed result
Typical outcomes Pass or fail Deliverable, undeliverable, or undetermined
Catches a nonexistent mailbox No Yes, as undeliverable

The table shows why the steps are layered rather than swapped. Validation is cheap and filters out obvious garbage before you spend anything. A deliverability check is the only one of the two that speaks to the mailbox itself. An address that fails validation is simply invalid input; it should not be recorded as undeliverable, because no deliverability question was ever asked about it.

Where Each Step Belongs in a Signup Flow

A signup or checkout form has a person waiting, so keep the order simple and forgiving:

  1. Validate in the browser and on the server. Use type="email" for immediate feedback, then repeat the same rules server-side, since client checks can be bypassed.
  2. Offer a correction hint for common domain typos. A short list of frequent misspellings (gmial.com, hotmial.com) catches mistakes that pass format rules.
  3. Run a single deliverability check. Call POST /api/v1/check with the submitted address once it passes validation.
  4. Branch on the outcome. Deliverable: continue. Undeliverable: ask the person to review the address rather than silently rejecting it. Undetermined: accept the signup and rely on your normal confirmation email.
  5. Store the outcome with a timestamp. Support teams can then see what the address looked like at signup.

Keep the undeliverable message friendly and specific, for example "We could not confirm this address can receive mail. Please check the spelling." A hard block with no explanation tends to frustrate legitimate users who mistyped one character.

Where Each Step Belongs in a List Import

Imports from events, spreadsheets, or older CRMs usually carry a mix of problems, so run validation as a cleanup pass before any checking:

  1. Normalize. Trim whitespace, lowercase the domain, and split cells that contain two addresses.
  2. Validate and set aside failures. Put rows that fail format rules in an "invalid input" bucket for manual review.
  3. Deduplicate. The same address in three rows only needs one check.
  4. Pick the request type by volume. For a short list, POST /api/v1/batch-check accepts 1 to 100 addresses and returns results in input order in the same response. For a large file, POST /api/v1/bulk-tasks accepts a TXT or CSV with one complete address per line; the task is asynchronous, and you poll GET /api/v1/bulk-tasks/{id} until the result CSV is ready. Per-product task limits are listed in the EmailCheckPro API documentation.
  5. Keep four buckets. Deliverable, undeliverable, undetermined, and invalid input each need a different owner and next step.

In a synchronous multi-address response, an entry without a completed result is not the same as an undeliverable verdict. Treat it as "not checked" and retry it later.

Common Mistakes When Combining the Two

  • Relying on an over-strict regex. Patterns that reject + tags or long top-level domains turn away real users. Prefer a permissive format rule plus a deliverability check.
  • Merging invalid and undeliverable. They come from different steps and deserve different fixes: invalid input usually needs correction by a person, while undeliverable may mean the mailbox is closed.
  • Guessing on catch-all domains. Marking every undetermined address as bad removes real contacts; marking them all as good hides risk. Keep them in their own segment.
  • Reusing old results indefinitely. Re-check addresses before a major send if the last result is several months old.
  • Treating verification as permission. A deliverable result informs list quality only; consent and opt-out handling are separate obligations.

FAQ

How can teams decide whether format validation alone is enough?

Format validation is often enough for low-stakes fields, such as an optional newsletter box where a confirmation email follows anyway. When an address drives account recovery, order receipts, or a large outreach list, the cost of a mistyped or closed mailbox is higher, and a deliverability check on the addresses that pass validation adds the information format rules cannot provide.

How should teams store verification results in a database?

Store the outcome as one of a small set of values, such as deliverable, undeliverable, undetermined, or invalid input, together with the date of the check. Keeping the date lets later workflows decide when an address needs a fresh check. Avoid overwriting the original address with a corrected version without recording that a person or rule made the change.

How can developers handle an undetermined result at signup?

Let the signup continue. An undetermined result usually comes from a catch-all domain where a single mailbox cannot be confirmed, so blocking it would turn away real users. Flag the record internally, send the normal confirmation or welcome email, and use the outcome of that message, such as a click or a bounce, to decide the next step.

Learn More

Choose the product information that fits the next step in your workflow.

Sources