Many new users question why they aren't receiving emails from their contact form plugin or not seeing any WordPress notifications.
In this article, we will show you how to fix the WordPress not sending email issue so that your website may send emails more consistently and avoid the spam folder.
Why You’re Not Getting Emails from Your WordPress Site
The most frequent cause of email issue is an improper PHP mail() setup on your WordPress hosting server.
Many email providers, like Gmail and others, use technologies to reduce email spam, even if your hosting is configured to work with them. These programs try to verify whether an email comes from the claimed address.
WordPress websites often fail this verification when sending emails.
In other words, an email from your WordPress site (through a contact form plugin, an admin notification, etc.) may not reach the recipient's inbox, or even the spam folder.
Because of email issue like this, we recommend against using WordPress to send your newsletter.
This is another reason we advise using SMTP when sending emails through WordPress to avoid email issue.
What is SMTP?
SMTP (Simple Mail Transfer Protocol) is the widely used email transmission protocol.
SMTP employs adequate authentication instead of PHP's mail() function, which results in good email delivery.
The WP Mail SMTP plugin for WordPress allows you to set up your website to send emails over SMTP rather than the PHP mail() function.
It allows you to establish a connection with any well-known SMTP provider, like SendLayer, Sendinblue, Gmail (G Suite), Office365, Amazon SES, and others.
Installing the WP Mail SMTP Plugin
Regardless of the SMTP provider you choose, your website must install the WP Mail SMTP plugin. By doing this, you may tell WordPress to use your SMTP provider rather than the built-in PHP mail() function.
Install and activate the WP Mail SMTP plugin first.
Click WP Mail SMTP on your WordPress dashboard to adjust the plugin settings.
You must enter the name and professional email address you want to use for emails sent from your website. Use the same email address here that you would use for your SMTP mailing service.
Even if other plugins, like WPForms, have different settings, you may require emails to use this name and email address. WP Mail SMTP supersedes the settings for the other plugins.
The next step is to choose SMTP mailing services for your website.
In this article, SendLayer will be used to configure SMTP. We recommend utilizing Office365 and Gmail if those are your preferred options.
You must register for a SendLayer account to continue configuring WP Mail SMTP. We’ll move on to that and then come back to finalizing the setup on WP Mail SMTP.
Sending WordPress Emails using SendLayer
You can send lots of emails with a high delivery rate using SendLayer, a trustworthy email service provider.
Up to 200 emails may be sent for free using SendLayer, which suffices for most small websites to launch.
These could include emails from your contact form, emails about new user accounts, password recovery emails, or other emails sent through your WordPress Website that help avoid email issue.
First, create an account on the SendLayer website. The 'Take SendLayer for a free trial (send up to 200 emails)' link is on the Pricing page. Click it to make your account.
Your SendLayer dashboard will appear after you've registered an account and looks somewhat like this:
Now that you have a SendLayer account let's configure WordPress to use your email service.
Connecting Your WordPress Website with SendLayer
Authorizing your domain is required before you can use SendLayer to send emails.
This demonstrates to email servers that you are the verified owner of your sending domain and that the source of your emails is authentic.
From the SendLayer dashboard, choose the orange 'Add Domain' button to approve your domain.
Put your domain name into the form given on the next page.
Next, choose the 'Add Domain' option.
Note: First, You must set up a subdomain for your website to use other mailing services like Sendinblue. However, SendLayer will instantly add the subdomain to the DNS records for the sender domain. Therefore, while registering the domain, adding a further subdomain is unnecessary.
SendLayer will create 5 DNS entries for your domain when you add it.
By using these lines of code, SendLayer can validate your domain name.
These DNS records must be added to your WordPress website. It can sound not easy, but all you have to do is copy and paste them where they belong.
Log into your WordPress hosting account in the first tab of your browser.
The DNS records for your domain must then be opened.
You may accomplish this in Bluehost by visiting Domains » My Domains. Then, choose your domain by clicking the "Manage" option.
Note: If your DNS is handled by a domain registrar other than Domain.com, Network Solutions, or GoDaddy, adhere to their specific instructions if you use their services.
Select the 'DNS' tab on the next page. The 4 CNAME records and 1 TXT record that SendLayer provides must be included here.
Find the CNAME part of your DNS records by first scrolling down. The appearance will be similar to this:
Adding CNAME and TXT Records to DNS
Then, click ‘Add Record’.
Complete the first record as follows:
Host Record: sl
Points To (Value): Copy this from SendLayer.
TTL: 4 Hours (min)
Tips: Your web host may refer to the host record as name or host. Since Bluehost will automatically add your domain, add the subdomain (sl) when creating the host record. The Record Type, which would be CNAME, may need to be included.
To save your modifications after adding the first record, click the "Save" button.
Repeat the preceding procedures to add the remaining 3 CNAME entries after that.
Scroll down one more after that to access the TXT portion of your DNS entries. You must include the SendLayer TXT record here.
Click the ‘Add Record’ button and complete it as follows:
Host Record: sl
TXT Value: Copy this from SendLayer.
TTL: 4 Hours (min)
Once you’re done, go ahead and save that record too.
Note: TXT Value, the lengthy block of code in the last row of the SendLayer information, may also be referred to as TXT data. TTL may be either 24 hours or 86400 seconds, equal to one day. Use GoDaddy and set it to one hour.
Return to SendLayer after adding your records, and select the checkbox next to "I have added these DNS records and am ready to proceed." Press the 'Verify DNS Records' button after that.
SendLayer may need 24 to 48 hours to authenticate your records, while this time is often significantly less.
The records can't be confirmed if clicking that button has no effect. From your SendLayer dashboard, choose Settings > DNS Records & Settings to check again later to see whether they have been validated.
You may get a list of your DNS records at this location. When your domain has been approved properly, each DNS record will have a green checkmark next to it in the 'Status' column.
While waiting for the authorization, you may continue with this instruction.
Finishing Setting Up WP Mail SMTP to Use SendLayer
Return to your WordPress dashboard's WP Mail SMTP settings at this point. If not, you may do it now. You should have previously provided the From Email and Name.
Then, choose 'SendLayer' for your mailer.
You must then visit your SendLayer account to locate your API key.
Visit the Settings » API Keys page from the SendLayer dashboard. You can view the default API key issued here when SendLayer approves your domain.
You can copy the API key from this page by clicking on the copy icon.
After doing that, return to your WP Mail SMTP settings and paste the API key into the corresponding field:
Congratulations. The setup is complete now. To ensure everything is operating properly, send a test email as the last step.
Go to the 'Email Test' tab of WP Mail SMTP and type the email address you want to use to send a test email. The site administrator's email will be used by default. To send an email, click "Send Email."
You must notice the phrase "Test HTML email was sent successfully." If it still needs to arrive, check your email. This is how it'll appear:
Note: The following notice will appear if your SendLayer account has not been activated: [permission_denied]: email not being sent. The activation of your SMTP account is pending.
Alternative Ways to Fixing WordPress Email Issue
You don't have to use SendLayer, as seen from the list of mailer choices in the WP Mail SMTP plugin. Although it's our top free suggestion, you may also utilize Office 365, Gmail / G Suite, Amazon SES, and other services.
Using Gmail or G Suite with WP Mail SMTP to Fix WordPress Emai Issue
If you have one, emails may be sent using a Gmail or G Suite account. You won't have to input your email login information in WordPress when utilizing the WP Mail SMTP plugin. After setting up WP Mail SMTP, as previously said, to use Gmail or G Suite, choose "Google" for your mailer. The 'Return Path' option must be checked. Next, enter your "Client ID" and "Client Secret." You must create a web application in your Google account to access these details. Next, enter your "Client ID" and "Client Secret." You must create a web application in your Google account to access these details. Note: Although you may utilize this technique with an ordinary Gmail account, adopting G Suite will greatly improve your email delivery. However, utilizing Gmail or G Suite has a few significant disadvantages. You may need to contact your web host and ask them to install the right certificate to get it working. Another is that if your email address changes in the future, you'll need to redo the process. This requires developing a new web application.
Using Office 365 / Outlook with WP Mail SMTP to Fix WordPress Emails
Use your normal email account to send emails using WordPress if you use Microsoft Office 365 or Outlook. Though it is less secure, there are other suggested choices. As shown above, you must configure WP Mail SMTP, then pick the 'Other SMTP' option. This will bring up a form for you to fill out. Use the following parameters to complete it: SMTP Host: smtp.office365.com Encryption: TLS SMTP Port: 587 Auto TLS: (leave switched on) Authentication: (leave switched on) SMTP Username: Your Office 365 account email address SMTP Password: Your Office 365 account password This solution's primary drawback is that it requires you to save your password in WordPress as plain text. This isn't safe, and any other administrators to your account will be able to see your password. To enter it in your wp-config.php file instead, follow the WP Mail SMTP app instructions.
Using Amazon SES with WP Mail SMTP to Fix WordPress Emails
You may utilize the Amazon AWS platform's Simple Email Service (SES) feature to fix the WordPress email issue. The nice thing about Amazon is that you may send up to 62,000 emails for free each month. We don't suggest it as our first choice since the setup is disadvantageously more difficult for novices. However, as you can anticipate, many specialists and industry professionals choose Amazon SES as their WordPress email SMTP service. Therefore, we had to include it in our article.