How-to guides

Email verification for SaaS signup forms: complete playbook

Every SaaS signup form leaks fake accounts, trial abusers, and disposable signups. Here is the complete playbook to plug those holes.

AD

Admin

June 12, 2026 · 3 min read

SaaS signups have three persistent problems: fake accounts from bots, trial abuse from disposable emails, and typo signups that never activate. Each one inflates your top-of-funnel metrics, costs you support time, and skews retention analysis. Real-time email verification fixes all three with a single API call. Here is the playbook.

The three failure modes

Bots filling forms

Most signup spam comes from automated tools probing for vulnerabilities or generating fake accounts to scrape. They submit gibberish addresses (sd7gh2jk@gmail.com) or typo domains (name@gmial.com).

Trial abuse

One human signs up multiple times using disposable addresses to bypass per-account limits. Looks like 50 signups; actually one user gaming you.

Typo signups

Real human, fat-finger typo. They never get the welcome email, never activate, and look like a churned user in your analytics.

The five-line fix

Server-side, before account creation:

const verify = await fetch('https://mailoclean.com/api/v1/verify', {
    method: 'POST',
    headers: { 'Authorization': `Bearer ${process.env.MAILOCLEAN_KEY}`, 'Content-Type': 'application/json' },
    body: JSON.stringify({ email })
}).then(r => r.json());

if (['invalid', 'disposable'].includes(verify.status)) {
    return res.status(422).json({ error: 'Please use a valid, permanent email address.' });
}

That handles all three failure modes. Bot signups fail because their generated addresses are invalid. Trial abusers fail because disposable domains are blocked. Typo signups fail because the domain does not resolve.

What to allow, warn, or block

StatusAction
validCreate account
invalidBlock, show error
disposableBlock, ask for permanent address
catch_allCreate account, tag for engagement monitoring
role_basedCreate account, soft warning ("consider using personal email")
unknownCreate account, reverify in background

UX patterns that work

  • Inline validation on blur. Show the error as soon as the user leaves the field, not after they submit.
  • Suggest a correction. If they type name@gmial.com, ask "did you mean name@gmail.com?". A library like mailcheck does this client-side.
  • Always allow override. Some users have unusual addresses. Two failed verifications + an "I am sure this is right" button accepts with a flag.
  • Never validate on every keystroke. The signup form is not the place for live-as-you-type validation.

Measuring the impact

Track these metrics before and after rollout:

  • Total signups (will drop 5 to 25% depending on how leaky your form was).
  • Activation rate (will rise: fewer dead emails means more users who actually get the activation email).
  • Bounce rate on welcome emails (will drop dramatically).
  • Cost per acquired user (often improves: fewer signups but each one is more likely to convert).

FAQ

Will I lose real signups to false positives?

MailoClean false positive rate is below 0.05%. Most "false positives" turn out to be users who really did sign up with a disposable or invalid address.

Does this protect against credential stuffing?

Indirectly. It removes the easiest source of fake accounts. For real credential stuffing protection, layer rate limiting and CAPTCHA on top.

How fast is the API?

Median 1.4 seconds. Run it asynchronously after form submission with a clear "creating your account" state.

Plug it in

Five-line fix above. Get your API key, paste, deploy. Most SaaS teams see fake-signup rate drop 60%+ in the first week.

Ready to try MailoClean?

Clean your list and start sending with confidence.

Free verifications included with every account. Credits never expire.

AD

Admin

Email deliverability writer at MailoClean

Back to all posts

Keep reading

Related posts