Understanding email queues in WordPress: Enhance performance and deliverability

Illustration message queue

An email queue is an often overlooked but incredibly useful feature which is not included in WordPress core nor in most WordPress mailer plugins. However, it can make a significant difference in the performance and reliability of email delivery for your site. If your WordPress site sends a high volume of emails, which can slow it down or overwhelm your server, implementing an email queue might be a valuable solution to consider.

What is an email queue?

In general, an email queue is a system component that efficiently manages email delivery by accepting messages in bulk and releasing them one at a time. It works in the background to ensure that emails are sent at a rate that the communication channel can accommodate, providing a more reliable and organized email sending process.

Here’s how a queue is visualized by the folks at CloudAMQP:

A queue in a communication channel Image credit

What is an email queue in WordPress?

In the context of WordPress, an email queue is a feature or plugin that applies the email queue concept to manage and optimize the delivery of emails generated by your website. It works seamlessly with the WordPress environment to intercept, store, and process outgoing emails in an organized and efficient manner

How does an email queue help in WordPress?

Implementing an email queue in WordPress can offer several benefits that contribute to an improved user experience and better site performance:

  1. Reduced server load: WordPress sites with high email volumes can put significant strain on the server, affecting overall site performance. An email queue helps alleviate this burden by processing emails in batches, ensuring the server can efficiently handle the workload.
  2. Improved email deliverability: By sending emails one at a time at a manageable rate, an email queue reduces the chances of your messages being marked as spam or getting blocked by email service providers.
  3. Prevention of email flooding: Sending a large number of emails at once can lead to email flooding, which may result in emails bouncing back or getting lost. An email queue manages the sending rate, preventing such issues and ensuring a more reliable delivery.

Example 1: faster user interaction

One example of the efficiency provided by mail queues is their ability to decouple time-consuming processes from user interactions. For instance, when a user fills out a contact form, they don’t need to wait for the contact form to send out an email before receiving a confirmation.

Thanks to the email queue, the user receives a confirmation of their contact form submission almost instantaneously, while the email is sent out more leisurely at a later time. This separation of tasks results in a smoother and more responsive user experience.

Example 2: more efficient batch mail handling

A queue can significantly enhance the process of sending out a large number of marketing emails from a WordPress site by managing the email sending rate and reducing the burden on the server.

For example, imagine you have a WordPress site with a substantial subscriber base, and you want to send out a marketing campaign to all of them. Without an email queue, your site might attempt to send all the emails simultaneously, which could overwhelm your server, slow down your website, and even lead to emails being marked as spam or not delivered at all.

By implementing an email queue, your marketing emails would be stored temporarily and sent out in smaller, manageable batches over a specific time interval. Additionally, with an email queue in place, you can better manage the sending rate to comply with the email sending limits imposed by various email service providers, further improving deliverability.

How email queues work in WordPress

Email queues in WordPress work by intercepting outgoing emails and storing them in a temporary location – in the database or on the file system. The emails are then dripped out at regular intervals, which can be configured based on your preferences.

A typical email queue workflow in WordPress involves the following steps:

  1. An event triggers an email to be sent (e.g., user registration, comment notification, or order confirmation).
  2. Instead of sending the email immediately, the email queue system stores it in a temporary location.
  3. The email queue processes the stored emails at a set interval.
  4. The emails are sent to their respective recipients, and the queue is updated accordingly.

Here’s one implementation by the folks at Delicious Brains, creators of WP Offload SES:

The email queue process in WordPress, here applied to sending via Amazon SES Image credit

OK, I’m convinced, how do I set one up?

Great! Setting up an email queue in WordPress is a straightforward process. First, you’ll need to choose a suitable plugin that offers email queue functionality. Here are three popular email queue plugins to consider:

  1. Mail Queue (by WDM)
  2. SMTP Mailing Queue
  3. GD Mail Queue

Among the three queue plugins, only Mail Queue (by WDM) is a pure queue implementation. The other two plugins, SMTP Mailing Queue and GD Mail Queue, include mailer components in addition to their queue functionality. In contrast, Mail Queue is designed to work seamlessly with any existing SMTP mailer, offering a more versatile solution for those looking to integrate an email queue without changing their current SMTP mailer setup.

Alternatively, there are a few mailer plugins that implement queues natively. We’ve collected a list of several mailer plugins with queue handling features.

Once you’ve installed a queue plugin, you will typically be offered a set of configuration options related to the policy and timing of the queue:

Mail Queue by WD screenshot
Typical queue management features

Queue plugins will also show you the emails they have in their queue:

GD Mail Queue queue listing
A listing of emails in the queue

When you’re done with configuration, you can test the email queue to ensure it’s working correctly. Use the testing feature which should be available in your mailer plugin or in the queue plugin itself Send a test email to yourself or a team member, and you should be able to see the email appear briefly in the queue, then get removed as it’s sent out.

Further reading

Leave a Reply

Your email address will not be published. Required fields are marked *