Emails sent by WordPress websites and blogs can go missing. Unlike the physical post, we can’t blame it on the delivery guy, either. So, the question for many site owners is how to fix WordPress not sending my emails issue. This tutorial identifies the common causes and offers some straightforward guidance on fixes that work.
Site owners must have a reliable WordPress email service. You and any subscribers need to receive notifications for updates and replies to comments, etc. Password recovery, automated updates, potential log in breaches, and other security alerts are more reasons.
Why WordPress Emails go AWOL
Not all WordPress site owners experience failed email delivery. Even so, the problem is widespread enough to justify a guide on how to resolve the issue.
Fortunately, most email delivery failure is due to three resolvable causes:
- Temporary or permanent issues with host server configuration
- Automated WP emails flagged as Spam
- Emails send from contact forms appear spoof-like
In cases 2 and 3, the emails might arrive at their destination. The problem is they end up in the recipient’s spam folder, which means they’re either missed or ignored.
#1 Server Host Not Properly Configured
A less obvious—yet the most common—cause for WP emails going missing points to server hosts. Many of them place restrictions on PHP ()mail functions to reduce auto-generated spam. WordPress uses the PHP mail function by default to send emails, as do contact form plugins. In some cases, WordPress emails may not even reach the recipient’s SPAM folder.
The fix is to use the Simple Mail Transfer Protocol (SMTP) instead of the PHP mail() function.
Simple Mail Transfer Protocol (SMTP)
SMTP is a communication protocol used specifically for electronic email transmission. This internet standard protocol uses proper email authentication (see next). It’s a technical solution that guarantees much higher email deliverability compared to PHP ()mail functions.
Proper email authentication
Proper email authentication verifies an email is genuine, not forged. It can verify that the email comes from the person or place it claims to. Thus, the purpose of email authentication is to block fraudulent and potentially harmful emails forged by spammers or used in phishing attacks.
WP Mail SMTP by WPForms
The fix is pretty straightforward when the problem is caused by PHP ()mail functions. We’re going to use the hugely popular WP Mail SMTP plugin by WPForms. It now has over 2,000,000 active installations, which speaks volumes. This plugin configures WordPress to use SMTP for sending emails in place of the default—and problematic—PHP mail() function.
Read ‘How to Install New Plugins’ first if you’re a new and inexperienced site owner.
Install and Activate the plugin, WP Mail SMTP by WPForms.
Next, go to WP Mail SMTP => Settings from the Dashboard side menu.
You’re now at the General Settings screen.
In the From Email field, enter the address you want the site’s emails sent from. This address must be the same one you use for the SMTP mailing service.
Leave a tick in the checkbox Force From Email. This setting prevents other WP plugins from changing the address entered in the FROM Email field.
The next field is ‘From Name’. Consider using your real name rather than that of the website. It’s a personal touch that looks professional, and it creates more trust with recipients.
Put a tick in the checkbox Force From Name. This setting prevents other WP plugins from changing it to the values used by their settings.
Finally, place a tick into the Return Path box. This setting uses your FROM Email address to let you know of any failed delivery messages and those that bounce.
You’re now at the Mailer section.
PHP is selected by default, which is currently in use. PHP ()mail functions is the most likely cause of WordPress not sending your emails, so we need to move away from that.
You’re free to choose any of the following services from the options below. You can even suggest a different mailer if the one you want to use isn’t listed here. Make sure the service offers enough free emails for your needs per month.
- Other SMTP
Amazon SES, Outlook, and Zoho Mail are only available through the plugin’s PRO plan.
A separate form opens for each service to complete its setting up process.
Other SMTP Mailer
We’re going to use Other SMTP for this example with a domain name email address. There are a few reasons for this. The Other SMTP Mailer uses a super simple set up form, and you don’t have to create an API key. That makes it much easier for beginners. You can then test your missing WP email issue in minutes, which is the whole purpose.
Note: You might want to use the ‘Other SMTP Mailer’ for testing purposes only. Also, consider an alternative if your site has other users with admin-level access. That’s because Other SMTP stores email usernames and passwords in the WP dashboard. This isn’t an issue if you’re the only admin-level user, of course. Even so, other mailer services do offer better security.
You need your email settings details to complete the form. If you don’t know your password, you have to reset it. That’s because web hosts and email providers can’t reveal email passwords for security reasons, so the only option is to reset them.
Follow these quick steps to reset your email password in cPanel and access the other settings.
The 3 email details you need to complete the simple Other SMTP Mailer form are:
- Username (this is the account email)
- Email password
- Outgoing server
Tip: Skip this section and jump to the Other SMTP form if you already have your email details.
Log in to your hosting cPanel account for your WordPress website.
Point to note: Your cPanel could look different from the screen-prints below if it uses another theme. Don’t worry; you can still find the same controls under the same sections.
Navigate to the cPanel Email section, then click Email Accounts icon.
Click the Manage button to open the email manage screen.
You’re now at cPanel’s ‘Manage an Email Account’ screen.
Enter your new password under the Security section or use the Generate button to create one.
Tip: Click the arrow right of the new password field to open the password generator. The PW generator lets you format a new password based on the values you select.
Save the new password somewhere safe as you’re going to need it shortly.
Scroll down the screen and click UPDATE EMAIL SETTINGS to save the changes.
cPanel returns you to the Email Accounts page. If it doesn’t, click the Go Back link to the right of the UPDATE EMAIL SETTINGS button.
Now click the CONNECT DEVICES button to the right of your email.
You’re now at the Mail Client Manual Settings screen.
The ‘Secure SSL/TLS Settings (Recommended)’ box has the details you need to set up SMTP.
Complete the Other SMTP Form
Return to the WP Mail SMTP screen and scroll down to the Other SMTP form.
First, copy and paste the Outgoing Server into the SMTP Host field.
Next, select SSL for the encryption type.
The above setting auto-generates the SMTP port. It should be 465, so change it if it’s different.
Leave Auto TLS and Authentication set to ON.
Copy & paste your email address into the SMTP Username field.
Copy & paste the email password you saved earlier into the SMTP Password field.
Click Save Settings to complete the process.
That’s all there is to it. Now let’s test the new SMTP email setup.
Click the Email Test tab at the top of the WP Mail SMTP plugin screen.
Enter any email address you have access to in the Send To box, then click Send Email.
The plugin displays a message to confirm the test email was sent successfully.
A ‘Congratulations’ email should be delivered to the recipient inbox. It may take a few minutes to come through, so expect some delay.
All emails sent from WordPress now use the reliable SMTP protocol instead of the PHP mailer service. Hopefully, it has put an end to your WordPress not sending emails issue.
Consider using one of the more secure mailers from the plugin if this has fixed your issue. They take a bit more setting up, but each service provides a link to their set-up documentation.
Sent email failure
Recheck the General Settings if the failed email delivery continues to be an issue. If the settings are correct, then move to the next problem and its potential solutions.
#2 Automated Emails Flagged as Spam Issue
Remember to check the SPAM folder if you and others don’t receive WordPress emails. Some desktop email clients have overly strict spam features. They often mistakenly flag free emails like Gmail, Yahoo, and Outlook, etc., as spam. It’s even more likely with auto-generated messages. You can whitelist these emails—and ask recipients to do the same—but it’s a hassle.
Choose safer emails for WordPress
Domain name emails are much more professional than the free options. For that reason alone, domain emails have much higher delivery rates. They’re even better if you avoid catch-all usernames like [email protected], [email protected], and [email protected], etc. Better choices would be [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], and so on.
Related reading: How to Change the WordPress Admin Email.
#3 Contact Forms Emails Appear Spoof-Like
Recheck the following before continuing to the contact form issue:
- You’ve properly configured and tested the WP Mail SMTP plugin for WordPress
- Your emails are not going into the SPAM folder
The not sending email issue can also be traced back to contact form plugins. Some email clients flag these messages as spoof or suspicious. Spoof emails are like Spam in that they’re associated with bad actors and used in phishing attacks. They’re sometimes flagged as spoof because there’s an email conflict in the dispatched messages (see next section).
The problem with WordPress contact forms
The confusion exists when the FROM field shows the email of the person who filled out the form. Email clients see that the message comes from your WP account, not the one in the FROM field. This raises suspicion, and the client flags the message as spoof email. Thus, email client’s must not acknowledge the address in the form’s FROM field.
Reconfirm there’s a tick (check) next to ‘Force from Email’ in the WP Mail SMTP plugin screen. If the setting is correct, then follow this simple procedure:
- Restore the default settings
- Save the changes
- Reenter the correct details
- Save the changes
- Send another Test Email
If the problem persists, it’s time to look at your contact forms.
How to fix the WordPress contact form
Go to Contact => Contact Forms from your Dashboard side menu.
Open the settings of the contact form you need to configure.
For most contact forms, the solution is to change the address in the From field to your WP admin email. This must match the address used in the WP Mail SMTP plugin. It’s also good practice to use a different email address in the contact form’s To field.
Save the changes and resend a test email.
Accessing these settings will be easier with some contact form plugins than others. Refer to the plugin’s documentation for guidance if you can’t find the required settings.
You now know how to test and fix the WP not sending email issues.