Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
WPB Cup
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

How to Send Email in WordPress using the Gmail SMTP Server

Editorial Note: We earn a commission from partner links on WPBeginner. Commissions do not affect our editors' opinions or evaluations. Learn more about Editorial Process.

Are you having trouble sending emails from your WordPress site?

By default, WordPress uses the PHP mail function to send emails, which some servers restrict. 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.

How to use Gmail SMTP in WordPress

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 notifications from your contact forms.

By default, WordPress uses the PHP mail function to send out email notifications. However, this function doesn’t 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 the PHP mail function, SMTP uses proper authentication, which increases email deliverability.

Gmail provides an 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 a few users on your site, then Gmail SMTP servers are the best option.

However, if you are planning on sending newsletter emails using WordPress or if you have an online store, then you should use a mass emailing service provider, like Brevo (formerly Sendinblue) or Mailgun.

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

With Google Workspace, you get your own professional branded email address, such as (name@yoursite.com).

Google Workspace requires 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 Workspace for WPBeginner and can honestly say it’s the best.

Video Tutorial

Subscribe to WPBeginner

If you’d prefer written instructions, just keep reading.

How to Send WordPress Emails Using Gmail SMTP Server

If you decide to use Google Workspace, then you first need to set up your domain to work with Google Apps. We have a step-by-step tutorial on how to set up a professional email address with Google Workspace.

The rest of the instructions are the same whether you are using a paid or free Gmail account.

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

WP Mail SMTP is the best WordPress SMTP plugin on the market. It allows you to easily use any SMTP server to send WordPress emails with higher deliverability.

While there is a free version, we recommend buying the paid version called WP Mail SMTP Pro, which gives you access to premium support, more mailers, and a white glove set up by one of their experts.

Upon activation, you need to visit the Settings » WP Mail SMTP page to configure the plugin settings. Then, enter your license key and click the ‘Verify Key’ button. You can find the key in your WP Mail SMTP account area.

WP Mail SMTP settings

Under the General settings tab, you need to make sure that you use your Gmail email address in the ‘From Email’ field.

Next, you need to provide the sender’s name.

Enter from email and 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 to enter 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 to send 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 ‘Google/ Gmail’ as your mailer.

Choose Google as mailer

Next, you will see three fields you need to fill in when you scroll down.

Just enter your Client ID, Client Secret, and Authorized Redirect URI when you’re there.

Client ID and secret fields

Let’s set up these fields.

Creating an App and Generate API Keys for Gmail

To start, simply visit the Google Cloud Platform website.

Then click on ‘My First Project’ at the top.

Click my first project

A small popup window will open where you can select your projects.

Go ahead and click on the ‘New Project’ option.

Create a new project

On the next screen, 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.

Enter project details

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

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

Enable APIs and services

Click on the ‘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.

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 and select the ‘Help me choose’ option from the dropdown menu.

Click create credentials

On the next screen, it’ll ask you which API you want to use.

Select ‘Gmail API’ from the dropdown menu for Which API you are using.

Choose Gmail API

After that, choose ‘User data’ for What data you will be accessing.

From there, click the ‘Next’ button.

Select user data

Now, you’ll need to enter your App’s information.

You can start by giving a name for your app, selecting the email address you provided, and adding an app logo if you want.

Enter app information

From there, you’ll need to scroll down and enter Developer’s contact information.

Once you’ve entered the email address, simply click the ‘Save and Continue’ button.

Enter developer contact information

On the next screen, you can configure the ‘Scopes’ for Gmail API. This is an optional step, and you can skip this for now.

Simply scroll down to the bottom of the page and click the ‘Save and Continue’ button.

Skip scopes

Next, go ahead and enter details for OAuth Client ID.

Start by choosing ‘Web Application’ as the Application Type from the dropdown menu and then enter a name.

Select application type

When you scroll down, you’ll see options for Authorized JavaScript origins. You can skip this and head over to Authorized Redirect URLs.

Go ahead and click the ‘+ Add URL’ button under Authorized redirect URLs and enter https://connect.wpmailsmtp.com/google/ under the URLs field.

Add redirect URLs

Once you’ve entered the URL, simply click the ‘Create’ button.

Next, you’ll see your credentials under the Your Credentials area.

Download your credentials

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

You will now be taken to your project’s credentials page. On this page, you can see your recently created credentials listed here. 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 and client ID.

You need to copy and paste the key into your plugin’s settings page.

Copy client ID and secret

Return back to the 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.

Enter client ID and secret in plugin

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

This will take you to your account on Google.

Then, you will be asked to give the website permission to send emails on your behalf.

Choose Google account

Simply select your Gmail account and give permission to link your Google API project.

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 the Settings » WP Mail SMTP page to configure the plugin settings.

Start by providing the Gmail address you want to use in the ‘From Email’ field and your name in the From ‘Name’ field.

