Stop Emails

Description

Stops outgoing emails sent from WordPress. This plugin stops
outgoing emails generated by WordPress core, plugins, and themes.
Emails sent using the wp_mail() function, will not be sent.
In the case where an author does not use the recommended wp_mail()
function and instead sends the email using another mechanism, an email will
still be sent.

This plugin allows you to suspend sending emails when doing development work.
Any calls to wp_mail() will fail silently. WordPress
will operate as if the email were sent successfully
but no email will actually be sent.

On the admin menu page Settings > Stop Emails, there is the option
to log all emails to the PHP error log. By default this logging is
disabled.

NOTE: If using the PHP mail() function directly, this
plugin will NOT stop the emails.

Built by Sal Ferrarello / @salcode

Screenshots

  • When the plugin is running, there will be a warning on the backend of the website.
  • Lies! The email wasn’t really sent, we’re running Stop Emails

Installation

  1. Install plugin from WordPress plugin repository https://wordpress.org/plugins/
  2. Activate Stop Emails through the ‘Plugins’ menu in WordPress.

Manual Installation

  1. Upload the entire stop-emails directory to the /wp-content/plugins/ directory.
  2. Activate Stop Emails through the ‘Plugins’ menu in WordPress.

mu-plugin Installation

  1. If the directory wp-content/mu-plugins/ does not exist, create it.
  2. Upload the single file stop-emails.php to the wp-content/mu-plugins/ directory

FAQ

Where do the emails go?

The emails are lost forever.

Why are some of my emails still being sent?

Most likely, this is due to a plugin you have running.
There are two different things the plugin could be
doing to cause emails to still be sent.

  1. The plugin is overriding our overriding of the sending mechanism.
  2. The plugin is calling the PHP function mail() directly.

Unfortunately in either of these cases, this plugin will not be able to stop
the email.

Known Incompatible Plugins?

A list of Known Incompatible Plugins is available at https://github.com/salcode/stop-emails/wiki/Known-Incompatible-Plugins.

I want to log the emails that are stopped

You can enable logging of stopped emails on the
admin menu page Settings > Stop Emails.

Emails will be logged to your PHP error log.

Why would I want install in the mu-plugins directory?

Activating a plugin normally requires logging into the site.
Installing the file in the mu-plugins directory allows you to
activate the plugin without logging in. This can be
helpful when setting up an existing site locally.

Where can I report a bug?

Please report bugs at https://github.com/salcode/stop-emails/issues

Reviews

August 4, 2017 1 reply
I develop a lot of WordPress sites and normally this isn’t an issue. But I’ve been developing a membership site and normally when I do a site that includes users and their email addresses I just click on the box that asks to send the user notification of their password. But on this particular site the users need to be approved. I’m using BuddyPress and a plugin that allows user moderation, BP Registration. The problem came in when when I had to start approving members so they would show up in the list. These were existing members so they needed to be active. I started getting emails asking what the heck was going on. Each of my members were getting notices that they had been approved. I had to take the time to explain to each one of them what had happened. Very time consuming, very embarrassing. Glad I found this since I have several members that still need to be added. I added myself as a user and checked the box to notify me of my password. No email! I changed my password. No email! I approved my account. Still no email! Works perfectly. I can now develop in silence and not worry about alerting/confusing members. Thank you for your work! Allen
December 20, 2016 1 reply
Worked out of the box for me on a VPS; we were developing a system in parallel to an existing site and someone else installed this instead of using our existing process. I learned of a new plugin and a new way of doing things for WP. Very impressed.
October 24, 2016
This works great. I had used it months ago for something else. But I needed to migrate a Ning.com website with members into a new Buddypress site. I had to make sure the members were not emailed or pinged. This plugin stopped all outgoing emails to all the members.
Read all 12 reviews

Contributors & Developers

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

Contributors

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

Translate “Stop Emails” into your language.

Interested in development?

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

Changelog

1.2.1

  • Conditionally modify how our fake PHPMailer extends the real PHPMailer class based on changes in PHPMailer introduced in WordPress core 5.5. This eliminates the message “PHP Deprecated: class-phpmailer.php is deprecated since version 5.5.0!” in the error logs.

1.2.0

  • Add filter to force BuddyPress to use wp_mail() rather than its own BP_PHPMailer class

1.1.0

  • Add Italian translation (it_IT), thanks to Andrea Gherardi https://twitter.com/ilghera_TP

1.0.1

  • No changes to code functionality
  • “Tested Up To:” version bump to 4.2
  • Update to readme.txt to more clearly communicate plugin functionality
  • Version bump to 1.0.1

0.8.0

  • Overhaul of plugin includes: fixing issue with plugin not stopping emails, moving to a class structure, changing email stopping
    behavior to use the same technique as WordPress core tests, improved inline documentation,
    addtion of phpunit tests. Introduces a breaking change with https://github.com/salcode/stop-emails-logger

0.7.1

  • Added check for supporting files before loading them. Since the primary functionality
    is in stop-emails.php, adding this check allows stop-emails.php to be used in the
    mu-plugins/ directory (previously, it would throw warnings)

0.7.0

  • Added filter fe_stop_emails_log to allow other logging of blocked emails

0.6.2

  • “Tested Up To:” version bump to 4.0
  • Add plugin icons

0.6.1

  • “Tested Up To:” version bump to 3.9
  • Add Settings link to plugin page

0.6.0

  • Add admin settings page with option to enable logging of stopped emails to
    PHP error log

0.5.0

  • Correct breaking change

0.4.0

  • Add Spanish translation (es_ES), thanks to Andrew Kurtis from webhostinghub.com

0.3.0

  • Added support for localization

0.2.0

  • Added filter fe_stop_emails_log_email for $log_email value, which allows a programmer to add code to
    log the blocked emails in the php_error.log
  • Renamed functions and classes to follow WordPress standards

0.1.0

  • First release