The Complete List of Disposable Email Domains (2026)
Disposable email services let anyone create a temporary inbox in seconds. They're used to bypass signup forms, abuse free trials, and pollute your user database with addresses that will never receive a follow-up email.
If you run a SaaS product, newsletter, or any service with email-based signups, blocking disposable emails is essential. Below is a comprehensive, maintained list of 500+ known disposable email domains.
Why block disposable emails?
- Bounce rates: Disposable addresses expire within minutes or hours. Sending to them hurts your sender reputation.
- Free trial abuse: Users create unlimited accounts with throwaway emails to avoid paying.
- Data quality: Your user database fills with unreachable addresses, skewing metrics and wasting storage.
- Spam signups: Bots use disposable emails to create fake accounts at scale.
The most common disposable email providers
These 20 domains account for the majority of disposable email usage:
mailinator.com
guerrillamail.com
tempmail.com
yopmail.com
10minutemail.com
throwaway.email
maildrop.cc
trashmail.com
temp-mail.org
dispostable.com
sharklasers.com
guerrillamail.net
mailnesia.com
getnada.com
mohmal.com
emailondeck.com
fakeinbox.com
tempinbox.com
mailcatch.com
mailsac.com
Full list (500+ domains)
Below is the complete list. You can copy this into a blocklist, load it into a Set for O(1) lookups, or use an API that maintains the list for you.
This is a subset. The full list has 500+ domains and is updated regularly as new disposable services appear.
How to use this list in your code
JavaScript / Node.js
const disposableDomains = new Set([
"mailinator.com",
"guerrillamail.com",
"tempmail.com",
// ... paste the full list here
]);
function isDisposable(email) {
const domain = email.split("@")[1].toLowerCase();
return disposableDomains.has(domain);
}
Python
disposable_domains = {
"mailinator.com",
"guerrillamail.com",
"tempmail.com",
# ... paste the full list here
}
def is_disposable(email: str) -> bool:
domain = email.split("@")[1].lower()
return domain in disposable_domains
The problem with maintaining your own list
New disposable email services launch every week. A static blocklist goes stale fast. You have two options:
- Self-maintain: Fork this list and add new domains as you discover them. Works, but requires ongoing effort.
- Use an API: Let someone else maintain the list. MXCheck checks against 500+ disposable domains and adds new ones regularly.
Skip the maintenance
MXCheck detects disposable emails, validates MX records, catches typos, and more. One API call, always up to date.
Get Free API KeyHow disposable email services work
Most disposable email services work one of two ways:
- Public inboxes: Anyone can read any inbox at the domain (e.g., Mailinator). No signup required. Type any-address@mailinator.com and the inbox exists instantly.
- Time-limited inboxes: A temporary address is created and self-destructs after 10-60 minutes (e.g., 10MinuteMail). Good enough to receive a verification link.
Both types share a trait: the domain is known and can be blocklisted. The challenge is keeping up with new domains as they appear.
What about catch-all domains?
Some disposable services use subdomains or dynamically generated domain names to evade blocklists. A pure domain blocklist won't catch these. For those cases, MX record analysis helps: if a domain's MX records point to known disposable email infrastructure, it's likely disposable regardless of the domain name.
This is one reason API-based detection outperforms static lists — the API can combine domain blocklists, MX record analysis, and pattern matching for higher accuracy.