How to Improve Email Delivery in WordPress

Web browser with Gmail open

One issue that many website owners will encounter at some point, is ensuring that the email being sent from their WordPress website is done so reliably.

Sometime, this doesn’t occur until you start customising the default emails in WordPress using a plugin, such as Better Notifications for WP.

Whilst many hosts send email the same way, using PHP’s default mail function, some disable this entirely, send it via another function, or they have more strict controls on how email is sent. As such, you may notice some email gets delivered and some doesn’t or maybe even nothing gets sent at all!
This may vary between plugins, themes, hosts, and an array of other factors depending on how each part of your website is running.

The article aims to give an overview of potential issues relating to email delivery on your website and how to improve email delivery in WordPress. These are listed in order of recommendation, below.


1. Use an SMTP Plugin for Improved Email Delivery

The most popular and probably most successful method is to use an SMTP plugin. I recommend using the WP Mail SMTP plugin as it features an easy to use set-up wizard to get you started. Additionally, the Pro version (affiliate link) includes an email log that allows you to check if emails have been sent out from your WordPress website. If emails are showing in the email log but not arriving in the recipients inbox, it’s possible that they’re getting marked as SPAM, being blocked at the host, or being stopped somewhere else along the way.
This is an easy step to take because it quickly highlights where a problem may be, it circumvents any restrictions that your host may be placing on sending email via PHP, and uses the more reliable SMTP method of email delivery instead.


2. Add an SPF DNS Record to your Domain Name

SPF is a type of DNS record that identifies which mail servers are permitted to send email on behalf of your domain. The purpose of an SPF record is to prevent spammers from sending messages with forged ‘From’ addresses at your domain.
The handy website, will help you to generate the information that you need in order to create a new SPF DNS record which you can then enter at your host.
Alternatively, there might be an easier method, such as ticking a checkbox in your hosting control panel, so it’s worth looking through the documentation at your host, or getting in touch with them, to see what they recommend with regards to implementing SPF records on your domain.


3. Set-up DKIM for your Domain Name

This allows senders to associate a domain name with an email message, thus vouching for its authenticity. This is done by “signing” the email with a digital signature – a field that is added to the message’s header.
UnlockTheInbox has a handy tool which will help you to create the information that you need in order create a DKIM DNS record.
Alternatively, again, there might be an easier method, such as ticking a checkbox in your hosting control panel, so it’s worth looking through the documentation at your host, or getting in touch with them, to see what they recommend with regards to implementing DKIM on your domain.


4. Are your Emails Getting Marked as SPAM?

If you’re concerned your email are getting marked as SPAM before it reaches the intended recipient, here are some tips to try to avoid this:

  • Ensure you’re sending emails from the same domain that your WordPress website is being hosted on. If you need to have replies go to another email address, use the ‘Reply To’ field instead of the ‘From’ field. Better Notifications for WP let you do this easily.
  • Avoid using lots of spaces, all capitals, or too many exclamation marks or question marks in your subject field. Additionally, avoid spammy sounding subject lines, such as ‘BUY NOW’, or ‘CLICK HERE’.

It’s always possible that your host, server, or email address is blacklisted. For whatever reason, you can check your domain against blacklists using MX Toolbox. If your domain does appear on a blacklist, you’ll need to get in touch with whoever hosts your host, or email provider, and find out what’s going on.


5. Use an SES or Transactional Email Service to Improve Delivery

If none of the above work, you can offload the task of sending email to a 3rd party email sending service, often called an SES or transactional email service. Popular options are Amazon SES, SendGrid, or my preferred option: Mailgun, which I use for this site. You can usually set this up in your SMTP plugin of choice too – for example, the Post SMTP plugin has options for connecting to SMTP, Gmail, Mandrill, SendGrid, and Mailgun, all out of the box.


6. Move to Another Host

If you’re on shared hosting, it’s possible that your ability to send email via your WordPress website is less than optimal.
A good recommendation for solid, managed WordPress hosting is Flywheel (affiliate link), whom I’ve had nothing but good experiences with. When hosted with them, any email that you send via your WordPress website is routed through SendGrid, a 3rd party transactional email service, which helps to improve email delivery. More information about their approach to email can be found in their help center.



With any luck, one of the above options should help you to fix or improve email delivery on your WordPress website.
If you need to customise the default emails in WordPress, take a look at my plugin – Better Notifications for WP.