Skip to content

How to Fix WordPress Not Sending Emails

WordPress email issues can disrupt contact forms, user registrations, and notifications. This guide walks you through diagnosing and fixing the problem using SMTP plugins, server settings, and best practices for reliable email delivery.

Key Takeaways

  • WordPress doesn’t send emails by default via SMTP: It uses PHP mail(), which is often blocked or marked as spam by email providers.
  • Use an SMTP plugin for reliable delivery: Plugins like WP Mail SMTP route emails through trusted services like Gmail or SendGrid.
  • Check your hosting provider’s email limits: Some hosts restrict outgoing emails to prevent spam, causing delivery failures.
  • Test emails after every change: Always verify that your fixes work by sending a test email from your site.
  • SPF and DKIM records improve deliverability: These DNS settings help prove your emails are legitimate and reduce spam flags.
  • Contact form plugins need proper configuration: Even with SMTP set up, misconfigured forms (like Contact Form 7) can still fail.
  • Keep your WordPress and plugins updated: Outdated software can break email functionality or introduce security flaws.

Why Is WordPress Not Sending Emails?

If your WordPress site isn’t sending emails—whether it’s contact form submissions, password resets, or new user notifications—you’re not alone. This is one of the most common issues WordPress users face. The root cause? WordPress relies on PHP’s built-in mail() function, which lacks authentication and is often blocked by email providers like Gmail or Outlook.

Without proper setup, your emails may end up in spam, get rejected entirely, or never leave your server. This guide will help you fix WordPress not sending emails with clear, actionable steps—no coding expertise required.

Step 1: Test If Emails Are Actually Being Sent

Before diving into fixes, confirm the problem exists. Try triggering an email:

  • Submit a test message via your contact form.
  • Request a password reset on your login page.
  • Register a new user account (if allowed).

If you don’t receive these emails, proceed to the next steps. You can also use the WP Mail Logging plugin to see if emails are being generated at all—even if they’re not delivered.

Step 2: Install an SMTP Plugin

The best way to fix WordPress email issues is to bypass PHP mail() and use SMTP (Simple Mail Transfer Protocol). SMTP connects your site to a real email service, improving deliverability and tracking.

Recommended SMTP Plugins

  • WP Mail SMTP – Free, easy to use, supports Gmail, Outlook, SendGrid, and more.
  • Post SMTP – Modern alternative with detailed logs and migration tools.
  • Easy WP SMTP – Lightweight option for basic setups.

How to Set Up WP Mail SMTP

  1. Go to Plugins > Add New in your WordPress dashboard.
  2. Search for “WP Mail SMTP” and install it.
  3. Activate the plugin and go to WP Mail SMTP > Settings.
  4. Choose your mailer (e.g., “Other SMTP” or “Gmail”).
  5. Enter your SMTP details (host, port, encryption, username, password).
  6. Save changes and send a test email.

For Gmail users, use “Other SMTP” with these settings:

  • SMTP Host: smtp.gmail.com
  • Encryption: TLS
  • Port: 587
  • Authentication: Yes
  • Username: Your full Gmail address
  • Password: Use an App Password (not your regular password—enable 2FA first)

Step 3: Use a Transactional Email Service

For high-volume or business-critical emails (like order confirmations), consider a dedicated email service. These services offer better deliverability, analytics, and scalability.

How to Fix WordPress Not Sending Emails

Visual guide about How to Fix WordPress Not Sending Emails

Image source: peakminute.com

Popular Options

  • SendGrid – Free tier up to 100 emails/day.
  • Mailgun – Great for developers, offers detailed logs.
  • Brevo (formerly Sendinblue) – Free plan includes 300 emails/day.
  • Amazon SES – Low-cost, ideal for large sites.

Most SMTP plugins support these services. Simply select the provider in WP Mail SMTP and enter your API key or SMTP credentials.

Step 4: Check Your Hosting Provider’s Email Policies

Some web hosts limit or block outgoing emails to prevent spam. Shared hosting plans (like Bluehost or SiteGround) often restrict PHP mail() or require SMTP authentication.

What to Do

  • Check your host’s documentation for email sending limits.
  • Contact support and ask if they block PHP mail() or require SMTP.
  • If blocked, use your host’s SMTP server (e.g., mail.yourdomain.com) or switch to a third-party service.

For example, SiteGround users can use their SMTP server:

  • Host: ssl://mail.yourdomain.com
  • Port: 465
  • Username: Your cPanel email
  • Password: Your email account password

Step 5: Configure SPF and DKIM Records

Even with SMTP, emails may be flagged as spam if your domain lacks proper authentication. SPF (Sender Policy Framework) and DKIM (DomainKeys Identified Mail) help prove your emails are legitimate.

How to Set Up SPF

  1. Log in to your domain registrar or DNS provider (e.g., GoDaddy, Cloudflare).
  2. Go to DNS settings and add a TXT record.
  3. Use this value (replace yourdomain.com):
    v=spf1 include:sendgrid.net ~all (if using SendGrid)
    or
    v=spf1 include:_spf.google.com ~all (if using Gmail)

How to Set Up DKIM

DKIM requires a public/private key pair. Most email services (like SendGrid or Gmail) provide DKIM records automatically. For SendGrid:

  • Go to SendGrid Dashboard > Settings > Sender Authentication.
  • Select “Domain Authentication” and follow the setup wizard.
  • Add the provided CNAME records to your DNS.

These changes can take 24–48 hours to propagate but significantly improve email deliverability.

Step 6: Fix Contact Form 7 and Other Form Plugins

If you’re using Contact Form 7 or similar plugins, emails may still fail even with SMTP configured. This is often due to incorrect “From” email settings.

Best Practices for Contact Form 7

  • Use a real email address from your domain in the “From” field (e.g., info@yourdomain.com).
  • Avoid using generic addresses like wordpress@yourdomain.com unless properly configured.
  • Ensure the “To” email matches an active mailbox.
  • Install the Flamingo plugin to save submissions locally as a backup.

For more details, see our guide on Contact Form 7 not sending email.

Step 7: Update WordPress and Plugins

Outdated software can break email functionality. Always keep your:

up to date. Updates often include security patches and compatibility fixes that affect email delivery.

Troubleshooting Common Issues

Emails Still Not Sending?

  • Check your spam folder—sometimes emails arrive but get filtered.
  • Use a plugin like Email Log to see if emails are being generated.
  • Test with a different email address (e.g., Gmail vs. Outlook).
  • Disable other plugins temporarily—conflicts can block email functions.

“Could Not Instantiate Mail Function” Error

This means PHP mail() is disabled on your server. Solutions:

  • Switch to SMTP (as described above).
  • Contact your host to enable mail() (not recommended for reliability).

Emails Delayed or Going to Spam

  • Ensure your “From” name and email are consistent.
  • Avoid spammy subject lines (e.g., “FREE OFFER!!!”).
  • Set up DMARC in addition to SPF and DKIM for full email authentication.

Conclusion

Fixing WordPress not sending emails doesn’t have to be frustrating. By switching from PHP mail() to SMTP, using a reliable email service, and configuring proper DNS records, you can ensure your site’s emails reach the inbox—not the spam folder.

Start with an SMTP plugin like WP Mail SMTP, test your setup, and monitor deliverability. With these steps, your contact forms, notifications, and user emails will work reliably. And remember: always keep your WordPress installation and themes updated to avoid future issues—learn more in our guide on how to update theme on WordPress.