Enter from email and name

Next, you need to select ‘Other SMTP’ as your mailer.

Also, check the box next to the return path.

Choose Other SMTP as mailer

After that, scroll down to the Other SMTP section.

This is where we’ll configure more settings to connect to Gmail’s SMTP servers.

Configure other SMTP

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

  • SMTP Host: smtp.gmail.com
  • Encryption: Use SSL encryption
  • SMTP Port: 465 (this should automatically appear when you select SSL encryption)
  • Auto TLS: Turn off TLS
  • Authentication: Turn on authentication
  • SMTP Username: Your complete Gmail address, e.g. john.smith@yourdomain.com or john.smith@gmail.com
  • SMTP Password: Password of your Gmail account

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

Save settings for other SMTP

That’s all; you have successfully set up WP Mail SMTP to use Gmail SMTP servers.

Note: If you use method two, please know that it’s less secure because your password is stored in text. You can enhance this by using the constant tip, but we strongly recommend using Method 1.

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 the 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 set up your WordPress site to send emails using Gmail SMTP servers.

Get More With WP Mail SMTP Pro

If you want even more functionality, you should try WP Mail SMTP Pro.

With the Pro version of the plugin, you can connect with:

  • Google Workspace/Gmail
  • Amazon SES
  • Mailgun
  • Office 365 / Outlook.com
  • SendGrid
  • And more

You also get additional features like email logs, the ability to fine-tune/control which notification your WordPress site sends, and more.

Troubleshooting Gmail SMTP Not Working Issues

We have seen users encounter a few issues when using Gmail SMTP with certain shared hosting configurations.

Take the following steps to fix the Gmail SMTP issue:

Log in to your cPanel account. Next, find the ‘+ Create’ button on the email accounts page.

create email account in cpanel

From there, you can create an email account that matches your Google Apps email address.

By creating the email account, you’re essentially making your hosting server aware of an email address that should be sending emails. This step is a workaround to convince the server that you’re sending emails through it, even though you plan to use Gmail’s SMTP server.

create an email account

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.

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 a custom cPanel interface.

You need to look for a small link next to MX that says Email Routing: Remote Mail Exchanger. You can follow our guide on how to change MX records for your WordPress site based on your hosting service.

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 best contact form plugins for WordPress and our comparison of the best email marketing services for small businesses.

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.

Disclosure: Our content is reader-supported. This means if you click on some of our links, then we may earn a commission. See how WPBeginner is funded, why it matters, and how you can support us. Here's our editorial process.

Editorial Staff

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

The Ultimate WordPress Toolkit

Get FREE access to our toolkit - a collection of WordPress related products and resources that every professional should have!

Reader Interactions

