How to Fix WordPress Not Sending Email Issue

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.… Read More »

The post How to Fix WordPress Not Sending Email Issue appeared first on WPBeginner.

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.

Fixing email issues in WordPress

Why You Are Not Getting Emails from Your WordPress Site

The most common reason for this is that your WordPress hosting server is not configured to use PHP mail() function.

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.

Add your domain to Mailgun

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.

Subdomains icon in cPanel

On the next page, you need to enter your subdomain and then select your root domain from the drop down menu.

Enter your subdomain

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.

Mailgun showing DNS records

Switch back to your cPanel dashboard and then click on ‘Advanced DNS Zone Editor’.

Advanced DNS zone editor in cPanel dashboard

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.

DNS TXT record

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.

MX Entry menu

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.

Add 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.

Mailgun active domains

Once your domain is active, you can setup your WordPress site to start using Mailgun for sending emails.

First thing you need to do is install and activate the Mailgun for WordPress plugin. For more details, see our step by step guide on how to install a WordPress plugin.

Upon activation, you need to visit Settings » Mailgun to configure plugin settings.

Mailgun for WordPress 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.

Mailgun API keys

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 SMTP 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.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

The post How to Fix WordPress Not Sending Email Issue appeared first on WPBeginner.

How to Send Email in WordPress using the Gmail SMTP Server

Are you having trouble sending emails from your WordPress site? One easy way to solve this is by sending emails from WordPress using the Gmail SMTP server. In this article, we will show you how to send email in WordPress using the Gmail SMTP server.… Read More »

The post How to Send Email in WordPress using the Gmail SMTP Server appeared first on WPBeginner.

Are you having trouble sending emails from your WordPress site? One easy way to solve this is by sending emails from WordPress using the Gmail SMTP server. In this article, we will show you how to send email in WordPress using the Gmail SMTP server.

Send WordPress emails using Gmail smtp servers

Why and When You Need Gmail SMTP Server for WordPress Emails

Your WordPress site sends emails to notify you of new user registration, lost password reset, automatic updates, and even notifications from your contact forms.

By default, WordPress uses the PHP mail function to send out email notifications. However this function does not work as expected due to a number of reasons.

Most WordPress hosting companies restrict usage of this function to prevent abuse and spam.

Spam filters on popular email service providers check incoming emails to monitor if they are sent from an authentic mail servers. Default WordPress emails fail this check and sometimes may not even make it to the spam folder.

SMTP (Simple Mail Transfer Protocol) is the industry standard for sending emails. Unlike PHP mail function, SMTP uses proper authentication which increases email deliverability.

Gmail provides SMTP service that you can use to send out emails from your WordPress site. If you just want to send WordPress notification emails to yourself and few users on your site, then Gmail SMTP servers are the best option.

However, if you are planning on sending newsletter emails using WordPress, then you should use a mass emailing service provider, like MailGun or SendGrid.

Free vs Paid Gmail SMTP Service for WordPress

You can use your free Gmail account to send out WordPress emails. However, for better deliverability, we recommend using paid Google Apps for Work with Gmail.

With Google Apps for Work, you get your own professional branded email address such as ([email protected]).

Google Apps require you to add MX records to your domain name which means that your emails will appear to be coming from your own domain name boosting authenticity and ensuring better deliverability.

We use Google Apps for Work in our business, and can honestly say it’s the best.

How to Send WordPress Emails Using Gmail SMTP Server

If you decided to use Google Apps for Work, then you first need to set up your domain to work with Google Apps. We have a step by step tutorial on how to setup a professional email address with Google Apps and Gmail.

Rest of the instructions are the same whether you are using paid or free Gmail account.

There are two ways you can connect your WordPress site to Gmail SMTP servers.

The first method uses OAuth Authentication. This is a more secure method to send emails using Gmail Servers.

The second method is by allowing Gmail to be used with less secure apps. This method is not recommended because it’s less secure. You have to type in your gmail password in WordPress which is visible to all admin users. It should only be used if you are unable to use the first method.

Method 1: Setting up Gmail SMTP using OAuth Protocol

First thing you need to do is install and activate the Gmail SMTP plugin for WordPress. For more details, see our step by step guide on how to install a WordPress plugin.

Upon activation, you need to visit Settings » Gmail SMTP to configure the plugin settings.

Gmail SMTP plugin settings page

You will see a notice that requires you to create a web application with your Gmail account to generate API keys. These API keys will authenticate your site’s use of Gmail SMTP servers.

Creating an App and Generate API Keys for Gmail

First you need to click on the web application link provided in the plugin settings to create an app.

This link will take you to Google Developers Console website. You need to sign in with the gmail account that you want to use for sending WordPress emails.

Once you are logged in, a new project will be created for you with the Gmail API enabled in it.

Gmail API Enabled

Click on the go to credentials button to continue.

On the next screen, you will be asked where will you be calling the API from? You need to select Web Browser (Javascript) from the dropdown. Under ‘What data will you be accessing?’, select User Data.

