
How to stop spam, disposable email signups

Your app is finally live, and suddenly you’re flooded with random sign-ups using disposable or fake email addresses. You’re not alone. This is one of the most common problems after launch.
Here are a few practical and proven ways to reduce spam and disposable email sign-ups.
Email Validation (blocking disposable emails)
Disposable email services allow users to generate temporary inboxes that are often used for spam, abuse, or trial farming. A good first step is to block known disposable email domains.
The Disposable repository is actively maintained and contains thousands of disposable and temporary email domains. You can validate user emails against this list before creating an account.
Example:
1let userEmail = 'user@000email.com'23const res = await fetch(4 'https://disposable.github.io/disposable-email-domains/domains.txt',5 {6 signal: AbortSignal.timeout(5000),7 // If you're using Next.js, you can cache the response8 next: {9 revalidate: 60 * 60 * 24,10 },11 }12)131415if (!res.ok) {16 throw new Error(`Failed to fetch: ${res.status}`)17}1819const data = await res.text()20const emailList = data.split('\n').map((line) => line.trim().toLowerCase()).filter(Boolean)2122if(emailList.includes(userEmail)){23 throw new Error('Disposable or temporary email addresses are not allowed.')24}
This helps prevent:
- Disposable email sign-ups.
- Temporary inbox abuse.
- Low-quality or throwaway accounts.
Magic link authentication
Traditional email + password sign-ups usually create an account as soon as the form is submitted. This makes them easy to abuse with random or fake emails.
Magic link authentication flips this flow.
How it works:
- User enters their email
- You send a one-time login or signup link
- The account is created (or activated) only after the link is opened
Why this works:
- Users must actually own the email address
- Random or mistyped emails never become accounts
- Bots and low-effort spam are dramatically reduced
Magic links are especially effective when combined with:
- Email verification expiry
- Rate limiting
- Disposable email detection
You won’t eliminate spam sign-ups completely, but you can make them expensive and annoying enough that bad actors move on.
