1. Read the result as layers of evidence
Start with syntax, then domain/routing observations, then any provider-specific mailbox or risk signals. A domain-level answer cannot establish the state of a particular mailbox. Keep the observed time and source beside each signal.
A useful product separates the overall recommendation from its evidence. For example, “unknown because the provider timed out” gives a reader a much safer next step than a generic red invalid badge.
2. Investigate ambiguous outcomes
Some domains accept broad recipient patterns; some receiving systems deliberately avoid revealing mailbox validity. Temporary refusals and network problems can also interrupt a check. Ask what was actually observed and what the provider could not establish.
If the result is unknown, use a bounded retry policy or request confirmation from the person through an appropriate existing workflow. Do not turn repeated probing into a mailbox-enumeration service.
3. Choose a proportionate action
Consider this fictional product decision record. These are labels for an example, not results from a live provider:
Input: person@example.com
Syntax: accepted by parser
Mailbox signal: unavailable
Decision: unknown; request confirmation
For a signup flow, a clear confirmation step may be more useful than an aggressive rejection. For an existing customer contact, preserve the customer’s ability to correct the address. The right action depends on the purpose and cost of an error.
4. Protect the address and its owner
Keep email inputs out of query strings, analytics events, public reports, and unnecessary logs. Explain which provider receives the address and why. Retain only what the approved workflow requires, and use authorization and quotas for bulk checking.
Finally, keep consent and suppression decisions independent. A technically plausible address is not an invitation to send marketing mail, and a successful verification should never overwrite an unsubscribe.
Before you move on
- Provider and observation time visible.
- Domain and mailbox signals separated.
- Unknown retained as a first-class result.
- Permission and suppression handled independently.