MailGun Setup

https://wpforms.com/how-to-send-wordpress-emails-with-mailgun/

How to Send WordPress Emails With Mailgun Using WP Mail SMTP

Have you noticed that you’re not receiving WordPress contact form notifications?

You might be wondering why WPForms isn’t sending you emails when someone fills out your forms, or why you aren’t seeing any WordPress notifications.

In this tutorial, we’ll walk you through how to fix email delivery issues and send WordPress emails with Mailgun using WP Mail SMTP.

What Causes Missing WordPress Emails

Maybe you’ve noticed that WordPress isn’t sending you email notifications because form entries are piling up in your WordPress dashboard. Or, frustrated visitors have reached out to you using social media or other methods about not hearing back from you.

In most cases, missing WordPress emails is due to spam prevention.

As spammers get smarter, email providers have to keep bulking up their spam defenses. This is normally the most common cause for missing emails.

WPForms is the best WordPress Form Builder plugin. Get it for free!

In some other cases, missing emails is due to your WordPress hosting server not being configured to use the PHP mail() function. Even if it’s unmanaged or managed WordPress hosting. That function is used by WordPress by default to send emails generated by WordPress or any contact plugin like WPForms.

Thankfully, you can work around both of these issues by using SMTP.

SMTP (Simple Mail Transfer Protocol) is the industry standard for sending emails. Unlike PHP mail function, SMTP uses proper authentication which increases email deliverability. That’s why we recommend using SMTP to send emails in WordPress.

In this article we’ll show how to do this with one of the SMTP services we recommend: Mailgun.

You can also check out our articles on how to send emails with Gmail or Sendgrid.

How to Fix Your Form Notifications with Mailgun + WP Mail SMTP

Mailgun is a popular email service provider that allows website owners to send tons of emails.

You can send your first 5,000 emails for free every month. If you’d like to send more emails than that, you’ll need a paid plain.

So let’s get started setting up your site to send WordPress emails with Mailgun using WP Mail SMTP.

1. Sign up for a Mailgun Account

First, you need to sign up for an account on the Mailgun website.

Note: As an added verification step, Mailgun will require that you enter credit card information to set up an account, even for the free account. For more details, please see Mailgun’s sign up page.

After completing the short signup form, you’ll have a couple of additional verification steps to do. Multiple levels of verification is what allows Mailgun to better ensure email deliverability for all of their users.

First, you should receive an email to verify your Mailgun account. You’ll need to click the link in this email to start the verification process.

After clicking the verification link, you’ll need to enter a mobile number to receive a text verification code.

Once you’ve completed these steps, you’ll be logged into Mailgun.

Now that you’re logged in, you should see your Mailgun dashboard. When you’re ready, click on Domains in the left menu.

On the Domains page, you’ll need to click the Add New Domain button.

Note: If you don’t see a button to add a new domain, this likely means that you have not yet entered your credit card details. Mailgun requires all accounts, including free accounts, to enter a credit card before you can continue and send WordPress emails with Mailgun.

Next, you’ll need to enter a subdomain of your website’s domain name.

What does that mean, exactly?

A subdomain replaces the “www” part of your website’s address; for example: “subdomain.yourwebsite.com.” Subdomains can be used to add separate sections or directories to your website (like how some sites have their blogs on a subdomain such as blog.example.com).

In this case, the subdomain will be used by Mailgun to send emails.

We’ll create the actual subdomain in the next step. For now, you can just enter a subdomain such as mail.yourwebsite.com or mg.yourwebsite.com. It doesn’t really matter what you name it, but using “mail” or “mg” makes it more clear what its purpose is.

Next, you’ll need to choose US or EU. If your site is hosted in the European Union, then go ahead and choose EU. If your site is hosted anywhere outside of the European Union, then leave it on the default US option.

Lastly, we recommend keeping the Create DKIM Authority box checked for an extra mode of spam protection.

We also recommend selecting the 2048 option, which creates a longer DKIM key.

As we continue into the next step, be sure to keep this tab or window open because we’ll return to this page later.

2. Verify Your Domain

As a way of both protecting site owners and their visitors, some SMTP services like Mailgun require that you verify your domain by adding records to your site’s DNS. You can find more information on the benefits of verifying your domain in Mailgun’s guide.

First, you’ll need to open your site’s DNS settings. If you’re not sure how to find these, Mailgun will provide you with some helpful links shown on their setup page when you’re adding a new domain.

dns records for sending mailgun smtp
dns records for sending mailgun smtp

Note: If you’re still not sure where to find your site’s DNS settings or feel unsure about making changes, please contact your site’s hosting provider.

