Initial assessment without passwords Quote before intervention One accountable specialist from start to finish

Recovery & Prevention

WordPress Not Sending Emails: Why and How to Fix Delivery

Resets, order confirmations and form notifications vanish. The cause is almost always how the mail is sent. Here is the durable SMTP fix.

Short answer: by default WordPress hands email to the server’s basic mail() function, which has no authentication behind it. Modern providers increasingly reject that, so messages are silently dropped or filed as spam rather than bouncing visibly.

Why the failure is silent

There is rarely an error on screen. WordPress reports the message as sent because it handed it over successfully; what happened afterwards is invisible to it. That is why it surfaces indirectly — a customer never got their receipt, or you cannot receive a password reset when locked out.

Diagnose it in minutes

  1. Install a mail-logging plugin, or send a test to two different providers (a Gmail and an Outlook address). Delivery to one but not the other is an authentication problem, not a WordPress bug.
  2. Inspect the headers of a message that did arrive to see how it authenticated (look for spf=pass and dkim=pass).
  3. Check the from address and its domain alignment.

The durable fix: authenticated SMTP

Send through an authenticated service instead of mail(): your provider’s SMTP or a dedicated transactional service. Configure host, port (587 with TLS, or 465 with SSL), username and password, and set a from address on a domain you control. Then publish and align SPF and DKIM DNS records for that domain, and a DMARC record. This is far more reliable than adjusting WordPress settings while the underlying authentication is missing.

Verify what the business depends on

Test the messages that matter — password reset, order confirmation, form notification and admin alerts — and confirm each lands in the inbox rather than spam. Check that the reply-to routes somewhere a human reads.

WP REPAIR INCIDENT STANDARD

How to narrow the fault without guessing

WordPress can hand a message to the local mail function successfully while the recipient never receives it. Submission, transport, authentication and mailbox placement must be tested separately.

WP RepairDiagnostic model
1Symptom2Evidence3Controlled change4Verification
Follow the chain until you find the first point that stops behaving as expected.
01

Log the message WordPress generated, including from, reply-to and recipient.

02

Send controlled tests to more than one mailbox provider.

03

Inspect received headers for SPF, DKIM and DMARC alignment.

04

Use an authenticated transactional provider and monitor bounces or suppressions.

What must be verified

  • Password reset, form and order messages are generated.
  • Authentication passes for the sending domain.
  • Messages reach multiple providers and bounces are observable.

BEFORE YOU SEND THE REQUEST

Frequently asked questions.

Do you ask for passwords in the form?+

No. The public form never requests access. Secure credentials are requested only after the scope and quote are approved.

Who reviews the incident?+

The request goes to Jordi Ensenyat, founder of Code Barcelona and a WordPress specialist with more than 15 years of experience.

Is anything changed before the quote?+

No. Visible symptoms and scope are reviewed first. Intervention begins after approval and with a rollback path prepared.

Do you work internationally?+

Yes. WP Repair handles WordPress and WooCommerce incidents in English and Spanish through a remote service.

Assess my incident