Outbound Wiki

Mailbox and SMTP verification

Testing whether a particular email mailbox appears able to receive mail without sending a real message.

Mailbox verification is a gate for an outbound record. Start with the submitted value, separate formatting and domain checks from mailbox checks, and turn the response into a route decision you can explain later. A positive response is evidence available at that moment, not a delivery guarantee.1 A blocked or inconclusive check leaves the address unresolved because it does not prove invalidity.2 Build the process around that uncertainty so a technical response does not become permission to contact someone.

Choose the workflow

Match the check to where the address enters your process. Use the same interpretation rules for individual records, lists, and forms.

Use a single-address workflow for an individual record, bulk verification for a list, or an API when the check belongs inside a form or application process.3 A professional verification service can apply syntax, domain, mail-routing, and receiving-system checks at scale.4 For list operations, run the entire list through contact verification and verify new addresses as real, active accounts.5

Run the check in order

  1. Preserve
  2. Syntax
  3. Domain
  4. Mailbox
  5. Interpret

Work from the least specific signal to the most specific one. Each stage narrows what you can reasonably do with the address.

Stage What you are trying to learn Example question
Preserve whether the submitted value and its context are intact What exact address arrived, and where did it come from?
Syntax whether the value is structurally usable Does the address contain an obvious formatting problem?
Domain whether the domain has mail-routing evidence Does this domain appear configured to receive mail?
Mailbox what the receiving system says about this recipient Can we assess this address without sending a message?
Interpret how much confidence the response deserves Is this a clear result, or does the response leave uncertainty?
Route what should happen to the record Should this address continue, be suppressed, or go to review?

Preserve and clean the input

Start with the record you received. Clean it for use, but keep a trace of what was submitted.

Keep the submitted address, its collection source, and the relevant permission or subscription record.6 Remove obvious input errors and duplicates,7 and keep a record of corrections so later changes remain explainable.8

If a customer-submitted address may contain a typo, ask the customer to correct it instead of guessing a replacement.9 Preserve the original value while the correction is pending. The later verification result should remain connected to the address that entered the workflow.

Separate syntax from domain routing

A well-formed address has passed only an input check. Formatting, domain routing, and mailbox existence are separate questions.

Start with accidental spaces, a missing domain, and malformed input.10 Use an email-aware parser or a verification service to evaluate the address.11 A syntax pass means the input fits the rules being checked.12 It gives no evidence that the domain accepts mail or that the recipient exists.13

DNS checks examine the domain's mail-routing configuration.14 A working website does not prove that the same domain receives mail.15 Keep domain-level evidence separate from mailbox-level evidence.16 An absent MX record invokes SMTP's implicit-MX fallback, while a null MX explicitly announces that the domain does not accept email.17

At this stage, ask whether the domain has a usable routing result and whether the response is stable enough to interpret. Do not turn domain evidence into mailbox evidence.

Check the mailbox response

Once the domain result is clear enough to proceed, inspect the receiving system's response for the specific address. This makes the check mailbox-specific.

SMTP verification connects to the mail server and checks whether a specific mailbox is active without sending an email.18 A verification service may evaluate SMTP responses without submitting a message body.19 This is sometimes described as a zero-payload check.20

Use documented verification behavior and bounded retries.21 Record the response and its status instead of trying to force a more favorable answer. A mailbox check gives you a signal about the receiving system's response at that point in time, so keep the result attached to the address it tested.

Interpret the result

Read the response alongside the conditions that can weaken it. A response can help with routing without supporting a delivery promise.

Receiving servers can defer checks, restrict probing, accept broad recipient patterns, or return temporary responses.22 A catch-all domain can leave the individual mailbox unconfirmed.23 Mailbox conditions can change when administrators delete mailboxes or domains change to accept-all settings.24

Address characteristics also help interpret the result. A shared role inbox may support an operational purpose without representing a named individual.25 A disposable address may be unsuitable for a long-lived account.26 These characteristics and delivery status answer different questions,27 so apply the policies that fit your audience and workflow.28

Mailbox checks cannot prove that a particular person controls the inbox, consented to contact, or will receive the next message in the inbox.29 Keep those questions outside the mailbox result and handle them through the rules that govern your outreach.

Route and retain the result

Give every result a destination. A status without an action will eventually become an unsafe default.

The useful output is a decision: continue with an address that passes available checks, suppress a clear failure, or hold an inconclusive result for review.30 Continue only when the verification result and your audience rules support the next action.31 Route clear failures and unresolved results separately.32

Keep verification status and context together.33 Store the result with its timestamp and any documented risk indicators.34 If the workflow needs the user to demonstrate access to the mailbox, use a confirmation email for that purpose, since it serves a different purpose from address checking.35

