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 contact form plugin is not sending emails, or why they are not seeing any WordPress notifications. In… 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 contact form plugin 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

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

Even if they would allow it to work, 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, and often emails sent by WordPress websites fail this test.

In such cases, when an email is sent out from your WordPress site, it never even makes into spam folder of the destination. This is why we recommend not using WordPress to send your email newsletter.

This is also the reason why that 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 are 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 folks who just started their blog or website.

Here is how to setup your WordPress site to use Mailgun for sending emails.

First you need to signup on the Mailgun website. After signing up, you need to click on the “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. Next, click on the subdomains icon under the domains section.

cPanel subdomains

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 DNS records

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

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. You need to start by entering the subdomain in the Name field and then select TXT as record type. After that you need to add 14400 in TTL field and copy the value shown on Mailgun domain verification settings page into TXT Data field.

Adding 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 icon in cPanel

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 the 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 WP Mail SMTP plugin. For more details, see our step by step guide on how to install a WordPress plugin.

Upon activation, you need to visit Settings » WP Mail SMTP to configure plugin settings. First you need to provide your sender email address and the name you want to use for the sender.

WP Mail SMTP settings

Next, you need to select Mailgun as your mailer and check the box next to set the return path to match the from email address.

Select Mailgun as your mailer

Lastly, you need to provide your Mailgun private API key and the mailgun sub-domain. Click on the links below each field to get this information from your Mailgun account.

API key and domain name

Don’t forget to click on save settings button to store your changes.

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

You can now click on the ‘Email Test’ tab on plugin’s settings page to send a test email and see if everything is working fine.

Email test

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 with your custom email address. 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, you will need to install and activate the WP Mail SMTP plugin. For more details, see our step by step guide on how to install a WordPress plugin.

Upon activation, you need to visit Settings » WP Mail SMTP page to configure plugin settings. First you need to provide your gmail address in the ‘From Email’ field and the name you want to display as sender.

WP Mail SMTP settings for Gmail

Next, you need to scroll down to the mailer option. There are two ways you can use Gmail servers to send WordPress emails.

First, method is to use Gmail APIs to send emails. This method is recommended because it is more secure and reliable. Second method is to use your Gmail account’s SMTP server manually.

We will show you both methods, however we recommend that you use the first method.

Method 1: Setting up Gmail to Send WordPress Emails Using OAuth Protocol

First, you need to select Gmail as your mailer under WP Mail SMTP settings page. Check the box next to set the return path to be the same as sender, not checking this box will make bounced and failed messages to be lost forever.

Select Gmail as Mailer

Next, you will see the option to enter your Client ID, Client Secret, and a URL in ‘Authorized redirect URI’ field.

Creating an App and Generate API Keys for Gmail

To use Gmail’s APIs for sending WordPress emails, you need to create an app and generate an API key. To do that, visit the Google Developers Console website and create a new project.

Create Google Developer Console project

If you don’t see the blue button to create a project, then you can also click on ‘Select a project’ drop down and create a new project.

You’ll be asked to provide a name for your project. Give it a meaningful name so that next time you are here, you can easily recognize it.

Name your project

Click on the create button to continue.

Developer console will now create your project and take you to its dashboard. Google allow developers to access many of their APIs and services. Now that your project is setup, you need to enable the APIs that you will be needing.

Enable APIs

Click on Enable APIs and services button to continue.

This will bring you to the APIs library page. Type Gmail in the search box to quickly find Gmail API and click to select it.

Select Gmail API

You will now see an overview of the API and what it can do. Simply click on the ‘Enable’ button to continue.

Enable Gmail API

Now that your API is enabled, the next step is to create credentials that you can use in your WP Mail SMTP plugin settings.

Click on the create credentials button to continue.

Create credentials

On the next screen, you will need to select ‘Web browser JavaScript’ in ‘Where you’ll be calling the API from’ field. After that click on the ‘User Data’ option.

To continue, click on the ‘What credentials do I need?’ button.

You will now be asked to provide a name for your OAuth client name. You can enter ‘WP Mail SMTP’ here.

