Disable Emails

Description

Stop a WordPress website from sending any emails using the standard wp_mail() function. No emails will be sent, not even for password resets or administrator notifications.

WordPress websites can send emails for a variety of reasons — e.g user registration, password reset, enquiry form submission, e-commerce purchase — but sometimes you don’t want it to send anything at all. Some reasons for disabling all emails:

  • demonstration websites that allow users to do things that normally send emails
  • development / test websites with live data that might email real customers
  • bulk-loading data into websites which might trigger emails
  • adding new sites into multisite installations

Translations

Many thanks to the generous efforts of our translators:

If you’d like to help out by translating this plugin, please sign up for an account and dig in.

Installation

  1. Either install automatically through the WordPress admin, or download the .zip file, unzip to a folder, and upload the folder to your /wp-content/plugins/ directory. Read Installing Plugins in the WordPress Codex for details.
  2. Activate the plugin through the ‘Plugins’ menu in WordPress
  3. Optional: from the WordPress admin, navigate to Settings > Disable Emails and click the “Activate must-use plugin” if you want the plugin to always be activated, no matter what.

FAQ

Why am I still getting standard WordPress emails?

You probably have another plugin that adds its own implementation of the wp_mail() function. Try disabling some plugins.

In some circumstances, enabling the must-use plugin from settings will fix this, because must-use plugins load before other plugins.

Standard WordPress emails have stopped, but some others still get sent

You probably have a plugin that is sending emails via some other method, like directly using the PHP mail() function, or directly implementing an SMTP client. Not much I can do about that…

How does it work?

The plugin replaces the standard WordPress wp_mail() function with a function that sends no emails. Nada. Zip. Silence.

Behind the scenes, it creates a private copy of PHPMailer and allows the system to interact with it, but silently suppresses the functions that send emails. The standard WordPress filter and action hooks are supported, so plugins that register hooks for those will still function as normal. It just doesn’t actually send any emails.

Can I make it a must-use plugin?

Yes. Once you have activated the plugin, navigate to Settings > Disable Emails and click the “Activate must-use plugin”. This will create a must-use plugin (mu-plugin) that ensures that Disable Emails is always loaded. This can be especially useful on development websites where the database is frequently refreshed from a live site which does not have Disable Emails activated.

NB: if you activate the must-use plugin on a multisite, it will stop emails on all sites on the multisite! If you have multiple networks on your multisite, the must-use plugin will stop emails on all networks.

Contributions

Reviews

July 5, 2019
I use this on every WordPress site during development. Really quick and easy to use. It's wonderful to not have to worry about accidentally sending a bunch of test emails to a client's customer base. 😅
February 3, 2019
I have used this plugin in a couple of situations. The first is when I have to spin up a development version of a live site for testing. When this is done for testing something like data import on a version of the live site's data (such as verifying certain user data), we can't have emails going out to those users. In the past, I had generally just blanked the user emails or put in a dummy email. But that doesn't allow you to do certain testing such as updating data on the user profile screen because it would trigger an email error. Using this plugin now allows me do full testing on a dev site with full user data without fear of emailing the users. The other place I have found it useful is on demo sites. As a plugin developer, there are times that I have to set up a demonstration site for a plugin. Using Disable Emails makes it possible to do that without having the demo site sending out emails. It has definitely earned a permanent place in my toolbox.
February 26, 2017
Good lord I want email to die. Very old tech. So nice we can turn it off and use other things. Thanks!
Read all 11 reviews

Contributors & Developers

“Disable Emails” is open source software. The following people have contributed to this plugin.

Contributors

“Disable Emails” has been translated into 9 locales. Thank you to the translators for their contributions.

Translate “Disable Emails” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

The full changelog can be found on GitHub. Recent entries:

1.5.0

Released 2019-11-11

  • fixed: PHP notice — Trying to get property ‘ErrorInfo’ of non-object
  • changed: requires minimum PHP 5.6; recommend PHP 7.3+
  • added: support for running the plugin as a must-use plugin (mu-plugin)