Recheck when circumstances change.36 Review stale records, changed data sources, periods of inactivity, or deterioration in actual delivery results.37 Choose a cadence that fits how the data is collected and used.38

What not to do

Keep these mistakes out of the verification workflow.

  • Do not treat an MX record as proof that an individual mailbox exists.39
  • Do not convert a temporary DNS failure into a permanent invalid-address decision.40
  • Do not repeat manual probing after a server starts limiting requests, since the results can become misleading.41
  • Do not overwrite unsubscribe, complaint, or suppression history during cleanup.42
  • Do not collapse uncertainty into a positive result to simplify a spreadsheet.43

Sources

  1. 1
    “A positive response is therefore evidence available at that moment, not a delivery guarantee.”
  2. 2
    “A blocked or inconclusive check is not proof that the address is invalid.”
  3. 3
    “Use a single-address workflow for an individual record, bulk verification for a list, or an API when checks belong inside a form or application process.”
  4. 4
    “A professional verification service applies these checks at scale”
  5. 5
    “Run your entire list through a contact verification solution and make sure any new addresses you add are verified as real, active email accounts.”
  6. 6
    “Keep the submitted address, collection source, and relevant permission or subscription record.”
  7. 7
    “Remove obvious input errors and duplicates.”
  8. 8
    “Keep a record of corrections.”
  9. 9
    “If you suspect a typo in a customer-submitted address, ask the customer to correct it rather than guessing.”
  10. 10
    “Start with accidental spaces, a missing domain, or malformed input.”
  11. 11
    “Use an email-aware parser or your verification service instead of treating one short regular expression as complete validation.”
  12. 12
    “A syntax pass means the input fits the rules being checked.”
  13. 13
    “It says nothing about whether the domain accepts mail or whether the recipient exists.”
  14. 14
    “DNS checks examine the domain's mail-routing configuration.”
  15. 15
    “A working website is also not proof that the same domain receives mail.”
  16. 16
    “Keep domain-level evidence separate from mailbox-level evidence.”
  17. 17
    “An absent MX record is different from a null MX: SMTP defines an implicit-MX fallback when no MX records are returned, while a null MX explicitly announces that the domain does not accept email.”
  18. 18
    “SMTP verification connects to the mail server and checks whether the specific mailbox is active without sending an email.”
  19. 19
    “A verification service may evaluate SMTP responses without submitting a message body.”
  20. 20
    “This is sometimes described as a zero-payload check.”
  21. 21
    “Use documented verification behavior and bounded retries instead of repeatedly contacting a recipient's infrastructure until it produces the answer you want.”
  22. 22
    “The absence of a delivered message does not make the result definitive: receiving servers can defer checks, restrict probing, accept broad recipient patterns, or return temporary responses.”
  23. 23
    “A catch-all domain can leave the individual mailbox unconfirmed.”
  24. 24
    “However, more intricate verification checks can prove whether the email address exists and if it’s ready to receive emails. This can change over time as mailboxes are deleted by the administrators of a given domain, and some domains change their settings to accept-all.”
  25. 25
    “A shared role inbox may be useful for an operational purpose without representing a named individual.”
  26. 26
    “A disposable address may be unsuitable for a long-lived account.”
  27. 27
    “These characteristics and delivery status answer different questions.”
  28. 28
    “Apply the policies relevant to your audience and workflow; do not treat every characteristic as an automatic deletion rule.”
  29. 29
    “They cannot prove that a particular person controls the inbox, that the person consented to contact, or that your next message will reach the inbox.”
  30. 30
    “The useful output is a decision, not a promise: continue with an address that passes the available checks, suppress a clear failure, or hold an inconclusive result for review.”
  31. 31
    “Continue only when the verification result and your audience rules support the next action.”
  32. 32
    “Route clear failures and unresolved results separately.”
  33. 33
    “Keep status and context together.”
  34. 34
    “Store the result with its timestamp and any documented risk indicators.”
  35. 35
    “a confirmation email serves a different purpose when you need the user to demonstrate access to the mailbox.”
  36. 36
    “Recheck when circumstances change.”
  37. 37
    “Review stale records, a changed data source, a period of inactivity, or a deterioration in actual delivery results.”
  38. 38
    “Choose a cadence that fits how the data is collected and used.”
  39. 39
    “An MX record points to a mail exchanger, but it does not identify individual mailboxes.”
  40. 40
    “A temporary DNS failure should not be converted into a permanent invalid-address decision.”
  41. 41
    “Repeated manual probing can also produce misleading results when a server limits requests.”
  42. 42
    “Do not overwrite unsubscribe, complaint, or suppression history during cleanup.”
  43. 43
    “Do not collapse uncertainty into a positive result merely to simplify a spreadsheet.”