Add credentials to your web app

After that click on the ‘What credentials do I need?’ button to continue.

Gmail API setup wizard will now ask you to provide the URL of website authorized to use this API. Under ‘Authorized JavaScript origins’ you need to enter the URL of your website.

Under ‘Authorized redirect URIs’, you need to paste the URL shown on Gmail SMTP plugin’s settings page in your WordPress dashboard.

Next, click on ‘Create client ID’ button to continue.

You will now reach OAuth Screen setup. Simply select your gmail address and provide a name for the App that is accessing your Gmail Account. In this case, it will be your own website name.

Setup OAuith Consent screen

Once you are done, click on the continue button to proceed.

You have successfully setup Gmail API with OAuth authentication enabled for it. You need to click on the Done button.

Set up complete for Gmail API

Now you will see the list of client IDs (apps) that you have created to access your Gmail API.

Click on the name of your website or project client to continue.

Client IDs

On the next screen, you will see the Client ID and Client Secret keys.

API Keys

Simply copy the keys and paste them in your Gmail SMTP plugin’s settings page on your WordPress site.

Gmail SMTP plugin settings

After that fill out rest of the plugin settings. You need to add your gmail email address in OAuth Email Address and From Email Address fields. You can enter your name or the name of your website in the ‘From Name’ field. In our emails, we use Syed from WPBeginner.

Next, select TLS for encryption and use 587 as port. Finally, click on the save changes button to store your settings.

After the plugin’s settings page reloads, you need to scroll down to the bottom and click on the Grant Permission button.

Grant permission

This will take you to Google Accounts where you will be asked to give your website permission to access your Gmail account. Click on the allow button to continue.

You will be redirected back to Gmail SMTP plugin’s settings page on your WordPress site. You will notice the SMTP Status icon has now turn green.

SMTP connected

That’s all, you have successfully setup WordPress emails to be sent using Gmail SMTP server. You can now click on the test email tab and send yourself a test email message.

Method 2: Setting up Gmail SMTP with Less Secure Apps Enabled

This method allows Gmail to be used with less secure apps. This method is not recommended and should only be used if you can’t use the first method.

Since security and spam is a main concern for most email service providers, it is likely that Google may discontinue this method at some point in the future.

If you are using Google Apps for Work, then here is how you can allow users to manage their access to less secure apps.

Visit your domain’s admin dashboard for Google Apps. Next, go to Security » Basic Settings and scroll down to less secure apps section.

Less secure apps settings in Google Apps

Click on ‘Go to settings for less secure apps’ link to continue.

On the next screen, check the option next to ‘Allow users to manage their access to less secure apps’. Don’t forget to click on the save button at the bottom right corner of the screen.

Rest of the instructions are the same for both paid and free Gmail accounts.

Simply visit the less secure apps settings page in your Google account settings and turn on access to less secure apps.

Turn on Less Secure Apps in Google Settings

Now that you have enabled less secure apps to access your Google account, it is time to setup your WordPress site to connect with Gmail SMTP servers using the less secure method.

First you need to install and activate the WP Mail SMTP plugin.

Upon activation, you need to visit Settings » Email page to configure the plugin settings.

WP SMTP Settings

Here is how to fill out the plugin settings:

  • From Email: Enter your Gmail address.
  • From Name: Enter your name or title of your website.
  • Mailer: Select ‘Send all WordPress emails via SMTP.
  • Return Path: Check the box to use the From email as return path.
  • SMTP Host: smtp.gmail.com
  • SMTP Port: 465
  • Encryption: Use SSL encryption
  • Authentication: Yes, use SMTP authentication
  • Username: Your complete Gmail address, e.g. [email protected] or [email protected]
  • Password: Password of your Gmail account

Click on the save changes button to store your settings.

After saving your settings scroll down to the bottom of the page, and you will see ‘Send a test email’ section. Enter an email address to see if everything is working fine.

That’s all, you have successfully setup your WordPress site to send emails using Gmail SMTP servers.

Troubleshooting Gmail SMTP Not Working Issues

We have seen issues of Gmail SMTP not working with certain shared hosting configurations.

Take the following steps to fix the Gmail SMTP issue:

  1. Login to your cPanel account and create an email account that matches your Google apps email address. This might seem strange because you’re not using your server, this step basically tricks your server into believing that you’re sending the email through the server.
  2. In your cPanel account, go to MX Records and change the MX routing from automatic to Remote. It might be a little tricky to find since each host now has custom cPanel interface, but look for a small link next to MX that says Email Routing: Remote Mail Exchanger.
  3. After that log back into your WordPress site and send a test email.

We hope this article helped you learn how to send email in WordPress using the Gmail SMTP server. You may also want to see our list of the 5 best contact form plugins for WordPress.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

The post How to Send Email in WordPress using the Gmail SMTP Server appeared first on WPBeginner.