WP Web Hosting Get started

WordPress not sending email: why it happens and how to fix it

When form notifications, password resets or order emails go missing, the cause is almost always how WordPress sends mail. Here is how to diagnose it and fix it properly.

Updated 14 October 2026

Why WordPress email goes missing

Out of the box, WordPress hands each email to the web server, which tries to deliver it using PHP's built-in mail function. That route has several weaknesses:

  • The server may not be set up to send mail at all, or the host may block or limit it.
  • The message comes from a web server, not your real mail service, so receiving providers trust it less.
  • Your domain's DNS records may not authorise that server to send on your behalf, so the message fails authentication checks.
  • Forms are often set to send "from" the visitor's own address, which looks like forgery to the receiving server.

The result is mail that is silently dropped, delayed or filed as spam. Large mailbox providers have tightened their authentication requirements in recent years, so a setup that seemed to work before can start failing without any change on your side.

First, find out where it is failing

Before changing settings, establish what is actually happening.

  1. Check spam folders in the receiving mailbox, and in any shared or filtered folders.
  2. Test different recipients. Send a test to an address on your own domain and to a personal address with a large provider. If one works and the other does not, it is a delivery or authentication problem rather than WordPress failing to send.
  3. Trigger a simple email. A password reset for a test user is a quick check that core WordPress mail works, separate from your form plugin.
  4. Check the form settings. Confirm the "To" address is correct and the notification is enabled. It is surprisingly common for a notification to be switched off or sent to an old address.
  5. Log outgoing mail. Most SMTP plugins include an email log, which shows whether WordPress tried to send and what error came back.

The main fix: send through SMTP

An SMTP plugin tells WordPress to send through a real mail service instead of the web server. Popular options include WP Mail SMTP, FluentSMTP and Post SMTP. All do the same core job. You then connect it to one of these:

  • Your existing mailbox provider, such as Microsoft 365, Google Workspace or your host's mail service. This suits low volumes, such as contact form notifications. Some providers require app passwords or an OAuth connection rather than your normal password.
  • A transactional email service, such as Brevo, Mailgun, Postmark or Amazon SES. These are built for sending automated email from websites and give you delivery logs. They suit shops and sites that send more mail. Check each provider's current pricing page for limits and costs.

After connecting, use the plugin's test email feature and send to a personal address outside your domain. Check it arrives in the inbox, not spam, and look at the message headers if your mail client allows. You want to see SPF, DKIM and DMARC all marked as passing.

Get your domain records right: SPF, DKIM and DMARC

These three DNS records tell receiving servers that mail claiming to be from your domain is genuine. They are added where your domain's DNS is managed, which might be your registrar, your host or a service such as Cloudflare.

SPF

An SPF record lists which services may send mail for your domain. Your domain should have only one SPF record. If you use several services, for example Microsoft 365 for staff mail and a transactional service for the website, they are combined into that single record using the include values each provider gives you. Two separate SPF records cause failures.

DKIM

DKIM adds a digital signature to each message. Your mail provider or sending service gives you one or more records to add, then you switch on signing in their dashboard. Each service you send through needs its own DKIM setup.

DMARC

DMARC tells receiving servers what to do with mail that fails SPF and DKIM, and where to send reports. Start with a monitoring policy so nothing is blocked while you check that all your legitimate mail passes. Tighten it once you are confident. Your mail provider's documentation will give the exact format.

Fix the From and Reply-To addresses

Even with SMTP and correct records, the wrong From address breaks delivery. Follow these rules for every form and notification:

  • The From address should be on your own domain, and should match the account or domain authorised in your SMTP plugin. Many plugins let you force this so other plugins cannot override it.
  • Put the visitor's email in Reply-To, so pressing reply still answers them.
  • Use a clear From name, such as your business name, so recipients recognise the message.

Other causes worth checking

  • A plugin conflict. Two plugins that both change mail settings can override each other. Keep one mail plugin only.
  • Mailbox rules. A rule in Outlook or Gmail may be moving messages or deleting them.
  • Full mailbox or forwarding loops. A full inbox rejects new mail, and forwarding chains can break authentication.
  • After a move. When a site moves to a new host, the old server may have been sending mail in a way the new one does not. Re-test email after any move. Our guide on how to move WordPress to a new host includes this check.
  • A compromised site. If your domain suddenly appears on blocklists or the host warns about outgoing spam, investigate. See what to do if your WordPress site is hacked.

Keep enquiries safe even if email fails

Email will occasionally fail, however well configured. Make sure your contact form also stores each submission in the site, so you can check the entries list and never lose an enquiry to a spam filter. The guide to WordPress contact forms covers this.

On WP Web Hosting's WP Managed plan, enquiries from your site land as client records in BonusFlow, so they are captured there as well as in your inbox. You still need sound mail records on your domain for everything else your site sends, such as password resets.

Frequently asked

Why are my WordPress emails going to spam?

Usually because they are sent from the web server without SPF and DKIM authorisation for your domain, or because the From address does not match your domain. Sending through SMTP with correct DNS records normally fixes it.

What is the best SMTP plugin for WordPress?

Established options such as WP Mail SMTP, FluentSMTP and Post SMTP all do the core job well. Choose one, connect it to your mail service and use its test and log features.

Can I have two SPF records?

No. A domain should have a single SPF record. Combine all your sending services into that one record using the include values each provider gives you.

Should the form email come from the visitor's address?

No. Send from an address on your own domain and put the visitor's address in Reply-To. You can still reply directly, and the message passes authentication checks.

Your WordPress site, sorted.

Sign up in a minute. WordPress and Elementor are ready when you log in.

Get started
From £14.95/monthGet started