Many beginners often encounter issues with their contact form plugins not sending emails or missing WordPress notifications. In this guide, we’ll show you how to resolve the problem of WordPress not sending emails, ensuring your website sends emails reliably and avoids the spam folder.
Why You’re Not Getting Emails From Your WordPress Site
The most common reason for missing emails is that your WordPress hosting server is not properly configured to use the PHP mail() function.Even if your hosting is configured correctly, many email service providers, like Gmail, employ various tools to reduce spam. These tools verify whether an email is genuinely coming from the claimed location.
Emails sent by WordPress websites often fail this verification.
This means that when an email is sent from your WordPress site (via a contact form plugin, admin notification, etc.), it may not even reach the recipient’s spam folder, let alone their inbox.For this reason, we advise against using WordPress to send your email newsletters.
We recommend using SMTP for sending emails in WordPress.
What Is SMTP?
SMTP (Simple Mail Transfer Protocol) is the industry standard for sending emails.
Unlike the PHP mail() function, SMTP uses proper authentication, leading to high email deliverability.
WordPress offers a WP Mail SMTP plugin that configures your site to send emails using SMTP instead of the PHP mail() function.
You can connect it with popular SMTP services like SendLayer, Brevo (formerly Sendinblue), Gmail (Google Workspace), Amazon SES, and more.
Now, let’s look at how to fix the WordPress not sending email issue.
If you prefer written instructions, keep reading. Use the quick links below to navigate through this article:
Step 1: Install the WP Mail SMTP Plugin
Whatever SMTP service you choose, you’ll need to install the WP Mail SMTP plugin on your site. This plugin switches WordPress from using the built-in PHP mail() function to your SMTP service.
First, install and activate the WP Mail SMTP plugin. If you’re unsure how to do this, refer to our step-by-step guide on how to install a WordPress plugin.
Next, click on ‘WP Mail SMTP’ in your WordPress dashboard to configure the plugin settings.
You will need to start by entering the name and business email address you want your site’s emails to come from. Ensure you use the same email address that you’ll be using for your SMTP mailing service.
Entering the name and email address for your WordPress emails
You can choose to force emails to use this name and email address, even if other plugins, like WPForms, have different settings. WP Mail SMTP will override the other plugins’ settings.
Next, select an SMTP mailing service for your site. For this tutorial, we will set up SMTP using SendLayer.
To finish setting up WP Mail SMTP, you’ll need to create an account with SendLayer. We will move on to that next and then come back to finalizing the setup on WP Mail SMTP, so make sure to keep this tab open.
Step 2: Set Up Your SMTP Mailing Service
SendLayer is a reliable email service provider that ensures high deliverability for a large number of emails.
You can use SendLayer to send up to 200 emails for free, which is sufficient for most small websites to get started.
These emails can include contact form submissions, new user account details, password recovery emails, or any other emails sent through your WordPress site.
To get started, go to the SendLayer website and create an account. On the Pricing page, click on the ‘Try our SendLayer free trial (send up to 200 emails)’ link to set up your account.
Once you’ve created an account, you’ll see your SendLayer dashboard.
Now that you have a SendLayer account, let’s set up your email provider with WordPress.
Step 3: Connect Your WordPress Website with SendLayer
Before sending emails with SendLayer, you need to authorize your domain. This step proves to email servers that you are the legitimate owner of your sending domain.
To authorize your domain:
Add Your Domain:
- From the SendLayer dashboard, click the orange ‘Add Domain’ button.
- On the next page, enter your domain name in the provided field.Click the ‘Add Domain’ button.
Note: Unlike other mailing services like Brevo (formerly Sendinblue), SendLayer automatically adds the subdomain to the sender domain’s DNS records. You don’t need to add an extra subdomain when registering the domain.
Add DNS Records:
- After adding your domain, SendLayer will show you 5 DNS records to add to your domain’s DNS settings. These records authorize your domain name.
- Copy these DNS records and add them to your domain’s DNS record settings. For this tutorial, we will use a Bluehost hosting account as an example.
Steps for Adding DNS Records in Bluehost:
Log in to Your Hosting Account:
- Open a new browser tab and log in to your Domain Provider account.
- Go to ‘Domains’ and click ‘Settings’ next to the domain you want to connect with SendLayer.
Access Advanced DNS Settings:
- Scroll down to the ‘Advanced Tools’ section and click the ‘Manage’ button next to Advanced DNS Records.
- Click ‘Continue’ to proceed past the warning message.
Add DNS Records:
Here’s an example of what your screen should look like when adding a CNAME record:
- Repeat these steps for all DNS records (both CNAME and TXT).
Verify DNS Records:
- Once you’ve added your records, return to SendLayer and check the box next to ‘I have added these DNS records and am ready to proceed.’
- Click the ‘Verify DNS Records’ button. Verification can take 24-48 hours. If verification is not immediate, check back later in the ‘DNS Records & Settings’ tab in your SendLayer dashboard.
Once your domain is successfully authorized, green checkmarks will appear next to each DNS record in the ‘Status’ column. You can continue with the tutorial while waiting for the authorization process to complete.
Step 4: Finish Setting Up WP Mail SMTP to Use SendLayer
Step 1: Retrieve Your SendLayer API Key
- Log in to your SendLayer account.
- Navigate to the Settings » API Keys page. Here, you’ll find a default API key generated when you authorized your domain.
- Copy the API key by clicking the copy icon.
Step 2: Paste the API Key in WP Mail SMTP
- Return to your WP Mail SMTP setup wizard tab.
- Paste the copied API key into the appropriate field.
Step 3: Send a Test Email
- Go to WP Mail SMTP » Tools.
- In the ‘Email Test’ tab, enter an email address (it defaults to the site’s admin email).
- Click ‘Send Email’.
- You should see the message ‘Test HTML email was sent successfully!’ Check your inbox to confirm it has arrived.
Alternative Ways to Fix the WordPress Not Sending Email Issue
Other Mailer Options
- While SendLayer is our top free recommendation, other options include Microsoft 365, Gmail (Google Workspace), Amazon SES, etc.
Using Gmail or Google Workspace with WP Mail SMTP
- Set up WP Mail SMTP as shown above.
- Select the ‘Google / Gmail’ option for your mailer.
- Configure the mailer settings using WP Mail SMTP’s one-click setup.
- Sign in to your Gmail account and click ‘Save Settings’.
Drawbacks:
- You may need your web host to install the right certificate.
- Changing the email address in the future requires repeating the entire setup process.
Using Microsoft 365 with WP Mail SMTP
- Set up WP Mail SMTP.
- Select the ‘365 / Outlook’ option for your SMTP mailer.
- Register an app on Microsoft Azure and fill out the required fields.
Using Amazon SES with WP Mail SMTP
- Amazon SES allows sending up to 62,000 emails per month for free.
- The setup is more challenging for beginners.
- Many professionals and experts use Amazon SES for WordPress email SMTP service.
Read Also:
Seek Help from a Professional
If you need further assistance with troubleshooting or fixing your WordPress website, or if you’re looking for paid services, please feel free to contact me on Upwork or LinkedIn.