134 CommentsLeave a Reply

  1. Syed Balkhi says

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. Jiří Vaněk says

    Amazing guide. Thanks. Setting up Gmail SMTP always gives me a headache because it takes so long. It’s incomparable to the traditional SMTP setup for a private domain email, where you enter the SMTP server, login, password, and port, and it’s done. Thanks a lot.

  3. Mallory Moore says

    After completing all the steps it re-directed me to my WordPress site but it went to a page that said not found to there was no success msg so I can’t test as it still says unauthorized.

  4. Vaskar says

    I want to send newsletters/mail to my website subscribers. I want to send mail to my website subscribers from my gsuite business mail address. Can you suggest to me that what I have to do now?

  5. Peter says

    Hi

    When setting up Oauth consent screen, Internal and External options are present. Only external option is available to Gmail users. Is this the correct one to choose?

    Thanks!

    • WPBeginner Support says

      It sounds like that would be correct, for questions about the plugin we would recommend reaching out to the plugin’s support for assistance

      Admin

  6. Gordon Barker says

    No where can I find where to set the email “to field” please could you explain how to set this field?

    • WPBeginner Support says

      You would want to check with the settings for your form plugin for setting the to location

      Admin

  7. Vivek says

    Hi,

    My emails are automatically deleting, i’ve not set any filters or any other things. What might be the issue?

    • WPBeginner Support says

      You would want to reach out to who you are using for your emails to ensure there isn’t an issue on thier end.

      Admin

  8. Dalton says

    I followed the steps to set up the email and it works, but how do I send emails to my email list now?

  9. Dusan says

    With this I get the 2000 limit in a 24 hour period as it uses only 1 email address. Is there a way to use this as the smtp relay that allows 10,000 emails to send per 24 hour period. Or any way to add in multiple emails to send from?

  10. Dan Martin says

    I just used this for my site and it worked. Seriously this was a life saver. I had spent several hours troubleshooting and the video solved the whole problem in like 5 minutes. Thanks.

  11. Luigi says

    How can I send emails configured with WP MAIL SMTP (I use gmail) customized with the site’s domain? I need to differentiate emails depending on the type of email my site sends.

    • WPBeginner Support says

      It would depend on what plugin/tools you are using to send the emails as WP Mail SMTP is for changing how WordPress sends the emails not for users sending emails.

      Admin

  12. Austin Blair says

    Just wanted to say THANK YOU! I was totally struggling to get my contact form to send emails correctly until I came across your post. I used the first method and it worked like a charm. However there was a step (probably recently introduced) where I had to set up a consent form? Took me to a different screen not featured in the video, but was relatively straight forward. Thanks again!

  13. Bobby Zopfan says

    First method (configuring inside GCloud) seemed too long to me.
    So adapted the 2nd method (don’t agree with you that 2nd method is more difficult). 2nd method has just 3-4 steps.

    But it didn’t work. SMTP couldn’t authenticate me. Although my ID/pW is fully correct.

    • WPBeginner Support says

      If you reach out to the plugin’s support with your specifics they should be able to help you find the problem :)

      Admin

  14. Daniel says

    Thanks again for the awesome tutorial, the forms work fine now! I have a question: I’d like to change the From Name in the plugin settings, but it’s impossible. I’ve tried to reintstall the plugin, all my settings were still saved tho. Is there any way I could change the From Name of the email now?

    • WPBeginner Support says

      You would want to reach out to the plugin’s support for how to set that up but for the moment, if you set it to the default method it should allow you to change those settings.

      Admin

  15. Afam says

    Hello there,

    I’m really tired with this issue of CF7 not able to send mails to gmail from my site. It seems everyone has this issue.

    I followed your instructions to the letter and got to the point I’m supposed to allow plugin to send emails using my google account, an error appears telling me of a URI mismatch. What’s that? I copied and pasted the uri as you said. What did I do wrong. Please help me, have not been sleeping because of this.

    Thanks.

    • WPBeginner Support says

      Hi Afam,

      You may not have saved the redirect URI when creating the app, follow the steps again and make sure that you copy the exact URL from plugin’s settings page to enter in your app.

      Admin

  16. Sarah says

    Hello,

    I have followed the instructions you provided, than you! I got all the way to the “allow plugin to send emails….” for gmail and when i click on that button it gives me the message that the app hasn’t been verified.
    I have tried multiple fixes but it is still isn’t working.

    I am using bluehost and WP mail stmp.

    Any suggestions?
    Thank you

  17. Raphael says

    Don’t work for me. I’m using Google Cloud and Cloudflare and when i try to send a test email give me a error:

    “Could not authenticate your SMTP account.”

  18. Mohd Tariq Khan says

    My client use g suite for email, I have created WordPress page website with contact form 7 plugin. I have analyzed contact form was not sending email from website to Gmail.

    Therefore, I have used ‘WP Mail SMTP’ plugin and create gmail API, Now email is working.

    But I am facing one issue, when submit contact us form email receive in gmail but all email recived from title is ‘me’.

    Therefore, every time show like I have to send email to myself.

    I want in email ‘Sender name’ appear at from.

    Please help me.

  19. jood says

    i think the key is create a same name account in bluehost within email , so as to trick host , the problem is the email will be taken as spam .

  20. raja says

    hi.. i have tried to send mail using wp-mail-smtp on wordpress BY gmail as per tutorial..

    when i try to OAUTH 2 in gmail on wordpress,, it shows error.
    —————————

    Not Acceptable!
    An appropriate representation of the requested resource could not be found on this server. This error was generated by Mod_Security.
    —————————–

    i have contacted hosting hostgator support.. Mod_security settings cant be whitelisted, as it may will leave the website vulnerable.

    please advise how to send mails

  21. Angela Andrieux says

    Thank you for the thorough instructions! This site has saved me so many times. I really appreciate the great content!

  22. mostafa says

    thanks a lot for this tutorial . i have this problem for an week and the issue has solved with this tutorial.

  23. Leonardo Assennato says

    Hello,
    I setup an email address to send the emails and it worked.
    But I need to change the email account.

    I already tried the Method 2, but it doesn’t work on my server.

    I already unnistalled and re-install the plugin but all the data are stored.

    Can anybody help me?

  24. Ahmad fatah says

    is this tutor works with free gmail account?
    thanks for great tutorial you make..
    i search anything about wp and your site in top of google..just wow

  25. Kevin says

    I just went through this and got the following message after trying to send a test email:

    Connection: opening to smtp.gmail.com:587, timeout=300, options=array ()
    Connection: Failed to connect to server. Error number 2. “Error notice: stream_socket_client(): unable to connect to smtp.gmail.com:587 (Network is unreachable)
    SMTP ERROR: Failed to connect to server: Network is unreachable (101)
    SMTP connect() failed.

  26. Pawan Negi says

    Hi please help me when i click on grant permission button it show me that error.

    400. That’s an error.

    Error: invalid_scope

    You don’t have permission to access some scopes. Your project is trying to access scopes that need to go through the verification process. {invalid = [https://mail.google.com/]} If you need to use one of these scopes, submit a verification request.

    Learn more

    Request Details
    client_id=940707600009-5f3lstctsc081s72c27h4hhmf5212a7p.apps.googleusercontent.com

    That’s all we know.

  27. Amanda says

    I got . . .

    Fatal error: Cannot redeclare class phpmailerException in /home/content/04/11965204/html/sofp/wp-includes/class-phpmailer.php on line 4040

    I can’t seem to get this fixed no matter what solve I try. There doesn’t appear to be a contact form in our future :-(

    Google Search didn’t help with this error code. I can’t imagine that I’m the first one to get it . . .

  28. Laura Hart says

    I loved how helpful this was, unfortunately I still can’t make the “grant access” button appear! Any idea why that would happen? Googling isn’t working.
    Thank you!

  29. David says

    Hi, I used this tutorial last year to install and configure the Gmail SMTP plugin. Until very recently, the Gmail SMTP plugin in conjunction with my website’s contact form worked perfectly. But I tested my website’s contact form today, and I got the following fatal-error message:

    Fatal error: Uncaught exception ‘Google_Auth_Exception’ with message ‘Error refreshing the OAuth2 token, message: ‘{ “error” : “invalid_grant” }”

    I don’t have a clue what that means. I get the same fatal-error message when I use the plugin to send a test message at Gmail SMTP plugin>Settings>Test email.

    I haven’t changed any of the plugin settings since I first installed it a year ago, and I haven’t done anything new with my Google Console account either. I’m using the most recent version of the Gmail SMTP plugin, and also the newest version of WordPress.

    Any ideas or suggestions?

    Thanks!

  30. Ehsan says

    Thank U very much – one of my problem was this “my emails goes to spam folder”
    with this service(Method 1) Now It’s great – of course after 14 days you must pay for that but still it’s prefect
    I have question;
    Can I send 100 Emails like newsletter for my customer is it OK for Google!?
    I afraid my Emails after it goes to spam folder again

  31. Adondriel says

    Hey, add a thing at the end for the troubleshooting thing: “Check with your website host and verify that they do not block outgoing requests by default.” I know 1. GoDaddy does this, and won’t let you unblock. and 2. Namecheap also blocks by default but you just gotta contact support, give em your info and ask em to unblock port 587 and boom, it’ll all work again.

  32. adam says

    i keep getting a Error: redirect_uri_mismatch when i press ‘grant permission’. It’s driving me nuts as I can’t work out what is wrong? Everything seems to match.
    Adam

  33. Macky says

    This video has been a fantastic help.

    I’m a complete WordPress beginner.The step-by step instructions are very easy to follow. Now my emails are working perfectly!! Plus I also learnt how to insert headers & footers with ease.

    Thanks once again!!

  34. Maggie Z says

    A follow-up question – because of the login conflict issue, I was also considering using WP Mail SMTP. However, many users on the support forum for that plugin express concern that the password for the email account is visible on the admin page in plain text.

    I have a firewall set up that prevents non-admins from getting in to the back end, so is there any real security concern regarding the password showing in plain text? Any advice much appreciated!!!

    • Maggie Z says

      After troubleshooting quite a bit, I finally relented and went with WP Mail SMTP, which requires the “allow less secure apps” solution – a tech support person at G Suite told me that it was safe, and it seems like the only way to go for my particular setup. Appears to be working now. Thanks for the incredibly clear instructions!!! I am now a firm fan of this site.

  35. Maggie Zellner says

    The video is fantastic, and the plugin installed perfectly. Unfortunately I didn’t realize until after I went through the whole process (because I didn’t read the documentation on the plugin carefully), the Gmail SMTP plugin eliminates the need for users to log in, and therefore it interfered with the login process that we have instituted for paid members on our website (which we manage through a plugin called PaidMembershipsPro).

    Is there any way to disable that aspect of this plugin, so I can send all email via our Gmail account, but can still have users log in and out?

  36. Eric says

    Great article! However, I am unclear on something when using WordPress for sending newsletters. What is the difference between those mass emailing service providers (mailgun & Sendgrid) and using Google Apps for work SMTP?

    Can’t we use Google Apps for work to send newsletters just as well?

    • Eric says

      Thanks so much for your response! With Google Apps for Work only limiting to 500 recipients, then I suppose it would work if we sent it to 500 or less people.

      My next question, is it max to send all at one time or per day? If we throttle it to only send out a few per minute, do you know if it would allow it to send thousands within a few hours?

Leave A Reply

Thanks for choosing to leave a comment. Please keep in mind that all comments are moderated according to our comment policy, and your email address will NOT be published. Please Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.