How to detect and block temporary email addresses at signup

Temp mail services give anyone a working inbox with no registration. They pass every syntax check, often pass MX validation, and vanish within hours. Here's how to reliably detect and block them before they reach your database.

What are temporary email addresses?

Temporary email — also called disposable email, throwaway email, or temp mail — is a short-lived inbox provided by services like Temp-Mail.org, Guerrilla Mail, 10 Minute Mail, Mailinator, and hundreds of others. The user gets a working address instantly, no registration required. Emails arrive in real time. The inbox expires anywhere from 10 minutes to a few days.

From a purely technical standpoint, these addresses are valid. The domain has MX records. The inbox receives email. A regex check passes. A basic MX lookup passes. The address looks identical to a legitimate one.

Why temp mail hurts your product

Developers often underestimate the problem until they look at their user table. Common patterns:

The challenge: temp mail evolves faster than blocklists

The naive solution is a domain blocklist — a text file of known disposable providers. That list exists. You can find it on GitHub with 100,000+ domains. The problem is the list is always stale. New temp mail services appear daily, and existing ones cycle through domains to evade filters.

A purely blocklist-based approach catches the obvious cases (mailinator.com, guerrillamail.com) but misses the long tail. The detection problem is fundamentally an ongoing one, not a one-time list import.

How to detect temporary email addresses

1. MX record checks

Most temp mail providers share infrastructure. Certain mail servers handle thousands of disposable domains. Checking whether a domain's MX record points to a known temporary mail provider's servers catches a large slice of the problem, including domains that don't appear on any blocklist yet.

# DNS lookup for MX records
dig MX tempinbox.com
# → points to a shared disposable mail server

The limitation: large providers like Gmail and Outlook also run shared infrastructure, so you can't block on shared servers alone. You need to combine MX analysis with domain reputation data.

2. Domain blocklist lookup

A curated blocklist handles the well-known providers reliably. The key is using a maintained list, not a static file you imported once. Providers like Tickstem update the blocklist continuously, so you get coverage for new domains without any work on your end.

3. Domain age and registration signals

Temp mail domains are often newly registered or have minimal web presence. WHOIS data and domain age can supplement other signals. A domain registered two days ago with an MX record pointing to shared mail infrastructure is almost certainly disposable.

4. Pattern matching on common structures

Many temp mail services use predictable address formats: [email protected] where the local part is a UUID or random string, or a username that looks machine-generated. Pattern matching alone has too many false positives to be reliable, but it adds signal when combined with other checks.

5. API-based verification (the reliable approach)

All of the above signals need to be combined and weighted. The practical approach is to use a purpose-built verification API that handles the signal aggregation, keeps blocklists current, and returns a single verdict per email address.

Here's what a one-call check looks like with Tickstem:

curl -X POST https://api.tickstem.dev/v1/verify \
  -H "Authorization: Bearer tsk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"email": "[email protected]"}'
{
  "email": "[email protected]",
  "valid": false,
  "disposable": true,
  "mx": true,
  "reason": "disposable_domain"
}

The disposable field is the one to act on. Block or flag any address where it returns true.

Implementation patterns

Block at the point of entry

The right place to check is on your signup form, before writing anything to your database. Call the verification API on form submission. If disposable: true, return an error to the user immediately:

// Node.js example
import { VerifyClient } from '@tickstem/verify';

const verify = new VerifyClient({ apiKey: process.env.TICKSTEM_API_KEY });

async function handleSignup(email) {
  const result = await verify.check(email);

  if (result.disposable) {
    throw new Error('Please use a permanent email address to sign up.');
  }

  if (!result.valid) {
    throw new Error('That email address does not appear to be valid.');
  }

  // proceed with signup
}

Soft-block vs hard-block

For most products, a hard block (reject the signup entirely) is the right default. Some products prefer a soft block: allow signup but flag the account for manual review, restrict access to paid features, or require additional verification before granting full access.

The choice depends on your tolerance for friction. Hard blocks eliminate the problem entirely; soft blocks let you study edge cases before committing to a policy.

Don't check on every request

Email verification is a signup-time check, not a per-request check. Cache results by domain if you're processing bulk imports. For real-time signup forms, one check per submission is the right pattern.

Popular temp mail services your users are using

ServiceNotes
Temp-Mail.orgVery popular, cycles through many domains
Guerrilla MailLong-running, multiple domains
10 Minute MailFixed 10-minute expiry
MailinatorPublic inboxes at mailinator.com and aliases
ThrowamNewer, used to evade basic blocklists
DispostableAPI-accessible disposable inboxes
YopmailPersistent but anonymous inboxes
Sharklasers / Guerrilla Mail aliasesSame infrastructure, different domains
The list above is illustrative, not exhaustive. There are thousands of active disposable providers. Maintaining your own blocklist is a full-time job. This is why API-based verification that handles blocklist maintenance for you is the practical choice for most teams.

What about legitimate use cases?

Privacy-conscious users sometimes use alias services — Apple's Hide My Email, SimpleLogin, or Fastmail aliases — to protect their real address. These are different from temp mail: the address is permanent, forwards to a real inbox, and the user intends to receive ongoing emails.

A good verification API distinguishes between disposable temp mail and privacy aliases. Tickstem's disposable flag is false for forwarding aliases because they exhibit the behavior of real, permanent addresses (active MX, established domain, no expiry).

Summary

Blocking temp mail reliably requires combining multiple signals: domain blocklists, MX record analysis, domain reputation, and pattern matching. Doing this yourself means maintaining a continuously updated dataset. A verification API handles that maintenance and gives you a single field to act on.

The check takes one API call at signup time. The cost of not checking is fake accounts, abused free tiers, and degraded sender reputation — costs that compound over time.

Block temp mail in one API call

Tickstem's email verification API checks syntax, MX records, disposable providers, and domain blocklists. 500 checks free per month, no credit card required.

Start verifying for free