Or for more details on modifying a site’s DNS, we recommend WPBeginner’s DNS settings tutorial.

Once your DNS settings are open, you should see an option to add a new record.

To make it possible for Mailgun to verify your domain, you’ll need to add 2 TXT records to your site’s DNS. Be sure to copy them carefully, as you’ll need the exact values from your Mailgun account for the verification to work.

DNS managed by GoDaddy? You’ll need to adjust the Hostname in Mailgun. When entering the Hostname into your GoDaddy DNS, you’ll need to remove your normal domain. For instance, instead of entering mg.yourdomain.com for the first TXT record’s Hostname, you will only enter mg.

In your site’s DNS settings you may also see a TTL (Time To Live) field for the record. We recommend changing the TTL to one day (or 86400 seconds, depending on the units your DNS uses).

Once you’ve added both TXT records, you’ll need to add MX records in exactly the same way. Just remember that you need to do this for the subdomain you created — not for the main domain.

Now that you’ve added both TXT and MX records, your DNS settings are all set.

Note: Mailgun will also show you a CNAME record, but you can ignore this as it’s not relevant when using Mailgun only to send emails.

3. Check your Mailgun Verification Status

Now Mailgun will need to verify that your domain has proper DNS records. This verification can take a while (sometimes 24-48 hours) because DNS records may take some time to update.

You can check the status of your domain verification any time by visiting the Domains page in your Mailgun account. Once Mailgun can verify the DNS changes you made, it will show a green check mark next to your domain name.

However, you can skip to the next step while you wait for this verification to complete. Just be sure to keep this tab or window open, as we’ll need it a little later.

4. Configure WordPress to Send Emails

Now that you’ve set up your DNS, you can prepare your WordPress site to start using Mailgun with WP Mail SMTP for sending emails.

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.

After installing and activating this plugin, you need to navigate to WP Mail SMTP » Settings to configure the plugin settings.

At the top of this page, you can set the From Email and From Name. By default, these will fill with your site’s admin email and site name.

For the From Email, you can use any valid email address.

We strongly recommend that you also check the box labeled Force From Email. Since the From Emails from anything on your site that sends email must match this email address in order for SMTP to work, this will save you the trouble of editing the email settings throughout your site (in all form emails, etc).

You may add any From Name you’d like, and you can also choose to Force From Name to apply this setting site-wide.

Next, in the Mailer field you’ll need to select the Mailgun option.

We also recommend checking the optional Return Path checkbox to Set the return-path to match the From Email. This will send you an email if any messages bounce as a result of issues with the recipient’s email address.

After selecting Mailgun as your mailer, a new Mailgun section will appear. Here, you’ll need to enter API and domain information.

Even if your domain is still waiting to be verified, Mailgun will provide this information. You may even have automatically received an email containing your API key, otherwise you’ll need to return to the tab or window with your Mailgun domain details.

In the upper right corner of your Mailgun account, click on the small circle with your initials. Then, select the Security option.

This will take you to a page that includes your API key. You’ll need to click the eye icon to view your full API key.

Once you’ve copied the text for the full key (including key- at the start), return to the WP Mail SMTP settings and paste it into the API Key field.

Then for the Domain Name, enter the subdomain you created in Mailgun (for example, mg.yourdomain.com).

Once this information is complete, go ahead and save your settings.

5. Send a Test Email

Note:Before proceeding with this step, make sure that the verification process from Step 3 is complete. This may take a while, so it’s possible you’ll need to come back to this later.

Once your domain is verified and your settings have been added to WP Mail SMTP, it’s important to send a test email to ensure that everything is working properly. To do this, make sure you’re on the WP Mail SMTP » Settings page and open the Email Test tab.

On this tab, you can enter any email address that you have access to and click the Send Email button.

After sending the email, you should see a success message.

If you check the inbox for that email address, you should receive the email for this test. If you set up WordPress email logs, you can look there as well.

It’s also a good idea to fill out a couple of test submissions for your forms after completing this setup to check and make sure that emails are being delivered successfully.

Final Thoughts

That’s it! You have successfully set up your site to reliably send WordPress emails with Mailgun.

Looking for more email notification tips? You might also want to reassure visitors that their form entries have been received by checking out how to send users confirmation emails from WordPress forms.

So what are you waiting for? Get started with the world’s most powerful WordPress forms plugin today.

And if you like this article, then please follow us on and for more free WordPress tutorials.


How to Configure Mailgun in WordPress to Send Emails

How to Configure Mailgun in WordPress to Send Emails

Updated on March 4, 2020

