How to Fix a WordPress Site That’s Not Sending Emails

August 19, 2026

If your WordPress site isn’t sending emails, you can fix it by verifying server mail settings, installing a reliable SMTP plugin, and ensuring proper DNS records such as SPF and DKIM are configured.

WordPress relies on the PHP mail() function by default, which often fails on shared hosting or when the server blocks outbound SMTP traffic. This leads to missed order confirmations, password reset links, and contact form messages, frustrating both site owners and visitors. In this article we will walk through the most common reasons for email delivery failures, show you how to test the built‑in mail function, and provide a step‑by‑step guide to configuring an SMTP solution that works reliably. By the end you will have a fully functional email system and a clear checklist for future troubleshooting.

Understanding Why WordPress Fails to Send Emails

Before diving into fixes, it helps to know the typical culprits behind the wordpress not sending emails symptom. Most issues stem from one of the following areas:

  • Server restrictions: Many shared hosts disable the PHP mail() function or limit outbound connections on port 25 to prevent spam.
  • Incorrect email settings: The default From address may use wordpress@yourdomain.com, which can be flagged as spoofed.
  • Missing DNS records: Without proper SPF, DKIM, or DMARC entries, receiving mail servers may reject or mark messages as junk.
  • Plugin or theme conflicts: Some plugins override the mail function or hook into wp_mail incorrectly.
  • Outdated PHP version: Older PHP releases may have bugs affecting mail delivery.

Identifying which of these applies to your site is the first step toward a permanent solution. For example, if you notice that emails are never sent from a fresh WordPress install on a new host, server restrictions are likely the cause.

Is wp_mail Actually Working on My Site?

WordPress provides the wp_mail() wrapper around mail(). Testing it directly can confirm whether the core function is functional before adding any plugins.

Follow these steps:

  1. Install the free Check Email plugin or use a simple PHP snippet placed in your theme’s functions.php file.
  2. Send a test email to a Gmail or Outlook address you control.
  3. Check the inbox and also the server’s mail log (often accessible via cPanel > Email > Track Delivery) for any error messages.

If the test email arrives, the issue is likely with the way your site or a specific plugin formats outgoing mail. If it does not, you are dealing with a server‑level problem and should consider an SMTP solution or contacting your host.

Installing and Configuring an SMTP Plugin

SMTP (Simple Mail Transfer Protocol) routes your messages through a dedicated mail server, bypassing the unreliable mail() function. The most popular choice is the WP Mail SMTP plugin, which integrates with services like Gmail, SendGrid, and Mailgun.

Configuration steps:

  • Navigate to Plugins → Add New and search for “WP Mail SMTP”. Install and activate.
  • Go to WP Mail SMTP → Settings. Choose a mailer (e.g., Gmail, SendGrid, or “Other SMTP”).
  • Enter the SMTP host (e.g., smtp.gmail.com), port (usually 465 for SSL or 587 for TLS), and authentication credentials.
  • Set the From Email and From Name to match your domain.
  • Save settings and use the built‑in test email tool to verify delivery.

For many sites, the free version of WP Mail SMTP is sufficient, but if you need detailed logs and multiple mailers, the Pro version may be worthwhile. You can also explore a free trial of HighLevel if you prefer an all‑in‑one marketing platform that includes transactional email capabilities.

Verifying DNS and SPF Records for Reliable Delivery

Even with a correctly configured SMTP plugin, receiving mail servers often check DNS records to confirm that your domain is authorized to send mail. Missing or misconfigured SPF (Sender Policy Framework) and DKIM (DomainKeys Identified Mail) records can cause messages to land in spam or be rejected outright.

To audit your DNS:

  1. Log into your domain registrar or DNS provider.
  2. Add an SPF TXT record that includes the IP address of your SMTP server. A typical entry looks like: v=spf1 include:spf.sendgrid.net ~all.
  3. Enable DKIM by generating a key pair in your email service dashboard and adding the provided TXT record.
  4. Optionally add a DMARC record to specify how receivers should handle failures, e.g., v=DMARC1; p=none; rua=mailto:postmaster@yourdomain.com.

After updating records, use tools such as MXToolbox to verify that SPF and DKIM are published correctly. It may take up to 48 hours for DNS propagation, so retest the WP Mail SMTP test email after this period.

Troubleshooting Conflicts with Themes and Other Plugins

Even with SMTP set up, a misbehaving theme or plugin can intercept the wp_mail() filter and alter headers, causing delivery failures. Common conflict signs include:

  • Emails sent only from certain forms (e.g., Contact Form 7 works, but Gravity Forms does not).
  • Errors logged in debug.log mentioning “mail() has been disabled”.
  • Duplicate emails or missing content.

Resolution steps:

  1. Temporarily switch to a default theme like Twenty Twenty‑Three. If email delivery resumes, the issue lies in your theme.
  2. Deactivate all plugins except the SMTP plugin. Re‑enable them one by one, testing after each activation.
  3. If a specific plugin causes the problem, check its settings for “Email From” overrides or contact the developer for a fix.

Documenting the conflict helps you avoid future regressions, especially after updates. For more detailed debugging techniques, see our guide on how to fix a WordPress login page redirect loop.

When to Contact Your Hosting Provider or Use a Transactional Email Service

If you have followed the previous steps and emails still do not reach recipients, the bottleneck may be outside your control. Hosting providers sometimes block outbound SMTP ports or limit the number of emails per hour. In such cases:

  • Open a support ticket asking whether ports 25, 465, and 587 are open for outbound traffic.
  • Request that they whitelist the IP address of your chosen SMTP service.
  • Consider moving to a host that offers built‑in email delivery or dedicated email servers.

Alternatively, you can offload transactional email to a specialized service like SendGrid, Mailgun, or Amazon SES. These platforms provide detailed analytics, higher deliverability rates, and often a free tier sufficient for small‑to‑medium sites.

For businesses that need integrated marketing automation, our services include setup and monitoring of transactional email providers, ensuring you never lose a customer communication again.

Conclusion

Fixing a WordPress site that isn’t sending emails involves a systematic approach: test the native wp_mail() function, install a trusted SMTP plugin, verify DNS records, and eliminate theme or plugin conflicts. When local troubleshooting fails, involve your host or switch to a dedicated transactional email service. By following this checklist you’ll restore reliable email delivery, improve user experience, and protect your site’s reputation. If you need hands‑on assistance, feel free to reach out through our contact page or explore our tools for ongoing monitoring.

Disclosure: This post contains affiliate links. We may earn a commission if you purchase through them, at no extra cost to you.

Detailed close-up of an email app icon on a smartphone screen, showcasing modern technology.
Detailed close-up of an email app icon on a smartphone screen, showcasing modern technology.
A wooden mannequin hand holds a brown envelope containing blank postcards.
A wooden mannequin hand holds a brown envelope containing blank postcards.

Leave a Comment