Email Verification
Email Verification for SaaS Signups and Onboarding
Email verification for SaaS means checking every new signup’s address before your app commits resources to it: a trial account, a welcome sequence, a sales follow-up. A good setup runs a fast check in the signup form (syntax, domain, disposable providers, typos), then requires the user to click a confirmation link before the account is fully active. That combination stops most fake trials and typo’d addresses without adding much friction for real users.
Why SaaS signups need verification
A SaaS signup form is open to the whole internet, and the email address is usually the account’s identity. When the address is wrong, a lot breaks downstream:
- Onboarding emails bounce. Your activation sequence, the one meant to get users to their first win, never arrives.
- Password resets fail. The user who typed a typo can’t get back in, opens a support ticket, or simply leaves.
- Trial abuse. People cycle through temporary inboxes to restart a free trial or farm free-tier credits.
- Polluted metrics. Fake accounts inflate signup numbers and deflate activation rates, which makes product decisions harder.
- Sales wastes time. SDRs chase leads that were never real.
Then there’s the reputation side. Every bounced welcome email counts against your sending domain. Amazon SES, for example, puts accounts under review at a 5% bounce rate and may pause sending at 10% (checked October 2026). A burst of bot signups with invented addresses can push a young product’s transactional stream toward those numbers quickly.
The SaaS signup verification stack
Think in layers. Each one catches something the others miss.
| Layer | When it runs | What it catches | Friction for real users |
|---|---|---|---|
| Format and syntax check | As the user types | Missing @, spaces, invalid characters | None |
| Typo suggestion | On blur | gmial.com, outlok.com, yaho.com | Very low (“Did you mean…?”) |
| Domain and MX lookup | On submit | Nonexistent domains, domains that can’t receive mail | None |
| Disposable domain check | On submit | Temporary inbox services | Low, unless your list is overly broad |
| Rate limits and bot checks | On submit | Scripted mass signups | Low |
| Email confirmation link | After submit | Wrong usernames, addresses the user doesn’t control | Medium, but expected |
The first four can run in a single API call. Our free email verifier handles syntax, domain and MX records, disposable domains, role-based addresses, free-provider detection, and common typos, and the free API has a daily limit that suits early-stage products or low-volume forms. It doesn’t connect to the recipient’s mail server, so it can’t tell you whether a specific mailbox exists. That’s what the confirmation link is for.
Step-by-step: verifying emails in a SaaS signup flow
- Validate format client-side. Use the browser’s built-in email input type plus a light check. Don’t write an aggressive regex that rejects plus signs or new TLDs. Our post on email validation regex explains why.
- Suggest typo corrections. When someone types john@gmial.com, show “Did you mean john@gmail.com?” and let them click to fix it.
- Call a verification API server-side on submit. Never trust a client-side check alone; bots skip your JavaScript.
- Decide what to do with each result. Invalid syntax or no MX: reject with a clear message. Disposable: reject or allow with limits (see below). Role-based or free-provider: allow, but tag for lead scoring.
- Send a confirmation email. Keep it plain and free of marketing so it isn’t filtered. The M3AAWG Sender Best Common Practices recommends exactly this for confirmation messages, and says that when a user changes their address, the new one should be confirmed the same way.
- Gate the right things behind confirmation. Let users explore the product, but hold back actions that cost you money or carry abuse risk (sending email from your platform, inviting teammates, consuming paid API credits) until they confirm.
- Expire unconfirmed accounts. If nobody clicks within a set window, stop sending to that address and clean up the account.
Handling disposable emails in a free trial
Disposable addresses are the most common SaaS-specific headache. Your policy depends on what a trial gives away.
- Expensive free tier (compute, AI credits, SMS, outbound email): Block disposable domains outright. The abuse cost is real.
- Cheap free tier (a project management tool, a note app): Consider allowing them but excluding them from sales and marketing sequences.
- Freemium with network effects: Blocking may cost more in lost users than it saves. Monitor instead.
Whatever you choose, tell the user plainly: “Please use a permanent email address so you can recover your account.” For implementation details, see how to block disposable emails at signup and the broader guide to stopping fake signups and bot registrations.
Protecting your signup form from list bombing
There’s a less obvious abuse case. Attackers sometimes use scripts to submit a victim’s address to hundreds of signup forms at once, flooding that inbox with confirmation emails. M3AAWG calls this list bombing and, in the same best practices document, recommends combining several defenses, including per-IP rate limits and rejecting forms submitted faster than a human could fill them in.
This matters for SaaS because your confirmation emails go to people who never asked for them. Some will mark them as spam. Google’s sender guidelines say to keep the Postmaster Tools spam rate below 0.1% and never reach 0.3% (checked October 2026), and an abused signup form can drag your transactional domain toward that range.
Practical defenses:
- Rate-limit signups per IP and per email address.
- Add a hidden honeypot field and a minimum time-to-submit check.
- Use an invisible CAPTCHA only when signals look suspicious.
- Don’t resend confirmation emails more than a few times to the same address.
Using domain signals for lead scoring
Beyond valid/invalid, verification results tell your sales and growth teams something useful.
Free providers vs business domains
A signup from gmail.com versus acme-corp.com tells you something about intent and potential deal size. Most B2B SaaS companies route business-domain signups to sales and keep free-provider signups in a self-serve nurture track. Don’t block free providers, though. Plenty of founders, freelancers, and evaluators use personal email. Our post on free email providers vs business domains goes deeper.
Role-based addresses
Signups from admin@, info@, or support@ often mean a shared inbox. That’s fine for account ownership in some products, but it’s weaker for personal onboarding emails that assume one reader. Tag them and adjust your sequence.
Domain-level grouping
When three people sign up from the same company domain, that’s a team trial in disguise. Grouping by domain helps product-led sales teams spot expansion opportunities.
Keeping onboarding emails deliverable
Verification at signup protects your onboarding sequence, but the sequence itself needs care too.
- Separate transactional from marketing. Confirmation, password reset, and billing emails should come from a different address or subdomain than your newsletters. Google recommends separate From addresses for different message categories. See why you should not send from your root domain.
- Authenticate everything. Bulk senders to Gmail need SPF, DKIM, and DMARC, and Yahoo has similar requirements.
- Handle bounces automatically. A hard bounce on a welcome email should flag the account in your app, not just your email platform, so support knows why the user never activated.
- Stop sending to non-engagers. If a trial user never opened anything and never logged in again, end the sequence.
If your product sends email on behalf of your customers, the verification picture changes: you’re now responsible for their lists too. Our guide to sending on behalf of your customers covers that architecture.
When a free checker is enough, and when it isn’t
For most early-stage SaaS products, a free format/DNS/disposable check plus a confirmation link covers the important cases. You may want a paid service with SMTP-level mailbox checks if you import large lead lists for outbound sales, or if your signup volume exceeds a free daily limit. For signups themselves, the confirmation click is still the strongest proof that a real person controls the inbox.
FAQ
Should SaaS products require email confirmation before login?
Not necessarily before login, but before high-risk or costly actions. Many products let users try the app immediately and gate features like sending, invites, or paid credits until the address is confirmed. That keeps activation fast while still proving the user controls the inbox.
Is it OK to block free email providers like Gmail at signup?
For most products, no. Many legitimate buyers evaluate tools with personal addresses. Use free-provider detection for lead routing and scoring instead of as a block.
How do I stop people from creating multiple free trials?
Blocking disposable domains is the first step. Combine it with confirmation links, rate limits, and account-level signals like payment fingerprinting or device checks. Email checks alone won’t stop someone who creates several real Gmail accounts.
Does a verification API slow down the signup form?
A DNS-based check typically adds a short delay on submit, and you can run typo suggestions client-side so the user sees them instantly. Set a timeout and fail open: if the API is slow or down, accept the signup and verify it afterward rather than blocking a real user.
Free email verifier: syntax, MX, disposable and role-based addresses, typos. Paste up to 100 at once.