Email VPS
Troubleshooting and repair

WordPress does not send email, the cause and a lasting fix

Sending email from a website

By default WordPress sends messages using a server function. That worked ten years ago. These days receiving servers check whether the sender is allowed to send on behalf of that domain, and an unauthenticated message lands in spam or is rejected outright.

In short

  • The fault affects every message the site sends, not only the one you noticed.
  • The lasting fix is to send through a real mailbox.
  • The sender address must be on your own domain, not the visitor's address.

1. Establish the scope

Try a password reset and the contact form. If neither works, this is about sending. If one works, this is about that one feature. This single test saves a lot of wasted effort.

2. Switch sending to a real mailbox

The right fix is to configure WordPress to send through your own mailbox with authentication, the same way an email client sends. You need the address, the password, the server name and the port. The same details are in our guide on connecting a mailbox to an email client.

3. Fix the sender address

The sender must be an address on a domain you own, for example one reserved for forms. The visitor's own address belongs in the reply field, not in the sender field. This one change solves a large share of spam folder problems.

4. Confirm the authentication records

A domain has three records that state who may send on its behalf. If they are missing or outdated, messages go to spam even when sending technically succeeds. They are covered in our guide on SPF, DKIM and DMARC.

5. Test to a real address

Always test to an outside address, not to a mailbox sitting on the same server as the site. A message can pass inside the house and be rejected outside. Check the spam folder too, because the message may have arrived in the wrong place.

6. If messages go out but arrive late

Then this is about queuing. The usual cause is that messages are sent during a page load and the scheduled task does not run until somebody visits the site. On a busy site this never shows, on a quiet one it shows as hours of delay.

What not to do

Do not solve this by using a free email service address as the sender. That is exactly the structure recipients reject, and it damages the reputation of your own domain. The basics of business email are covered in our guide on business email.

If you would rather not do it yourself

We switch sending to an authenticated mailbox, fix the sender address and check the domain records. We finish with a real test send, so we know messages arrive rather than merely leave.

See how we repair a broken site »