WordPress Emails Not Working

wordpress security
Securing a WordPress Site
July 24, 2020
SSL Certificates HTTPS Wordpress
Securing your WordPress site with SSL (HTTPS)
August 7, 2020

Wordpress EmailsProblems with WordPress emails not sending or arriving are common; Form results might not arrive even though the form seems to be ok and/or plugin notifications never arrive. This can be due to one or more factors. Sometimes there is a simple fix and sometimes, when all avenues have been exhaused, the only thing left to do is make that dreaded call to your server/host administrator.

Let’s try and avoid that call.

WordPress form results are sent as emails, to successfully do this;

  • The server that the website is sat on has to have been configured to handle outgoing email ‘traffic’
  • If the email is going to an external email server, any firewall inbetween must be configured to allow outbound email from the web server
  • The server that is receiving the emails may need to be set to accept emails coming from the web server

That all sounds very complicated to most of us that have never dealt with such things, so let’s break it down and see if we can find out where the problem lies.

Can my web server send out emails?

WordPress will try and send emails out using the SMTP protocol, which is built in to most server setups. ‘Most’ being the key word here, an increasing number of WordPress hosts are disabling email hosting for security reasons, but this needn’t mean you’re stuck.

First, let’s check to see what the situation is. We’ll use a simple plugin for this, it’s called Check Email, developed by MachoThemes, you can read about it here.

Install the plugin, enable it and then from your WordPress Tools menu, select Check Email. Fill in your email address (preferrably one that uses a different domain from the website itself) and click the button to send. Wait a while and check your inbox.

If you received the email then you’ve got an issue with the form/plugin that isn’t sending results. Check the email addresses configured in the plugin itself and the main email address for your WordPress admin account. If they all look ok, then you’ll need to ask for support from the developer.

If you didn’t receive an email and you’ve left it a couple of hours just in case, then try one more time, with a different email address

  • If neither of the test emails arrived, read on below.
  • If one did but the other didn’t, then we know that WordPress can send emails successfully, but not to some addresses. If the failed test was sent to an email address with the same domain as the website has, that’s fairly common, see below.

Neither of the test emails worked

This probably means the server can’t or won’t handle outgoing emails. We can try to get around that by using another plugin. First, let’s remove or at least disable the Check Email plugin.

Once you’ve done that, go to Plugins > Add New and do a search for WP Mail SMTP by WPForms. Install it, activate and go to the settings – you can use the Lite version for free. At this point you’re going to be given a choice of services to use for routing emails, most of which will cost you money, but if you have a Gmail or GSuite account set up with Google, then you can use their SMTP service for free – set a free gmail account up now if you don’t have one or would prefer to keep your WordPress emails seperate.

NOTE: All of your emails will come from this GMail/GSuite address, so use a suitable name@gmail.com. If your business email runs through GSuite then use that, all your emails will then come from the correct, matching domain name.

With the GMail/GSuite login credentials to hand, follow the instructions here.

Once you’ve followed all of the instructions, you should now have working email sending from WordPress. The WP Mail plugin has a test email function, use that to check.

Emails to an address that uses my domain name don’t work, but to a different address they do

If your email server is checking for address spoofing (which most are), then incoming emails sent from your webserver may well be treated as dangerous … it works in this way;

Your form results are set to send from wordpress@yourdomainname.com, a lot of form plugins will only allow the email domain name used to be the same as the site uses, you can’t change this. The form results are sent out from the webserver to the yourdomainname email server.

That server says “hang on, I didn’t send this, the (hidden) email header details are all wrong, it must be spoofed, I shall bin it”. This is a perfectly acceptable standard configuration for an email server, so what can be done?

You have two options:

  1. Add a rule on the email server that allows incoming email from your webserver – You’ll need the IP address of your WordPress server to do this and a friendly email server administrator.
  2. Set WordPress up to send your form results and plugin notifications to a third-party email address, eg a Gmail account and set that account to forward all emails to your preferred address. Some plugins don’t have the option to choose a notification address, they just use the original WordPress admin address – You can change this in WordPress > Settings > General.

I’ve done all of the above and I’m still not getting emails

If you’re still struggling, give us a shout, we can take a look for you.

Jason
Jason
In 1999 I created my very first website, it all went from there. Founder of WP Manager (wpmanager.co.uk). WordPress Developer with a passion for technology and travel.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Send this to a friend