WordPress + VerifyAnyEmail

Official plugin

Our official WordPress plugin verifies email addresses in real time and blocks fake, disposable and undeliverable ones. It works with standard WordPress registration, comment forms and WooCommerce checkout — no code required.

Download plugin (.zip)Free · GPL-2.0.

Plugin details

Version
1.0.0
Requires WordPress
5.5+
Tested up to
WordPress 6.6
WooCommerce
Supported
Requires PHP
7.2+
License
GPL-2.0-or-later

Behaviour & privacy

  • Fail-open: if the API can’t be reached within the timeout, the address is allowed through so an outage never blocks checkout.
  • Strictness: blocks clearly undeliverable addresses; optionally also risky/unknown.
  • Caching: results cached 12 hours per address to avoid duplicate credit use.
  • Data: only the address being checked is sent, over HTTPS, with your API key. No data is sold.
  • Settings: Settings → VerifyAnyEmail (API key, where to verify, strictness, timeout).

A public WordPress.org listing and signed release are planned. Changelog: v1.0.0 — initial release (registration, WooCommerce checkout, comment verification).

Setup

  1. 1
    Download & install

    Download the plugin ZIP below, then in WordPress go to Plugins → Add New → Upload Plugin, choose the ZIP and activate it.

  2. 2
    Add your API key

    Open Settings → VerifyAnyEmail and paste the API key from your VerifyAnyEmail dashboard (API keys section).

  3. 3
    Choose where to verify

    Enable verification on user registration, WooCommerce checkout and/or comment author email. Save.

  4. 4
    Done

    Bad addresses are now blocked at the point of entry. The plugin fails open on API errors so an outage never blocks checkout, and caches results for 12 hours to avoid duplicate charges.

Handling the result

Every verification returns a result object with a status, a 0–100 score and a “did you mean” suggestion for typos. Branch on the status:

statusMeaningRecommended action
deliverableMailbox exists and accepts mailAccept
undeliverableInvalid syntax, no MX, or rejected mailboxBlock / reject
riskyAccepts but low quality (catch-all, role, disposable)Allow with caution, or challenge
unknownCouldn’t determine (greylist, timeout, blocked port)Allow (fail-open) or retry later

For sign-up and checkout forms, the safe default is to block only undeliverable so you never turn away a real customer, and to surface the suggestion (“did you mean gmail.com?”) inline to recover typos.

Security & reliability

  • Keep your API key server-side. Never expose it in client-side JavaScript. In WordPress, store it in the integration’s credential/secret store, not in a shared script.
  • Fail open. If the API errors or times out, let the address through rather than blocking a real user over a transient issue.
  • Retry transient errors. Back off and retry on 429 (rate limit) and 5xx; don’t retry 4xx validation errors.
  • Cache per address. One credit is spent per unique verification — cache results (e.g. 12–24h) so re-submits don’t re-charge.
  • Tag the source. This recipe sends X-VAE-Source: wordpress so your dashboard shows where verifications come from.

Troubleshooting

ResponseCause & fix
401Missing or wrong API key — check the Authorization header is Bearer YOUR_API_KEY.
402Out of credits — top up in the dashboard. (The plugin fails open in this case.)
429Rate limited — slow down or upgrade your plan; back off and retry.
No result writtenConfirm you’re reading result.status, and that the request body is { "email": "…" } as JSON.
You’ll need a VerifyAnyEmail API key — create a free account and find it in the dashboard under API keys. New accounts include free verification credits.