You just built a beautiful WordPress site. You have a contact form, an online store, or a membership area. But there is a huge problem.
No one is getting your emails.
New users don’t get their passwords. Customers don’t get their receipts. And you don’t get notifications when someone fills out your contact form.
It is frustrating. But here is the good news: Your website is not broken.
This is actually the most common issue in WordPress history. The default way WordPress sends email is unreliable, and in 2026, most email providers (like Gmail and Yahoo) block it automatically to stop spam.
In this guide, we will show you exactly why this happens and how to fix it permanently using a method that guarantees 100% delivery.
Why Are My Emails Not Sending?
To fix the problem, you need to understand it.
By default, WordPress uses a function called wp_mail() which relies on the PHP mail() function of your web server. It works like this:
WordPress hands a letter (the email) to your web server.
Your web server tries to pass it to Gmail or Outlook.
Gmail looks at the letter and says, “Wait, this claims to be from
yoursite.com, but it is coming from a generic server with no ID card. It looks like spam.”Gmail blocks it.
The Solution: We need to stop using your web server to send mail. Instead, we will connect your website to a proper SMTP (Simple Mail Transfer Protocol) provider. This is like giving your website a verified ID card so Gmail knows the email is safe.
Check the Basics First
Before we set up the technical stuff, let’s make sure it’s not a simple error.
1. Check Your Spam Folder
This sounds obvious, but do it.
Check the spam folder of the email address receiving the notifications.
If the email is there, your site is sending, but email providers think it is junk. You still need to follow the SMTP steps below to fix this.
2. Verify the “From” Address
WordPress tries to send email from wordpress@yourdomain.com by default. If this email address does not exist, some servers block it.
Action: Ensure you are using a real email address (like
support@yourdomain.com) in your contact form settings.
The Permanent Fix (SMTP)
We are going to install a plugin that routes your email through a trusted server. This is the industry-standard way to fix this issue.
Step 1: Choose an SMTP Plugin
There are many good options. We recommend WP Mail SMTP. It is the most popular and has a free version that works perfectly.
Log in to your WordPress Dashboard.
Go to Plugins > Add New.
Search for “WP Mail SMTP.”
Install and Activate it.
Step 2: Choose a Mailer Service
Now you need to choose who will send the emails. Do not choose “Default” (PHP).
For Small Sites (Free): Use Sendinblue (Brevo) or Gmail (good for personal sites).
For Business Sites (Recommended): Use SendGrid, Mailgun, or Amazon SES. These are professional tools designed to ensure emails hit the inbox.
Example Setup: Using Gmail (Free) If you are a freelancer or small business, you can use your Gmail account.
In the WP Mail SMTP settings, select Google / Gmail.
You will need to create a “Client ID” in the Google Cloud Console. (The plugin provides a link and instructions for this).
Copy the Client ID and Client Secret into the plugin settings.
Click “Authorize Plugin” to sign in with your Gmail account.
Click Save Settings.
Example Setup: Using “Other SMTP” (Your Host) If your hosting plan comes with email (like info@yourdomain.com), you can use those details.
Select “Other SMTP” in the plugin.
SMTP Host: Usually
mail.yourdomain.comorsmtp.gmail.com.Encryption: Choose TLS or SSL.
SMTP Port: Usually 587 (for TLS) or 465 (for SSL).
Username: Your full email address.
Password: Your email password.
Step 3: Send a Test Email
Now comes the moment of truth.
Go to the WP Mail SMTP menu and click Tools.
Click the Email Test tab.
Enter your personal email address.
Click Send Email.
If you see a green “Success” message, congratulations! Your WordPress site is fixed.
The "Pro" Step (SPF, DKIM, DMARC)
If you successfully set up SMTP but your emails still go to Spam, you are missing your DNS records. These are like digital signatures that prove you own your domain.
You need to add these “TXT records” to your domain settings (where you bought your domain, like GoDaddy or Namecheap).
1. SPF (Sender Policy Framework)
This tells the internet which servers are allowed to send email for you.
Value:
v=spf1 include:sendgrid.net ~all(Replace “sendgrid.net” with your provider, e.g.,_spf.google.com).
2. DKIM (DomainKeys Identified Mail)
This adds an encrypted key to your emails. Your email provider (SendGrid, Gmail, etc.) will give you this key. You just paste it into your DNS.
3. DMARC
This tells Gmail what to do if an email fails the check.
Value:
v=DMARC1; p=none;
Note: Adding these records can take up to 24 hours to work.
Contact Form Troubleshooting
Sometimes, WordPress sends emails fine, but your Contact Form plugin is broken.
If the Test Email in Step 3 worked, but your contact form still fails:
Check the “To” Field: Go to your form settings (Contact Form 7, WPForms, Elementor Forms). Make sure the “To” address is correct and has no typos.
Check the “From” Field: Do not use the visitor’s email as the “From” address. Use your own site email (e.g.,
noreply@yoursite.com) and put the visitor’s email in the “Reply-To” field. This prevents spoofing blocks.
Conclusion
The “WordPress not sending email” issue is annoying, but it is a rite of passage for every website owner.
To recap:
Don’t rely on PHP Mail. It is blocked by everyone.
Install an SMTP Plugin. Connect your site to a real mail server.
Authenticate. Add SPF and DKIM records to stay out of the spam folder.
By following these steps, you ensure that your password resets, order confirmations, and customer inquiries land exactly where they belong: in the inbox.
Need Help Setting Up SMTP? Configuring DNS records and API keys can be technical. If you are stuck, Contact Our WordPress Support Team. We can configure your email delivery system for you, ensuring 100% reliability.
For official documentation on mail issues, check the WordPress.org Mail Support Page