When it comes to troubleshooting WordPress not sending emails, this can sometimes be a little tricky. For example, many managed WordPress hosts, including Kinsta, do not provide email hosting. However, we do route email via SendGrid for clients. But if you need more control, need to send emails in bulk, or are having trouble with emails going out, it can be beneficial to configure WordPress with a 3rd-party SMTP provider or transactional email service such as Mailgun or Sendgrid. Today we’ll show you how to configure Mailgun in WordPress to send emails.

Mailgun

Mailgun is a transactional email API service designed primarily for developers. However, even non-developers can easily implement their service. We’ll show you below just how easy it is! One of the huge benefits of Mailgun is that they allow you to send up to 10,000 emails for free per month. The next 500,000 are billed at $0.00050 based on usage, which is cheap! For a lot of small businesses or WordPress developers, 10,000 emails might be more than you need. A few additional benefits include:

  • Ability to use HTTP API or SMTP to deliver emails. HTTP API can be more reliable and faster.
  • Includes free email forwarding/routing to other mailboxes. Forward hi@domain.com to your personal Gmail. Not all transactional email services include this, and some only allow you to configure routing in their API. Mailgun lets you set up routes within their dashboard. Great for non-developers!
  • Improved delivery rates.
  • Easy to understand reporting to know exactly how many emails you’ve sent.
  • Live and searchable logs.

One downfall for application developers is that they recently raised prices on their email validation API. However, many WordPress sites don’t utilize this feature.

How to Configure Mailgun in WordPress

Configuring Mailgun in WordPress only takes a few minutes. It’s definitely one of the easiest transactional email services out there to setup. Follow the steps below:

Step 1

First, signup for a free account at Mailgun.com. Once you are in, we highly recommend setting up two-factor authentication. Email delivery and routing are very important, and the last thing you want is for someone to hack your account.

Step 2

The next step is to add your domain. Click on the “Domains” tab and click on “Add New Domain.”

Mailgun add new domain

Step 3

Next, you will need to configure the domain for delivery. Mailgun recommends using a subdomain, such as mg.mydomain.com. Here are some additional recommendations from them on choosing a domain:

  • mycompany.com, unless you’re already using this name for your corporate email
  • m.mycompany.com or mail.mycompany.com
  • mycompany.net or mycompany.org

In our example we are simply using our root domain as that already was configured for email on the previous provider.

Domain setup Mailgun

Step 4

You will then need to add DNS records so that your email points to Mailgun. You can do this at your domain registrar or 3rd-party DNS provider. They require 2 TXT records, 2 MX records, and a CNAME be added. If you need help with this, you can always ask for assistance from your provider. If you are a Kinsta client and using our premium DNS, you can set these up within the MyKinsta dashboard. Or reach out to our support team for help.

Verify domain DNS records

After adding your DNS records it might take a while to propagate. Most will only take a couple of minutes, but it could take up to 24 hours. You can use a free tool like DNSMap to check if your records are pointing to the Mailgun provided values.

Check MX records

You can also check in the Mailgun control panel by clicking on the “Check DNS Records Now” button.

Check DNS records now in Mailgun

Once all the DNS records have propagated, the domain will show as “Active.”

Active domain in Mailgun

Step 5

The next step is to configure your WordPress site to send emails with Mailgun. We recommend downloading and installing the free Mailgun plugin from the repository.

Mailgun WordPress plugin

It currently has 40,000+ active installs with a 4 out of 5-star rating. You can download it from the WordPress repository or by searching for it within your WordPress dashboard under “Add New” plugins. You could also use an alternative plugin such as Easy SMTP. However, the reason we don’t is that Mailgun offers two different methods for sending emails, HTTP API and SMTP. The HTTP API method is only available in their official plugin.

Here are a couple reasons why you might want to use the HTTP API method vs SMTP:

Step 6

The next step is to hookup the plugin. First, go to your domain in Mailgun and copy the API key to your clipboard.

Mailgun API key

You will then need to go to the Mailgun plugin settings and configure the following:

Note: We have had reports that the click tracking feature when enabled might break the password reset functionality in WordPress. If you aren’t using this feature, it might be safer to simply select “No” in the settings for click tracking.

Step 7

Once you have all the settings configured click on “Save Changes.” Then click on “Test Configuration” to get a test email

You’ll get an email like the one below.

And that’s it! All emails from your WordPress site will now go out via Mailgun’s mail servers.

Email Routing

Another handy feature of Mailgun is their easy routing. This allows you to forward email to another mailbox based on the recipient, header, custom, or even a catch all method. For example, you could setup routing for your business domains to all go to your personal Gmail. You could then configure aliases to “send as” the business emails from the same Gmail account.

Also, make sure read our detailed guide about G Suite business emails: The Benefits of G Suite for Your Business (Why We Use It)