WooCommerce + VerifyAnyEmail

Official plugin

WooCommerce support is built into the VerifyAnyEmail WordPress plugin. Once installed, it validates the billing email during checkout so orders with undeliverable addresses are caught before they’re placed.

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
    Install the WordPress plugin

    Download and install the plugin (same one used for WordPress), then activate it.

  2. 2
    Enable WooCommerce checkout

    In Settings → VerifyAnyEmail, tick “WooCommerce checkout” and save.

  3. 3
    Test it

    Place a test order with a clearly invalid address — checkout is blocked with a helpful message. Real addresses pass through instantly.

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 WooCommerce, 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: woocommerce 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.