Description
This email validation and blocklist plugin makes it easy to set up email blocklists and mx checking on WordPress email functions to reduce bounce rates and unwanted signups.
Features
Email blocklist – This plugin gives you granular control of a blocklist that allows you to stop users from using email addresses that you don’t want them to. Whether you want to block a specific email address or an entire domain, this plugin can handle it.
The plugin also handles prioritising specificity over generalisations, meaning you can block a domain while allowing a specific email address by simply setting the appropriate entries in the blocklist.
MX record checking – Mx records tell the Internet where to send email for a domain, if mx records for a domain you’re sending email to doesn’t exist, it’s generally not worth trying and can result in a hard bounce that affects your sender reputation.
External list synchronisation – There are plenty of lists that you might want to update your blocklist synchronised to, whether that’s a list of disposable email domains or a curated list that your agency maintains. Set the url and let the plugin keep your blocklist in sync by setting up a scheduled job.
Something being blocked by the external list when you don’t want it to be? Just set the domain to be whitelisted, and the synchronisation won’t touch it again, even if it’s in the list.
Logging – Knowing when an email has been blocked is just as important as knowing that emails are being blocked and stopped from being sent. You can choose to log emails that are sent from WordPress and the logs will tell you what failed on which email addresses to help you address issues. The plugin will log all recipients (those contained in the To, Cc and Bcc fields), the checks and results performed on each recipient, and the subject line of the email.
Works with multisite – The plugin is designed to work with multisite, by correctly actioning multisite level actions (activate/deactivate/uninstall etc). This does mean however that all multisite sites are independent of each other. For large multisite installations, using wp-cli or other tools may be required to prevent timeouts as the plugin utilise custom database tables that are created on activation.
Define your settings in wp-config.php – Run a site for someone else or just need to manage your settings for the plugin through something other than the WordPress dashboard? A number of settings can be set by defining constants in your wp-config.php file. If you don’t get a value quite right, we’ll provide a notice for users with the “manage_options” permission on single site installations and “manage_site_options” on multisite.
Expandability – If the plugin doesn’t do what you’re looking for exactly, it also exposes a number of hooks that allow you to change the plugins behaviour to suite your needs. The plugin also exposes API endpoints to allow remote management of the blocklist.
Compatibility
Because our plugin hooks into core WordPress functions, it has extremely wide compatibility, it’s been tested and appears to work with Core WordPress functions, Elementor Forms (via a hook that enables the is_email filter), Contact Form 7, Newsletter, Noptin, WooCommerce, Easy Digital Downloads, LearnPress, bbPress, and BuddyPress. It’s also likely to work with many more that use the filters that WordPress provides.
The notable exception that was found during testing was MailPoet, which does not use the standard filters provided by WordPress, and doesn’t appear to offer a hook that enables integration.
Source Code
The plugin is the source code, there is no (public) repository that contains the “raw” version. What you see is what we work with to create the plugin.
Screenshots

Domains management – Easily add and manage the domains in your blocklist. 
Email address management – Easily add and manage the email addresses in your blocklist. 
Log list – Shows the log entries that have been generated by the plugin. 
Log view – View details about why the plugin blocked (or allowed) an email to be sent. 
Dashboard – View some of your blocklist stats at a glance.
Installation
- Download the .zip file and upload it to your site, or install from the “Plugins” page in your WordPress dashboard.
- Enable the plugin in the “Plugins” section of your WordPress dashboard
- By default only mx checking will be performed at mail-time as the blocklist is set up but empty.
- Head to the “Email Validation” section of your WordPress side bar to configure the plugin’s blocklist and other settings.
FAQ
-
How does a blocklist and/or mx record checking reduce bounce rates?
-
Bounce rates are an indicator of how an SMTP service sees you as a customer, and if your bounce rates get too high it can impact both your inbox placement and whether a provider is willing to continue doing business with you. For the most part, SMTP services don’t do their own checks to make sure that you’re sending to an email address that makes sense beyond the basics, and will treat an email address where there are no email servers (mx records) as a “hard bounce” that dings you in your providers eyes. Similarly, a blocklist lets you block particular domains and email addresses (for example those that are known to be disposable email addresses) to avoid sending to email addresses that are unlikely to remain monitored.
-
What happens when an email or domain is blocked?
-
It depends at which stage the block takes place:
- During email validity checks (hooking into the WordPress is_email filter) the user will be presented with a message advising their email address isn’t valid, the same as they would if they used a nonsensical address.
- During email sending (hooking into the WordPress pre_wp_mail filter) the email will not be sent.
You can decide which checks take place when in the settings page in your WP Admin, by default the blocklist is checked in both of the situations above, and checks to ensure valid mx records are performed on email sending.
-
Do email entries override domain entries?
-
Yes, they do. Since email address entries are more specific than domains, those take priority where they exist. This allows you to do things like block an entire domain, but allow a specific email address.
-
Can I manually override a domain from an external list?
-
Yes, you can. Simply add the instruction you want the plugin to follow in the Manage Domains page of the plugin’s settings, and it will honour that instruction because the implementation for syncing external lists is designed not to override your choices.
-
Does syncing an external list mean my database will keep growing?
-
No, the implementation for syncing external lists cleans up after itself by removing domains that were added that are no longer part of the list, to keep things manageable.
-
Will checking MX records slow down my site?
-
That depends on your setup. If you’re using a mailing plugin that relegates email sending to WP-Cron, then it’s unlikely to (but it also depends on where the plugin does this relegation in the process), otherwise, the mx check takes place during the page processing, which can take a moment, but generally not more than sending the email itself.
-
I have an issue that’s not listed, what do I do?
-
While we’ve tried to test as much as possible, it’s always possible that a new plugin has bugs (whether that’s a missed error or something specific to your environment). If you have an issue we recommend enabling logging, which will generally tell you why the plugin blocked an email. If you still have issues, head to the plugin support forum and leave a message, and we’ll do our best to work with you to solve any issues you have.
Don’t forget, that if you’re having issues, others may too, so let us know!
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Capably Digital Email Validation and Blocklist” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Capably Digital Email Validation and Blocklist” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
0.2.0
Initial release on WordPress.org