Photo by Brett Jordan

In my many years of doing web development, I’m not sure I’ve been asked a question more than “Why is my site not sending emails?” – or some variation of the question at least. The problem is especially common in WordPress sites but it’s actually not WordPress’s fault.

How your WordPress site sends mail

If you’ve been using WordPress long enough, you’ve likely heard or at least seen the term “PHP” before. This is the language that WordPress is written in and is the language that translates your site’s content and actions to the server.

One of these actions is to send email on your site’s behalf. In almost every case of undelivered site mail that we’ve seen, the problem wasn’t with WordPress triggering the action but PHP being able to carry out the request.

Unfortunately, this problem isn’t inherit to PHP itself and can’t be fixed through patches. Not even via the newly released PHP v8.0. 

PHP has trouble sending mail

There are lots of reasons why PHP may be unable to execute your request to send an email. One of the biggest nowadays is that so many people wisely use a third-party service to externally host their emails, such as G-Suite or Office 365.  Your website doesn’t have a way to ping these systems on your behalf and request that an email be sent so the action fails before it really even gets off the ground!

If you use local email hosting, which we do not recommend for a number of reasons, it can at least process the request but reaching the person’s inbox is another challenge entirely! The method for sending this email is different than if you were to send it yourself, which causes email providers and spam filters to detect something unnatural about its origins.

Depending on the spam filter, email provider, and how fine-tuned the server that hosts your website is, it may be getting caught and filtered out before it even hits the person’s inbox. In some cases, it won’t even put it in the person’s spam filter!

Verify your emails

So how do I fix this problem then? The answer, regardless if you are using local or external email hosting, is to use a third-party SMTP service to verify that your site’s emails are actually coming from you. I won’t go into what and exactly how an SMTP service works in this blog post, but these services are able to work with email providers and reputation management companies to ensure almost 100% email deliverability.

Many of the most popular providers, such as MailGun or SendGrid, offer a free tier to their service that allows anyone with a WordPress site to start using these services. However, you’ll quickly run into the daily and monthly limit that they set – even for low-traffic sites. Well maintained WordPress sites have a lot to communicate with their administrators and these alone will usually get you near or above the cap.

This is one of the many reasons we include a subscription to our preferred SMTP provider to all Maintenance Plan subscribers. We’ll connect your site to our account using a secure API process that only allows the security keys to be seen once. This ensures security and that no one can use the service to send emails as you – even if our account were to somehow be hacked.

So why pay $15/mo or even $90/mo to ensure email deliverability when we can handle it for you – in addition to the rest of your site’s security, optimizations, and everyday maintenance – for only $49/mo?