Diagnosing Email Deliverability Problems in WordPress

The power of WordPress is that you can install it on your own server (or the server of a web host of your choosing) and be up and running in minutes with a powerful website-building platform. That flexibility comes with certain drawbacks and known issues, and one of those is email deliverability. 

WordPress has a function called wp_mail() that essentially uses the same server where WordPress is installed to send an email. It's notoriously unreliable, for multiple reasons:

  1. There's no verification of identity or ownership of a domain within wp_mail(), so spammers and scammers will try and use it to send mail purporting to be from domains they don't own.
  2. The server's IP address is not one used to send email (primarily) so lots of email service provider firewalls block it.
  3. Since WordPress is so ubiquitous at this point, it's a numbers game: lots of servers sending dubious emails means it's easy for email firewalls to just default to blocking those messages.

The lifecycle of a WordPress-sent email

To troubleshoot emails, you'll need to visualize where the wp_mail() function lives relative to other key aspects of WordPress. This rough oversimplification is helpful to know where to start when you've got a problem with WordPress email:

  1. Theme/Plugin/Core WordPress Functionality triggers an email
  2. wp_mail() does its magic
  3. Outgoing spam filters on the server (if applicable) have the opportunity to filter the message 
  4. Incoming spam filters on the receiving end have the opportunity to filter the message

WordPress itself (and therefore themes and/or plugins as well) are only accountable for getting the message to wp_mail(). Once it has passed to steps 3 and 4, that's something you'll need to troubleshoot at a higher level.

How to determine if your email is making it to WP-Mail


If you follow those steps, and find that a plugin or WordPress itself is not triggering an email at all, that's something that the SolidWP Support team can help with, and you're likely able to see something by enabling WP_DEBUG on the site.

If it does make it all the way to wp_mail but you're still not seeing it in the right inbox on the other end, read on!

How to give your outgoing Email a fighting chance

As a result of the fragility of the WordPress email system, an entire industry has sprung up to help site owners be sure that their messages are hitting inboxes. Your WordPress website deserves better than just hoping that wp_mail() gets lucky.

Various plugins exist for both diagnosis as well as email deliverability. If you rely on your WordPress site for anything, you need to invest in a solution for email. 

The following list are products that the SolidWP support team uses and recommends. 

  • SendWP (Super easy to set up, requires no tech skills at all)
  • WP Offload SES (There's a free version, and it requires a bit of knowhow on Amazon SES)
  • Mailgun

While not officially affiliated with SolidWP, these products will ensure that emails get delivered. 

One final note: be wary of using SMTP to send emails, especially for any even moderate amount of volume. Transactional email is technically not something that SMTP is supposed to be used for, and those providers (Google, Outlook, etc) will terminate your account for running afoul of the limits (which are often arbitrarily defined and penalized).

Have more questions? Submit a request
Powered by Zendesk