Email Domain Verification: How to Vet a Domain Before You Send
Every email address has two parts: the local part (before the @) and the domain (after it). Most verification work focuses on the local part. But there is a cheaper, faster question worth asking first: is the domain itself capable of receiving mail at all, and is it the kind of domain you actually want to send to?
That is domain verification. It runs faster than full address verification, costs less, and answers the question that screens out the largest category of garbage addresses in one shot: dead domains, disposable providers, and lookalike domains.
What Domain Verification Actually Checks
Domain verification confirms that the domain portion of an email address is capable of receiving mail, is properly configured, and is not a known disposable or high-risk provider. It does not check whether a specific mailbox at that domain exists. That is full address verification.
Think of it as the pre-screen before mailbox verification. If a domain has no MX record and no A-record fallback, every address at that domain will bounce. You do not need to check 5,000 individual mailboxes; you can reject the whole batch in one DNS lookup. The Bulk Email Checker domain verification tool wraps these checks into a single endpoint so you do not have to wire up DNS resolution yourself.
The Four Domain-Level Signals That Matter
A domain check is only useful if it surfaces the right signals. Four matter; the rest are noise.
“A static disposable domain list in your codebase catches 60-70% of providers. A maintained service catches 95%+. The gap is where the abandoned signups live.”
When to Verify at Domain Level vs Full Address
Domain verification is faster, cheaper, and lower-resolution than full address verification. Knowing when to use each is most of the operational skill.
- Filtering imported lists before paying for full verification
- Blocking disposable providers at signup form submission
- Auditing a lists overall sending risk profile
- Pre-screening B2B prospect lists before enrichment
- Compliance vetting for partner data acquisitions
- High-speed signup flows where latency matters more than mailbox certainty
- Verifying individual addresses before adding to a campaign
- Confirming the specific mailbox exists at sending time
- Catching dead mailboxes at known-good domains like gmail.com
- Verifying corporate mailboxes like name@acme.com
- Final QA before high-stakes cold outreach sends
- Transactional email flows where every bounce costs
The most cost-effective pattern is layered: domain verification first to strip out the dead and disposable domains cheaply, then full address verification on what remains. This typically reduces total verification spend by 10-20% on lists of unknown provenance, because you are not paying mailbox-level verification fees for addresses at dead domains.
For agencies and teams processing client lists, the layered approach also helps separate billing cleanly: domain verification as the cheap baseline, full address verification as the premium layer. The email verification for teams account model lets you run both layers under one credit pool while tracking usage per client.
How to Check MX Records (Terminal and API)
For ad-hoc checks against a single domain, the terminal is the fastest path. For production workflows, an API call is the right answer.
From the terminal (Linux/macOS)
The +short flag strips digs verbose output to just the priority value and the mail server hostname. A domain with no MX records returns an empty result, which is the signal to reject it.
From Windows PowerShell
From an API for production use
Terminal commands are fine for one-off lookups. For production code, you want a single call that returns MX validity, A-record fallback status, disposable provider detection, and reputation signals together. Rolling your own DNS resolution in code is doable but it does not scale: maintaining the disposable provider list alone is a continuous job. The email verification API documentation covers the domain-level endpoint that bundles these checks.
Detecting Disposable Domains (The Hard Part)
MX-record and A-record checks are deterministic: the DNS either resolves or it does not. Disposable detection is messier because the providers actively try to avoid detection.
The patterns disposable providers use
The detection logic that catches all of these is a constantly-updated provider database, cross-referenced against newly-registered domains, plus behavioral signals like "how many distinct mailbox names have been verified at this domain in the last 24 hours." A static list catches 60-70% of disposables; a maintained service catches 95%+.
Domain Verification at Scale: Filtering Bulk Lists
The most cost-efficient list cleaning workflow goes through three stages, not one.
Wiring Domain Checks Into a Signup Flow
For signup forms, the right pattern depends on what you are optimizing for: speed (cheapest, fastest check) or thoroughness (catch everything, accept slightly more latency).
- What it does: domain check only, no mailbox verification
- Latency: sub-200ms typically
- Catches: disposable domains, dead domains
- Misses: dead mailboxes at otherwise-valid domains
- Right for: newsletters, free-tier SaaS, lead capture
- What it does: domain pre-screen, then mailbox check on survivors
- Latency: usually under 1 second total
- Catches: everything the lightweight pattern catches, plus dead mailboxes
- Pairs with: the real-time email verification API on the same submission
- Right for: paid signups, account verification, B2B SaaS
Frequently Asked Questions
dnspython library or Nodes built-in dns module both work. For disposable detection without an API, you would need to maintain a domain list yourself, which is impractical given how fast the providers add new domains. For a single-check sanity test against a known domain, the free email verification tool in the dashboard runs the same domain-level checks the API uses.Closing Thoughts
Domain verification is the pre-screen that most email verification setups skip. Adding it as a first-stage filter saves real money on bulk list cleaning, catches disposable providers at signup forms more reliably than static blocklists, and gives you a cleaner audit trail for compliance work. The technical implementation is straightforward: one DNS lookup or one API call, depending on whether you want the basics or the full domain-level signal set.
The pattern to adopt: domain verification as the cheap filter on every list before full address verification, domain verification standalone at signup forms where speed matters more than mailbox-level certainty, and the layered approach (domain + mailbox) for any flow where downstream cost of a bad address is high.
Stop Bouncing. Start Converting.
Millions of emails verified daily. Industry-leading SMTP validation engine.