Two common issues often plague newly created websites. The first is WordPress not sending emails, and the other is users not receiving emails or messages from WordPress sites. This can be highly frustrating, especially if your site relies heavily on user interaction through forms, subscriptions, newsletters, etc.
This article explains the circumstances that can cause these issues to occur and suggests some ways to overcome them.
Why WordPress is Not Sending Emails
Problems sending emails are usually caused by your host server not being configured correctly to use the PHP mail() function. This is what many web applications, including WordPress, use to distribute emails from PHP scripts.
When the server is configured correctly, PHP mail() can work without any problems at all, and generally, no tinkering with settings should be necessary from the user. That said, it is not unknown for server hosts to place temporary, or even permanent, restrictions on the use of PHP mail(). That may sound selfish, but the reason they do it is to reduce automated spam and phishing emails.
How to Fix WordPress Sending email Issues with SMPT
Switching to SMTP for sending mail is the most common option when WordPress won’t send emails.
SMTP stands for ‘Simple Mail Transfer Protocol’ and is widely regarded as setting the standard for sending emails. Using SMTP, emails originating from your site will not suffer the authentication issues that often plague PHP mail().
The followings steps describe how to switch your WordPress to send emails using SMTP:
Step 1 – Install the WP Mail SMTP plugin
Log into your WordPress admin panel and then go to the plugins section. Search in the WordPress plugin directory for the WP Mail SMTP plugin by WP Forms. Once you have located it, install and activate it in the usual way.
Once installed, a wizard may pop up automatically. You can follow the steps in that, or alternatively, you can close it as we have done and do the configuration manually.
On the menu bar to the left-hand side of the WordPress admin panel, scroll down to “WP Mail SMTP” and click on it:
Article Continues Below
Step 2 – Enter the email details
You should now be in the settings panel for WP Mail SMTP. Scroll down the page so you can see the section titled “Mail.” In that section, you will need to do the following:
- Enter the email address you want to send the emails from into the “From Email” field.
- Check the “Force From Email” box.
- Enter the name you want to emails to show as being sent from in the “From Name” field.
- Check the “Force From Name” box if you want to stop other plugins from sending a different name.
- Select “Other SMTP” as your mailer. Another field titled “Return Path” will appear – check the “Set the return path to match the From Email” box.
The screenshot below shows the fields you should have filled in and boxes you should have checked:
Step 3 – Gather your website’s SMTP details
This step can vary depending on your hosting provider. Generally speaking, you will need to log into your hosting account, and from there, open cPanel. Within cPanel, navigate to “Email“:
Click on “Email Accounts,” and you will see a list of all email accounts that exist on your domains. Next, find the email address which you will be using and click on “Connect Devices“:
You will now see a screen containing all the mail configuration information you need:
We advise you to check your hosting provider’s documentation or knowledge base for exact details on how to find your mail configuration information. The details we have provided in this step relate to GreenGeeks, but things vary considerably between hosting companies.
Step 4 – Enter the SMTP details into WP Mail SMTP
Go back to the WP Mail SMTP admin panel and scroll down to “Other SMTP.” Enter the fields highlighted in the screenshot below using the data you obtained from cPanel in Step 3:
Note that the SMTP username and password will be the same as those you used when you created the email account for your website.
Step 5 – Save the settings
Hit “Save Settings,” and you are all done. Emails from your website should now send via SMTP rather than PHP mail().
Please note that you may need to ensure that the “From” email address in any form plugins (for example, Contact Form 7 or WP Forms) that you may be using is identical to the one you entered into the SMTP.
Why You’re Not Getting Emails from WordPress
You may be relying on your WordPress installation to automatically send you notifications of things like user registrations, comments on blog posts, password resets, contact form entries, etc. However, in the early days of a new site, such notifications often may not get through to you at all. And it figures that if you are not getting emails from your own website, chances are your users aren’t receiving things sent to them either.
Such issues are generally caused by mail servers treating messages and notifications as spam. This is usually due to incorrect set-up and configuration of your site’s email authentication, or it could be that changes to the DNS were made but not updated.
With spam being an enormous issue, email services are constantly evolving to filter out as much of it as possible. So while some may get directed to email spam folders, plenty gets binned immediately, and the user never sees it. Sadly that can include stuff originating from your WordPress site.
How to Stop WordPress Emails Going to Your or Your User’s Spam
Setting up email authentication for your site is not a particularly difficult affair if you follow the steps below. However, please be aware that how you actually go about this does depend on the mail platform you are using. In our example, we have used MailChimp as that is probably the most popular.
Step 1 – Verify your email domain
- Click the “Website” icon
- Click on “Domains“
- In the “Email Domains” section, click “Verify Email Domain.“ Enter the email address you need to verify
- Click “Send Verification Email“
(Image courtesy of MailChimp)
Fingers crossed, you will then receive a verification email. In that should be a “Verify Domain Access” button – click on that. Alternatively, you can insert the verification code manually into the “Enter verification code” field in the pop-up and click “Verify.” If all is well, you’ll get another pop-up confirming the domain is successfully verified. Next, click “Done” to return to the “Domains” page.
Step 2 – Locate the domain authentication information
You should back to the “Domains” page. If not, click on “Website” then “Domains.”
Next, you need to:
- Locate your domain and click on “Authenticate.”
- A pop-up will appear titled “Domain Authentication.” It will look something like this:
(Image courtesy of MailChimp)
This pop-up contains the information you need to create new DNS records in your hosting account.
Step 3 – Locate the DNS records for your website
You now need to open a new window or tab in your browser and log into your domain host. Once you are in there, access the DNS records. This varies from host to host – it may be through the domains list, or you may have to go in through cPanel. The following example is for cPanel:
Clicking on “DNS Zone Editor” will present you with a list of all your domains.
Step 4 – Add the new Domain authentication information to your DNS
Identify the domain you need to add the records to and click “+ CNAME Record“:
You will now see a pop-up form – this is where you will enter the first CNAME record, the data for which is contained in the pop-up in Step 2:
Using the example in Step 2 above, this is what would be entered into each field:
- Name: k2._domainkey.thepottedplanter.com
- CNAME: dkim2.mcsv.net
Hit “Add A CNAME Record” to save it.
Repeat this Step 4 to create the second CNAME record. Again, using the example in Step 2, the following data for this second record would be:
- Name: k3._domainkey.thepottedplanter.com
- CNAME: dkim3.mcsv.net
Hit “Add A CNAME Record” to save it.
If your CNAME Record input screen requires you to enter a TTL value, set it to “Default.”
For more details on how to set up email authentication on MailChimp, head over to the help section of their website. If you are using a different service, we strongly suggest you check the documentation for that service – it may well be different from what we have described above, particularly the CNAME records.
Incidentally, this authentication method is known as “DKIM” or “DomainKeys Identified Mail.” It detects forged sender addresses within emails, something which fraudsters often use in phishing and spam emails. It operates by allowing the receiving email service to verify that an email claiming to originate from a particular domain has indeed been authorized by the owner of that domain. For more detailed information about DKIM, you can head over to the DKIM website.
We will also be touching on some other methods of authentication later in this article.
Other Ways to Fix WordPress Email Issues
There are several other things you might wish to try if you are still having issues with emails not sending, or they are simply not seeing the light of day due to being classed (rightly or wrongly) as spam.
Option 1 – Consider the email address you are using
Your choice of email address may be what is causing you problems.
The likelihood is you are using something like email@example.com, contact@ yourdomain.com, info@ yourdomain.com, etc., in which case there is a considerable risk that it is being seen as spam by many email services.
One workaround is to ensure your email address looks professional. That means absolutely no Hotmail or other free addresses. Instead, keep it smart by creating one using your website’s domain, and start it with something like your name, job function, or department. For example, “firstname.lastname@example.org” looks much more professional and far less spammy than “email@example.com” or “firstname.lastname@example.org,” right?
Option 2 – Ask your subscribers to add your email to the safe senders list
It is worth asking your subscribers when they register on your site to add your email address to their safe senders list. The safe senders list is sometimes referred to as a “whitelist” and is often their regular contacts list.
Company email servers and free services like Gmail or Hotmail can have very aggressive policies on spam. If your email address is not on the recipient’s safe sender list, emails you send them may be automatically dismissed as spam. Worse still, it’s also possible that your email won’t even make it into the recipient’s spam folder.
It is also a good idea to include a small note suggesting the same in any emails you send.
Option 3 – Send email using a Gmail account
It is possible to send your email through a Gmail email address. To do this, you will need the WP Mail SMTP plugin, which we already discussed above. In this instance, we do suggest that you use the plugin’s built-in wizard to help you with the installation and configuration. You will also need to access the Google developer’s console to create secure credentials.
In all honesty, we don’t recommend using this option as it is considerably more involved than the method of switching to SMTP we described earlier in this article.
Option 4 – Use alternative authentication methods
We have already discussed the DKIM authentication method, but some others are also in use that you might like to investigate:
- Sender Policy Framework (SPF)
In this method, your ISP validates the SPF record – which is attached to an incoming email – against the sender’s IP address and the IP address of the website to see if they match. If they do, then the email is not seen as spam or containing any kind of threat. If there’s a mismatch, it gets marked as spam or phishing. Big corporates, including Google, widely use this method. Like DKIM, SPF requires certain records (in this case, TXT) to be added to your website’s DNS to work.
- Domain-based Message Authentication, Reporting, and Conformance (DMARC)
DMARC works by permitting the email sender to indicate that either the SPF or DKIM (or both) protocols are in operation to protect a message. That means to use it, you must configure it for both DKIM and SPF. By doing so, the recipients (i.e., your subscribers or customers) benefit from greater protection against attacks such as phishing or spoofing. You can learn more about this method of authentication at the DMARC website.
- Sender ID
Sender ID also validates IP addresses (email sender and website) similar to the way SPF does, plus it requires SPF to function. However, it also validates against the Purported Responsible Address (PRA), namely the sender’s email address, which is visible in the email. This method is a development by Microsoft and is often likened to a partnering of SPF and their caller ID for email. You can read more about Sender ID at Microsoft’s Sender ID webpage.
Option 5 – Check your plugins
If you are using plugins to create contact, subscription, or other types of forms, it can happen that they are using a different email address to the one you want to be using. Examples of such plugins include Contact Form 7, WP Forms, JetPack, etc.
If you are using the WP Mail SMTP plugin, ensure that the “Force from Email” checkbox in the settings has been checked – that will override any email addresses other plugins are attempting to use. If you are using a different SMTP plugin, check the settings for that as there may be a similar option available.
Where you are not using SMTP, ensure that all your forms plugins and also the WordPress default contact form are all using the correct email address for sending.
And Now Over to You
So, we have given you some real insights into how you can solve issues with your WordPress site not sending emails. It is indeed very frustrating when it happens, particularly if you are somewhat new to creating websites and rely on visitors subscribing and interacting.
We are really interested to learn whether you have had any issues with your WordPress email not working, and if so, which method(s) did you use to overcome them. Have you switched to SMTP? And if you use a service such as MailChimp, did you manage to authenticate your email easily? Please go ahead and share your experiences and thoughts in the comments section.