Disable Emails


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

NB: if you need to run this plugin on WordPress 5.4 or earlier, and must install manually from a .zip file, please install version 1.6.3 which you can download from the Advanced page for the plugin. Since version 1.7.0, WordPress 5.5 or later is required.


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.


  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.


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.



2022 年 11 月 13 日
I've been using this Plugin a lot lately and it does a great job while also being ridiculous easy.
2022 年 6 月 14 日
Great plugin that we use on our staging sites. Some sites use a pre-order plugi for WooCommerce, sending out mails when particular launch date is there. Of course, we don't want the staging site to sent out mails. That's a no go.
2020 年 10 月 26 日
Works super headache-free. A must use handy tool! Thanks!
閱讀全部 16 則使用者評論


以下人員參與了開源軟體〈Disable Emails〉的開發相關工作。


〈Disable Emails〉外掛目前已有 12 個本地化語言版本。 感謝全部譯者為這個外掛做出的貢獻。

將〈Disable Emails〉外掛本地化為台灣繁體中文版


任何人均可瀏覽程式碼、查看 SVN 存放庫,或透過 RSS 訂閱開發記錄


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


Released 2022-05-26

  • fixed: fatal exception when an email address was invalid