Step 2 of API credentials

Under JavaScript origins field, add your website’s domain name. Next, you need to copy and paste the authorized redirect URL from WP Mail SMTP plugin settings.

Click on ‘Create client ID’ button to continue.

Next, you need to enter a name for OAuth consent screen. You can put the plugin’s name here.

API credentials step 3

Click on the continue button and developer console will show your client ID. You can copy it and paste it in WP Mail SMTP plugin’s settings page. However, you will still need client secret key.

Getting client ID

Click on the Done button to move on.

You will now be taken to your project’s credentials page. You will see your recently created credentials listed there. Click on the edit button next to your credentials.

Edit credentials

This will bring you to edit credentials page where you will be able to see your client secret key. You need to copy and paste the key in your plugin’s settings page.

Client secret key

Return back to plugin’s settings page in your WordPress admin area. Now that you have both client ID and client secret keys, you need to click on the save settings button to continue.

Save Api keys

The plugin will now store your settings and reload the page. After that you need to scroll down to the bottom of the settings page and click on the ‘Allow plugin to send emails using your Google account’ button.

Allow plugin to connect

This will take you to your account on Google and you will be asked to give the website permission to send emails on your behalf.

Allow WP Mail SMTP to send emails

After that you will be redirected back to your website where you will see a success message.

You have successfully set up WordPress to use Gmail SMTP servers for sending emails using the OAuth protocol. You can now click on the ‘Email Test’ tab on plugin’s settings page to send a test email and see if everything is working fine.

Email test

Method 2: Setting Gmail to Send WordPress Emails Using SMTP

This method allows WP Mail SMTP to manually connect to Gmail’s SMTP servers for sending WordPress emails.

First, you need to visit Settings &raquo WP Mail SMTP page to configure the plugin settings.

Provide the Gmail address you want to use as From email field and your name as from name field.

Gmail SMTP

Select ‘Other SMTP’ as your mailer and check the box next to return path.

Scroll down to Other SMTP section to configure more settings.

Gmail SMTP settings for WP Mail SMTP

Here is how to fill out the plugin settings:

  • SMTP Host: smtp.gmail.com
  • SMTP Port: 465
  • Encryption: Use SSL encryption
  • Authentication: Turn on 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.

That’s all, you have successfully setup WP Mail SMTP to use Gmail SMTP servers.

You can now click on the ‘Email Test’ tab on plugin’s settings page to send a test email and see if everything is working fine.

Email test

We hope this article helped you learn how to fix WordPress not sending email issue, You may also want to see our list of the most common WordPress errors 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 WordPress emails using the Gmail SMTP server. In this article, we will show you how to send emails from your WordPress site using the Gmail SMTP… 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 WordPress emails using the Gmail SMTP server. In this article, we will show you how to send emails from your WordPress site using the Gmail SMTP server.

Send WordPress emails using Gmail SMTP server

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 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 for WPBeginner 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.

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

Upon activation, you need to visit Settings » WP Mail SMTP page to configure the plugin settings.

WP Mail SMTP Settings

First you need to make sure that you use your Gmail email address in the ‘From Email’ field. Next, you need to provide the sender name.

WP Mail SMTP plugin offers two ways to connect your WordPress site to the Gmail servers.

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

The second method is by entering Gmail SMTP settings manually. This method is not recommended because it is less secure.

That being said, let’s set up WordPress to use Gmail SMTP for sending emails.

Method 1: Setting up Gmail to Send WordPress Emails using OAuth Protocol

This method is recommended for all users. It is more secure and once you set it up, you’ll never have to do that again.

You need to start by selecting Gmail as your mailer and set the return path to be the same as sender.

Select Gmail and set return path

Next, you will see the option to enter your Client ID, Client Secret, and a URL in ‘Authorized redirect URI’ field.

Let’s set up these fields.

Creating an App and Generate API Keys for Gmail

Visit the Google Developers Console website and create a new project.

Create a new Google Developer Console project

If you don’t see the blue button to create a project, then you can also click on select a project drop down and create a new project.

