One of the most commonly asked questions on WPBeginner is how to fix WordPress not sending email problem. Many of our beginner level users ask us why their Gravity Forms or WPForms is not sending emails, or why they are not seeing any WordPress notifications. In this article, we will show you how to fix WordPress not sending email issue.
Why You Are Not Getting Emails from Your WordPress Site
Another reason is that many email service providers use a variety of tools to reduce email spam. These tools often try to detect that an email is originating from the location it claims to be originating from.
Sometimes the email is sent out by WordPress, but it never even makes into spam folder of the destination. This is why we recommend not using WordPress to send your email newsletter.
That’s why we recommend using SMTP to send emails in WordPress. SMTP (Simple Mail Transfer Protocol) is the industry standard for sending emails. Unlike PHP mail function, SMTP uses proper authentication which increases email deliverability.
There many different SMTP services available, but in this article we will show only two that we recommend: MailGun and Gmail.
Sending Your WordPress Emails Using Mailgun
Mailgun is a popular email service provider. They allow website owners to send large amounts of emails with high deliverability.
As a dedicated email service provider, they spend a lot of money and time on making sure that your email reaches its destination.
While Mailgun is a paid service, it offers first 10,000 emails for free every month. That’s more than enough for most small websites.
Here is how to setup your WordPress site to use Mailgun for sending emails.
First you need to signup on the Mailgun website. After sigining up, you need to click on “Add your domain” button.
You will now see an add domain page. Here you need to add a subdomain on your WordPress website’s domain name. For example, mail1.yourdomain.com.
You can create a new subdomain on your existing domain name by following the instructions below.
First, you need to visit the cPanel dashboard of your hosting account. Click on subdomains icon under the domains section.
On the next page, you need to enter your subdomain and then select your root domain from the drop down menu.
After that click on the create button, and you will see a success message that your subdomain has been created.
You can now add this subdomain on Mailgun’s add domain page. After you add the domain, Mailgun will show you a few DNS records.
Switch back to your cPanel dashboard and then click on ‘Advanced DNS Zone Editor’.
You will be asked to select the domain for which you want to change the DNS records. Once you select your root domain name, you will see options to add new DNS records.
The first TXT entry will be your subdomain. Enter the subdomain in the Name field and then TXT as record type. Add 14400 in TTL field and copy the value shown on Mailgun domain verification settings page into TXT Data field.
Repeat the process to add the other TXT record.
Once you are done, switch back to the cPanel dashboard and click on the MX Entry icon.
You will be asked to select your root domain, then scroll down to the bottom of the page. There you will see the option to add a new MX Entry.
Enter the priority and destination values and click on create new record button.
You have successfully added your domain to Mailgun. It will need to verify that your domain has proper DNS records. This may take a while because DNS records may take sometime to update.
You can check the status of your domain verification by visiting Domains page in your Mailgun account.
Mailgun will show active status next to your domain name once it can verify the DNS changes you made.
Once your domain is active, you can setup your WordPress site to start using Mailgun for sending emails.
Upon activation, you need to visit Settings » Mailgun to configure plugin settings.
By default, Mailgun sends emails by using HTTP API. This is the recommended method, but if for some reason it doesn’t work on your website, then you can switch to SMTP.
You will need your MailGun API keys. Simply login to Mailgun dashboard and click on your domain name. Mailgun will show your SMTP credentials as well as API key.
You need to copy and paste those keys into plugin settings and click on the save changes button.
After storing your settings you can click on the test configuration button. Mailgun will test your settings and will show you a success message.
That’s all, you have successfully setup your WordPress site to send emails using Mailgun.
Sending WordPress Emails Using Gmail SMTP Servers
Another alternative is to send your WordPress emails is using Gmail SMTP servers. You can use any regular Gmail account with this method to send out your emails. However, your email deliverability will be much better if you are using Google Apps for Work on that particular domain name. See our guide on how to setup a professional email address with Google Apps and Gmail.
Whether you use paid or free Gmail address, rest of the instructions are the same.
First thing you need to do is install and activate the Gmail SMTP plugin.
Upon activation, you need to visit Settings » Gmail SMTP to configure the plugin settings.
Gmail wants you to create an App and use API keys for using their SMTP servers. Follow the instructions in our detailed step by step guide on how to setup WordPress to use Gmail SMTP servers.
We hope this article helped you fix WordPress not sending email issue. You may also want to check out our list of 14 most common WordPress issues and how to fix them.