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:
- 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.
- The server's IP address is not one used to send email (primarily) so lots of email service provider firewalls block it.
- 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:
- Theme/Plugin/Core WordPress Functionality triggers an email
- wp_mail() does its magic
- Outgoing spam filters on the server (if applicable) have the opportunity to filter the message
- 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
The fastest way to confirm that messages are making it to wp_mail() is to test one, and see!
The best way to test is using a mail logging plugin. There are several free Mail plugins that have logging enabled.
Solid Mail works out of the box for exactly that purpose. Here's a quick video showing you how to test wp_mail() using Solid 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 the support team of the plugin or theme in question 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, that's where Solid Mail can take you the rest of the way!
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.
Solid Mail makes it less of a lucky guess, by connecting your site to an email service expressly designed to send email. Let WordPress (and your web host) do what they are best at, and that's not sending emails.
Get started with Solid Mail today. It's absolutely free.