WordPress email errors are as common as they are frustrating. People most commonly experience one when WordPress fails to email copies of completed contact forms.
However, such errors can also occur anytime you try to send an email from your WordPress account through the PHP mail() Function or using a WordPress SMTP email address.
Whatever the context in which you have found WordPress not sending email properly, this guide will help you find and address the root cause of the issue - and then solve it.
Here are the main steps to help solve WordPress Not Sending Email error:
- Step 1 - Test mail server settings
- Step 2 - Troubleshoot using the Check Email plugin
- Step 3 - Stop using the WordPress PHP mail tool
- Step 4 - Change outbound email ports
1. Test Mail Server Settings
The first step to fixing WordPress 'not sending email' error is to check if WordPress is correctly configured to send emails in the first place.
You see, the majority of web hosts that offer managed WordPress hosting don't provide email services, so the likelihood is that your error is being caused by a mistake in your WordPress settings, or because of a compatibility problem.
However, that's not the only reason that you might run into a WordPress not sending email error. The problem might also be caused by the particular WordPress email plugin that you're using, for example.
To find out if your WordPress email settings are in good health, install the Check Email plugin.
(If you don't know how to add a plugin to your WordPress, check out our WordPress plugin installation guide.)
Search the WordPress plugin directory for 'Check Email', and then click 'Install Now' next to the correct plugin.
Although it's an older plugin, it still works fine with the latest iteration of WordPress since the way WordPress handles emails hasn't changed. Once it's been added to your account, activate the plugin and then enter the newly created 'Check Email' option in the 'Tools' section of the sidebar.
Now, simply enter an email address you have access to, and click 'Send Test email'.
You'll then see a message that says "The test email has been sent by WordPress. Please note this does NOT mean it has been delivered".
Next, check the inbox of the email address you entered in the previous step. If your WordPress is configured correctly to send emails, you'll have a new message in your inbox that contains the line "This test email proves that your WordPress installation...".
2. Troubleshoot Using the Check Email Plugin
Using the results of the last step, do some detective work to find the cause of "WordPress not sending email" error. Basically, whether you received an email or not indicates what the cause of your problem is. Three different things might have happened:
- 1. The email was in your junk mail inbox
- 2. The email was in your regular inbox
- 3. The email didn't make it through at all
If your test email appeared in your 'Spam' or 'Junk' inbox, it means your email host believes there's something suspicious about the emails your WordPress is sending, even though your settings are actually correctly configured.
Your WordPress emails may appear suspicious to your email provider because known spammers are using the same servers that you are.
If that's the case, consider switching to a more reputable web host for your WordPress hosting, or contacting your current host about the issues of your server - maybe you'll get moved.
However, if you only need WordPress to send emails to a handful of email addresses, you can address the problem by adding your WordPress email address to the 'Safe Senders' list of each email account. This will be an appropriate fix if you run an eCommerce website with a small team of employees and need each of them to be notified whenever a purchase is made.
If the test email appeared in your regular email inbox, the problem is with the particular plugin you are using to send WordPress emails. You should check that the plugin's email settings are configured correctly and contact the plugin developer for assistance if you can't see what's wrong. You could also consider using an alternative plugin.
And if you didn't receive a test email at all, it means that WordPress isn't correctly configured to send emails, or that your host is blocking the WordPress email function. Keep reading this guide as I'll show you how to address those issues too.
3. Stop Using the WordPress PHP Mail Tool
If you have been sending WordPress emails with the PHP mail() Function from within your site's WordPress code, you should be able to solve your troubles by switching to SMTP.
Although it is theoretically possible to send emails properly with the mail() function, in practice, it's a problematic method because it doesn't allow for proper authentication. This regularly results in email getting sent to your recipient's junk inbox, and also often means emails don't get released in the first place because lots of hosts don't support PHP email.
SMTP is a more secure email system and is almost universally supported. Using it can also prevent your email from being caught in spam filters. Setting up a WordPress SMTP server doesn't take long and will allow you to manage your WordPress email through a third party plugin like MailGun or G Suite, both of which are more user-friendly than PHP code.
I won't go into the details of how to configure your WordPress SMTP server as you can read my separate step-by-step walkthrough on how to configure WordPress email. But in short, you will need to create an email account through your host's control panel and then link it to your WordPress with a plugin such as WP Mail SMTP, which is a helpful little plugin released by WPforms.
4. Change Outbound Email Ports
Follow this step if you were already using a WordPress SMTP client, or have just switched over to one and found WordPress still refuses to send emails. In this situation, changing your outbound SMTP port may well solve your problems. The SMTP email system requires access to an outbound and inbound server port, but sometimes hosting providers block certain port numbers for security reasons.
Google Cloud-based hosts, for example, block any connections made through port 25, but may allow outbound SMTP connections through ports 465 and 587, so try setting your outbound WordPress SMTP port to one of those. You can also experiment with using port number 2025 if the other two don't work.
Each time you change the outbound port number, check if your problem has been fixed by sending another test email with the Check Email plugin, as you did in step two. As soon as you see a test email appear in your inbox, you'll know the issue is resolved.
If your WordPress sending email functionality is still broken after you've switched ports, contact your web host to find out which ports are blocked on your server. You could also request that they unblock a specific port for you, which they may be willing to do as long as they know you are aware of the potential security risks.
WordPress Email Not Working - Final Thoughts
When you find that your WordPress sending email feature isn't working, it can be an extremely stressful experience. You may well have an urgent message to transmit through your WordPress site, and the error often means you have no way to know if the recipient will even get it.
Don't forget, whenever you change a server setting, or request a change from your web host, send another test email using the Check Email WordPress plugin. It's an extremely useful tool, so take advantage of it!
Hopefully, by following this guide, you were able to pinpoint and actually solve the WordPress not sending email problem. If you ran into trouble, don't hesitate to ask me for help in the comments below!