You’ll be asked to provide a name for your project. Give it a memorable name, so that you can easily recognize it in the future.

Name your project

After that, click on the create button to continue.

Developer console will now create your project and take you to its dashboard. Google offer developers access to many of their APIs and services. You need to enable the APIs that you will be needing for this project.

Enable APIs

Click on Enable APIs and services button to continue.

This will bring you to the APIs library page. Next, you need to type Gmail in the search box to quickly find the Gmail API and click to select it.

Select Gmail API

You will now see an overview of the API and what it can do. Simply click on the ‘Enable’ button to continue.

Enale Gmail API

Now that your API is enabled, the next step is to create credentials that you can use in your WP Mail SMTP plugin settings.

Click on the create credentials button to continue.

Create credentials

On the next screen, you will need to select ‘Web browser JavaScript’ in ‘Where you’ll be calling the API from’ field. After that click on the ‘User Data’ option.

API credentials step 1

To continue, click on the ‘What credentials do I need?’ button.

You will now be asked to provide a name for your OAuth client name. You can enter ‘WP Mail SMTP’ here.

API Credentials step 2

Under JavaScript origins field, you need to add your website’s domain name. Next, you need to copy and paste the authorized redirect URL from WP Mail SMTP plugin settings.

After that click on the ‘Create client ID’ button to continue.

Next, you need to enter a name for OAuth consent screen. You can put the plugin’s name here.

Ouath consent screen

After entering the details, click on the continue button and the developer console will show your client ID. You can copy and paste this in the WP Mail SMTP plugin’s settings page. However, you will still need to add your client secret key.

Getting your client ID

Go ahead and click on the Done button to move on.

You will now be taken to your project’s credentials page. You will see your recently created credentials listed there. You need to click on the edit icon next to your credentials to continue.

Edit credentials

This will bring you to the edit credentials page where you will be able to see your client secret key. You need to copy and paste the key in your plugin’s settings page.

Client secret key

Return back to plugin’s settings page in your WordPress admin area. Now that you have both client ID and client secret keys, you need to click on the save settings button to continue.

Save client credentials in plugin settings

The plugin will now store your settings and reload the page. After that you need to scroll down to the bottom of the settings page and click on the ‘Allow plugin to send emails using your Google account’ button.

Allow plugin to send emails

This will take you to your account on Google, and you will be asked to give the website permission to send emails on your behalf.

Allow Gmail

Click on Allow button to give permissions.

After that, you will be redirected back to your website where you will see a success message.

Connected successfully

Method 2: Setting up Gmail SMTP as SMTP Sender

This method allows you to manually connect to Gmail’s SMTP servers to send your WordPress emails.

First, you need to visit Settings » WP Mail SMTP page to configure the plugin settings.

You need to start by providing the Gmail address you want to use in the From email field, and your name in the name field.

Gmail SMTP

Next, you need to select ‘Other SMTP’ as your mailer and check the box next to return path.

After that, scroll down to the Other SMTP section to configure more settings.

Gmail SMTP settings for WP Mail SMTP plugin

Here is the exact configuration you need to add in the plugin settings:

  • SMTP Host: smtp.gmail.com
  • SMTP Port: 465
  • Encryption: Use SSL encryption
  • Authentication: Turn on authentication
  • Username: Your complete Gmail address, e.g. [email protected] or [email protected]
  • Password: Password of your Gmail account

Once you are done, click on the save changes button to store your settings.

That’s all, you have successfully setup WP Mail SMTP to use Gmail SMTP servers.

Testing Your WP Mail SMTP Settings

WP Mail SMTP plugin allows you to test your email settings, so you can make sure that everything is working properly.

You need to visit Settings » WP Mail SMTP page and click on the ‘Email Test’ tab. Simply provide an email address that you can access in the send to field and click on the send email button.

Send test email

You will see a success message. You can now check your inbox to see a message with the subject line ‘WP Mail SMTP: Test Email to…’.

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 users encounter few issues when using Gmail SMTP 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 for emails. This step basically tricks your server into believing that you’re sending the email through the server.
  2. In your cPanel account, go to the 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. You need to 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.