Title: Mail Queue
Author: WDM
Published: <strong>December 29, 2021</strong>
Last modified: December 2, 2025

---

Search plugins

![](https://ps.w.org/mail-queue/assets/banner-772x250.png?rev=2650489)

![](https://ps.w.org/mail-queue/assets/icon-128x128.gif?rev=2650489)

# Mail Queue

 By [WDM](https://profiles.wordpress.org/wdm-team/)

[Download](https://downloads.wordpress.org/plugin/mail-queue.1.4.6.zip)

 * [Details](https://twd.wordpress.org/plugins/mail-queue/#description)
 * [Reviews](https://twd.wordpress.org/plugins/mail-queue/#reviews)
 *  [Installation](https://twd.wordpress.org/plugins/mail-queue/#installation)
 * [Development](https://twd.wordpress.org/plugins/mail-queue/#developers)

 [Support](https://wordpress.org/support/plugin/mail-queue/)

## Description

This plugin enhances the security and stability of your WordPress installation by
delaying and controlling wp_mail() email submissions through a managed queue.

If your site exhibits unusual behavior — such as a spam bot repeatedly submitting
forms — you will be alerted immediately.

 * Intercepts wp_mail() and places outgoing messages in a queue
 * Configure how many emails are sent and at what interval
 * Log all queued email submissions
 * Receive alerts when the queue grows unexpectedly
 * Receive alerts when WordPress is unable to send emails

## Screenshots

 * [[
 * [[
 * [[
 * [[

## Installation

Upload the the plugin, activate it, and go to the Settings to enable the Queue.

Please make sure that your WP Cron is running reliably.

## FAQ

### Do I need to configure anything?

Yes. Once activated please go into the Settings of the Plugin to do some configurations.

You can enable the Queue, control how many emails and how often they should be sent.

You can enable the Alerting feature and control at which point exactly you want 
to be alerted.

### How does this plugin work?

When enabled, the plugin intercepts wp_mail(). Instead of sending emails immediately,
they are stored in the database and released gradually via WP-Cron according to 
your configured interval.

### Does this plugin change the way HOW the emails are sent?

No. This plugin does not change HOW the emails are sent. For example: If you use
SMTP for sending, or a third-party-service like Mailgun, everything will still work.

This plugin changes WHEN the emails are sent. By the email Queue it gives you control
about how many emails should be sent in which interval.

### Does this plugin work, if I have a caching Plugin installed?

If you’re using a caching plugin like W3 Total Cache, WP Rocket or any other caching
solution which generates static HTML files and serves them to visitors, you’ll have
to make sure you’re calling the wp-cron file manually every couple of minutes.

Otherwise your normal WP Cron wouldn’t be called as often as it should be and scheduled
messages would be sent with big delays.

### What about Proxy-Caching, e.g. NGINX?

Same situation here. Please make sure you’re calling the WordPress Cron by an external
service or your webhoster every couple of minutes.

### My form builder supports attachments. What about them?

You are covered. All attachments are stored temporarily in the queue until they 
are sent along with their corresponding emails.

### What are Queue alerts?

This is a simple and effective way to improve the security of your WordPress installation.

Imagine: In case your website is sending spam through wp_mail(), the email Queue
would fill up very quickly preventing your website from sending so many spam emails
at once. This gives you time and avoids a lot of trouble.

Queue Alerts warn you, if the Queue is longer than usal. You decide at which point
you want to be alerted. So you get the chance to have a look if there might be something
wrong on the website.

### Can I add emails with a high priority to the queue?

Yes, you can add the custom `X-Mail-Queue-Prio` header set to `High` to your email.
High priority emails will be sent through the standard Mail Queue sending cycle 
but before all normal emails lacking a priority header in the queue.

_Example 1 (add priority to Woocommerce emails):_

    ```
    add_filter('woocommerce_mail_callback_params',function ( $array ) {
        $prio_header = 'X-Mail-Queue-Prio: High';
        if (is_array($array[3])) {
            $array[3][] = $prio_header;
        } else {
            $array[3] .= $array[3] ? "\r\n" : '';
            $array[3] .= $prio_header;
        }
        return $array;
    },10,1);
    ```

_Example 2 (add priority to Contact Form 7 form emails):_

When editing a form in Contact Form 7 just add an additional line to the
 Additional
Headers field under the `Mail` tab panel.

    ```
    X-Mail-Queue-Prio: High
    ```

_Example 3 (add priority to WordPress reset password emails):_

    ```
    add_filter('retrieve_password_notification_email', function ($defaults, $key, $user_login, $user_data) {
        $prio_header = 'X-Mail-Queue-Prio: High';
        if (is_array($defaults['headers'])) {
            $defaults['headers'][] = $prio_header;
        } else {
            $defaults['headers'] .= $defaults['headers'] ? "\r\n" : '';
            $defaults['headers'] .= $prio_header;
        }
        return $defaults;
    }, 10, 4);
    ```

### Can I send emails instantly without going through the queue?

Yes, this is possible (if you absolutely need to do this).

For this you can add the custom `X-Mail-Queue-Prio` header set to `Instant` to your
email. These emails are sent instantly circumventing the mail queue. They still 
appear in the Mail Queue log flagged as `instant`.

Mind that this is a potential security risk and should be considered carefully. 
Please use only as an exception.

_Example 1 (instantly send Woocommerce emails):_

    ```
    add_filter('woocommerce_mail_callback_params',function ( $array ) {
        $prio_header = 'X-Mail-Queue-Prio: Instant';
        if (is_array($array[3])) {
            $array[3][] = $prio_header;
        } else {
            $array[3] .= $array[3] ? "\r\n" : '';
            $array[3] .= $prio_header;
        }
        return $array;
    },10,1);
    ```

_Example 2 (instantly send Contact Form 7 form emails):_

When editing a form in Contact Form 7 just add an additional line to the
 Additional
Headers field under the `Mail` tab panel.

    ```
    X-Mail-Queue-Prio: Instant
    ```

_Example 3 (instantly send WordPress reset password emails):_

    ```
    add_filter('retrieve_password_notification_email', function ($defaults, $key, $user_login, $user_data) {
        $prio_header = 'X-Mail-Queue-Prio: Instant';
        if (is_array($defaults['headers'])) {
            $defaults['headers'][] = $prio_header;
        } else {
            $defaults['headers'] .= $defaults['headers'] ? "\r\n" : '';
            $defaults['headers'] .= $prio_header;
        }
        return $defaults;
    }, 10, 4);
    ```

### Can I still use the wp_mail() function as ususal?

Yes, the wp_mail() function works as expected.

When calling wp_mail() the function returns `true` as expected. This means the email
has been entered into the queue.

_Exceptions:_

If for some reason the email cannot be entered into the database, wp_mail() will
return `false`.

However if you send an email using the instant header option the email will be considered
important.
 In this case the email will be sent right away, even if there is an 
error creating a log for it in the queue.

### I have a MultiSite. Can I use Mail Queue?

Yes, but with limitations.

Do not activate the Mail Queue for the whole network. Instead, please activate it
for each site separately. Then it will work smoothly. In a future release we’ll 
add full MultiSite support.

### What is Mail Queues favorite song?

## Reviews

![](https://secure.gravatar.com/avatar/4cb0965dba2e21bb307703271ba4634469e10a73463c8932edee26835bacac9e?
s=60&d=retro&r=g)

### 󠀁[Does exactly what you want it to do and great support](https://wordpress.org/support/topic/does-exactly-what-you-want-it-to-do-and-great-support/)󠁿

 [Dave Pattern](https://profiles.wordpress.org/daveyp/) December 5, 2025

Perfect for batching the sending of our monthly newsletter out to subscribed members(
we’re using FluentSMTP to handle the actual sending of the emails).

![](https://secure.gravatar.com/avatar/95b9378006682efdf446c251ac3ac6f23c9f66c7f244c4d5fa324aa45921124a?
s=60&d=retro&r=g)

### 󠀁[Works as a charm 👌](https://wordpress.org/support/topic/works-as-a-charm-%f0%9f%91%8c/)󠁿

 [chickenme](https://profiles.wordpress.org/pitlamgi/) August 29, 2024

This plugin is a must have in all my clients’ websites, speed up SMTP email flow.
It deserves 5 stars⭐⭐⭐⭐⭐Thanks team for the plugin. Highly recommend plugin
for your websites👌

![](https://secure.gravatar.com/avatar/d5a489e6355cd11e61261fec7bc1652941e09e5b04a09aa5572efcc112a01e7c?
s=60&d=retro&r=g)

### 󠀁[Good plugin](https://wordpress.org/support/topic/good-plugin-6907/)󠁿

 [kbiegert](https://profiles.wordpress.org/kbiegert/) August 10, 2024

This is a good plugin. Easy to configure and use. Good support.

![](https://secure.gravatar.com/avatar/a5a3765e3ec9ce600aae8b13b3b2feaedb3e73df0f7f42b2e0370163c885d244?
s=60&d=retro&r=g)

### 󠀁[Good](https://wordpress.org/support/topic/good-8565/)󠁿

 [SONBEAT](https://profiles.wordpress.org/sonbeat21/) July 12, 2024

Easy to use.

![](https://secure.gravatar.com/avatar/8a97fab4fc2fc9c85e87745d36f9db30ead623c3cbb44db77d8c93429954a6f1?
s=60&d=retro&r=g)

### 󠀁[does what it claims. great support](https://wordpress.org/support/topic/does-what-it-claims-great-support/)󠁿

 [shagadelic](https://profiles.wordpress.org/shagadelic/) December 7, 2023

simple, straight-up, does what it claims. great support.

![](https://secure.gravatar.com/avatar/e738178f7a231a8539975c146be0848c6c4a947ad043b6bd9c259e6b0a6b99d5?
s=60&d=retro&r=g)

### 󠀁[Good](https://wordpress.org/support/topic/good-8051/)󠁿

 [chelminski](https://profiles.wordpress.org/chelminski/) July 8, 2023

I recommend

 [ Read all 6 reviews ](https://wordpress.org/support/plugin/mail-queue/reviews/)

## Contributors & Developers

“Mail Queue” is open source software. The following people have contributed to this
plugin.

Contributors

 *   [ WDM ](https://profiles.wordpress.org/wdm-team/)

“Mail Queue” has been translated into 1 locale. Thank you to [the translators](https://translate.wordpress.org/projects/wp-plugins/mail-queue/contributors)
for their contributions.

[Translate “Mail Queue” into your language.](https://translate.wordpress.org/projects/wp-plugins/mail-queue)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/mail-queue/), check
out the [SVN repository](https://plugins.svn.wordpress.org/mail-queue/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/mail-queue/) by 
[RSS](https://plugins.trac.wordpress.org/log/mail-queue/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.4.6

 * Added support for the `pre_wp_mail` hook

#### 1.4.5

 * Check for incompatible plugins
 * Minor bug fixes

#### 1.4.4

 * Performance improvements for large emails

#### 1.4.3

 * Updated bulk actions for log and queue lists

#### 1.4.2

 * Database improvements

#### 1.4.1

 * Refine detection for html when previewing emails
 * Catch html parse errors when previewing emails

#### 1.4

 * Added support for previewing HTML emails as plain text
 * Improved preview for HTML emails
 * Minor bug fixes

#### 1.3.1

 * Added support for the following `wp_mail` hooks: `wp_mail_content_type`, `wp_mail_charset`,`
   wp_mail_from`, `wp_mail_from_name`
 * Minor bug fixes

#### 1.3

 * Refactor to use WordPress Core functionality
 * Added option to set the interval for sending emails in minutes or seconds
 * Added feature to send emails with high priority on top of the queue
 * Added feature to send emails instantly without delay bypassing the queue

#### 1.2

 * Performance and security improvements

#### 1.1

 * Resend emails
 * Notification if WordPress can’t send emails

#### 1.0

 * Initial release.

## Meta

 *  Version **1.4.6**
 *  Last updated **4 months ago**
 *  Active installations **900+**
 *  WordPress version ** 5.9 or higher **
 *  Tested up to **6.9.4**
 *  PHP version ** 7.4 or higher **
 *  Languages
 * [English (US)](https://wordpress.org/plugins/mail-queue/) and [German](https://de.wordpress.org/plugins/mail-queue/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/mail-queue)
 * Tags
 * [email](https://twd.wordpress.org/plugins/tags/email/)[email log](https://twd.wordpress.org/plugins/tags/email-log/)
   [mail](https://twd.wordpress.org/plugins/tags/mail/)[queue](https://twd.wordpress.org/plugins/tags/queue/)
   [wp_mail](https://twd.wordpress.org/plugins/tags/wp_mail/)
 *  [Advanced View](https://twd.wordpress.org/plugins/mail-queue/advanced/)

## Ratings

 5 out of 5 stars.

 *  [  6 5-star reviews     ](https://wordpress.org/support/plugin/mail-queue/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/mail-queue/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/mail-queue/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/mail-queue/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/mail-queue/reviews/?filter=1)

[Add my review](https://wordpress.org/support/plugin/mail-queue/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/mail-queue/reviews/)

## Contributors

 *   [ WDM ](https://profiles.wordpress.org/wdm-team/)

## Support

Issues resolved in last two months:

     0 out of 1

 [View support forum](https://wordpress.org/support/plugin/mail-queue/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://www.webdesign-muenchen.de)