Spam Protection

Customer Email Verification Pro includes several independent layers of spam protection that run before the OTP is sent — disposable email blocking (with optional AI pattern matching), MX record validation, a B2B allowlist, a custom blocked-emails list, AI risk scoring, and bot-cluster detection. Each layer is a separate toggle, so you can enable only the ones you need.

How to Block Disposable / Temporary Emails?

The plugin ships with a built-in list of ~3,000 known disposable email providers (Mailinator, 10MinuteMail, GuerrillaMail, etc.). When this rule is on, sign-ups from any of those domains are rejected before an OTP is sent.

  • Go to Settings → Spam Protection.
  • Enable the toggle Block disposable / temporary emails.
  • (Optional) Add extra domains to Additional blocked domains — one per line.
  • (Optional) Add domains to Excluded domains to whitelist them even if they’re on the built-in list.
  • Customize the rejection message shown to users.
  • Click Save.
Note
The blocklist is checked at signup, classic checkout, Blocks checkout, and edit-account email change.

How to Catch Unknown Disposable Domains (AI Pattern Match)?

New temp-mail services appear faster than any static list can keep up with. The AI pattern match option sits inside the disposable block and inspects the shape of the domain instead of looking it up, so brand-new throwaway domains that aren’t on any list yet are still rejected — for example tempmail-new.xyztrashbox24.info, or temp-box.io.

  • Go to Settings → Spam Protection.
  • Make sure Block disposable / temporary emails is ON — the pattern matcher lives inside that block.
  • Enable the toggle Also catch unknown disposable domains (AI pattern match).
  • Click Save.

The pattern matcher uses the same Disposable rejection message as the built-in list, so there is nothing extra to configure. Mainstream mailbox providers (Gmail, Outlook, Yahoo, iCloud, Proton, Zoho, and similar) are never flagged, and anything in your Excluded domains list always wins.

If a legitimate domain is ever caught by the pattern matcher, add it to Excluded domains (always allowed) in the same section — that list overrides every disposable rule.
Note
Pattern-matched blocks are recorded separately from exact-list blocks, so the Analytics dashboard lets you see how much the heuristic is catching on its own.

How to Validate MX Records?

The MX check confirms the email’s domain has a working mail server. This catches typos like @gmial.com, fake domains like @example.test, and dead inboxes — before sending an OTP that would never be delivered.

  • Go to Settings → Spam Protection.
  • Enable the toggle Validate email domain (MX check).
  • Customize the MX rejection message if needed.
  • Click Save.
Note
Results are cached per domain for 24 hours to avoid repeat DNS lookups for repeat sign-ups. The check fails open on DNS errors so transient issues don’t block legitimate users.

How to Restrict Sign-ups to Specific Domains (B2B Mode)?

For B2B / corporate stores that should only accept sign-ups from approved company domains.

  • Go to Settings → Spam Protection.
  • Enable the toggle Restrict signups to specific domains (B2B mode).
  • In Allowed domains, add the domains that are permitted to register — one per line. Wildcards supported (e.g. acme.com, *.partner.com).
  • Customize the Allowlist rejection message.
  • Click Save.
Important
When this toggle is ON, only the listed domains can sign up. Every other domain is rejected, regardless of the disposable/MX rules.

How to Block Specific Email Addresses?

For blocking individual bad actors by their exact email.

  • Go to Settings → Spam Protection.
  • Enable the toggle Block specific email addresses.
  • Add full email addresses to Blocked email addresses — one per line, exact match (no wildcards).
  • Customize the Blocked email rejection message.
  • Click Save.
For domain-level blocking (e.g. block all @spam.com), use the Additional blocked domains field inside the disposable section instead — it supports domain matching.
blank

How to Enable AI Risk Scoring for Signups and Guest Checkout?

The rules above are yes/no gates: one bad trait and the sign-up is rejected. AI risk scoring works differently — it gives every registration and guest-checkout email a single score from 0 to 100, built from several weaker signals, and you decide what happens at each risk level. Because the signals are combined, no single ordinary trait can block a real customer — a block needs a genuinely risky combination.

Scoring runs entirely on your own server. There is no external service to sign up for, no API key, and no customer data ever leaves your site.

What the score is built from

SignalWhat it looks for
Random-looking mailboxKeyboard-mash / machine-generated local parts such as xk29fjq8a@…
Unusual domainA non-mainstream domain whose name looks randomly generated or throwaway-shaped
Role / plus addressRole mailboxes and plus-address abuse (admin+1@, info+promo@ and similar)
Many signups from one IPSign-up velocity — several different addresses submitted from the same IP in a short period

Sensitivity and risk bands

Sensitivity sets the two score cutoffs that separate low, medium and high risk:

SensitivityMedium risk fromHigh risk from
Low — only clearly risky signups5585
Balanced (recommended)4070
Strict — act on weaker combinations3055

For each band you choose one of three actions: AllowRequire a one-time code, or Block. The defaults are a one-time code at medium risk and a block at high risk. Anything below the medium cutoff is always allowed through untouched.

  • Go to Settings → Spam Protection.
  • Enable the toggle AI spam & fraud risk scoring.
  • Choose a Risk sensitivity — Low, Balanced (recommended), or Strict.
  • Set At medium risk — Allow, Require a one-time code (default), or Block.
  • Set At high risk — Allow, Require a one-time code, or Block (default).
  • Customize the Risk block rejection message shown when a sign-up is blocked.
  • Click Save.
Note
Email-shape signals on their own rarely reach the high band on Balanced sensitivity. That is deliberate — one odd-looking address is not proof of spam. A real bot run repeats from the same IP, and it is that velocity signal that pushes the score into the block band. If you want weaker combinations acted on sooner, switch the sensitivity to Strict.

Once scoring is on, the Risk column on Settings → Unverified Users → User List shows each entry’s score and the reasons behind it, and the Analytics tab gains an AI risk scoring card with the average score, how many sign-ups were scored, how many were blocked, and the top risk reasons for the period.

How to Enable Bot-Cluster Detection?

Risk scoring judges one email at a time. Bot-cluster detection looks at sign-ups as a group and spots the shape of a coordinated bot run — a burst of registrations that only looks suspicious when you see them together. Once a burst crosses the cluster size for your sensitivity, further sign-ups matching that cluster are blocked.

What counts as a cluster

PatternWhat it looks for
Network + fingerprint floodMany different emails from the same network block sharing an identical browser fingerprint — bots rotate IPs within a subnet but keep the same browser signature
Address enumerationSequential addresses on the same domain: john1@, john2@, john3@ and so on
Domain floodA burst of sign-ups all landing on the same non-mainstream domain

Sensitivity

Sensitivity decides how many matching sign-ups form a cluster before new ones are blocked. All counts are measured over a rolling ten-minute window:

SensitivityNetwork + fingerprintAddress enumerationDomain flood
Low — only large, obvious bursts8510
Balanced (recommended)546
Strict — block on smaller clusters334
  • Go to Settings → Spam Protection.
  • Enable the toggle Bot signup-cluster detection.
  • Choose a Cluster sensitivity — Low, Balanced (recommended), or Strict.
  • Customize the Cluster block rejection message.
  • Click Save.
Note
Cluster counters are short-lived and only ever count distinct email addresses, so a customer retrying their own address never inflates a cluster. Mainstream mailbox providers such as Gmail and Outlook are never grouped into a domain flood, and the counters reset as the ten-minute window rolls forward — so ordinary traffic will not trip the rule.
AI risk scoring and bot-cluster detection are complementary and can safely run together: scoring catches the lone bad address, cluster detection catches the coordinated run that each individual address would have survived.