## Summary

Your WordPress or WooCommerce site says the email was sent, but customers never get order confirmations, password resets or contact-form messages. Or the mail arrives in spam. When you check the bounce, Gmail says **"550-5.7.26 This mail is unauthenticated"** or **"This message does not pass authentication checks (SPF and DKIM both do not pass)"**. Gmail and other large inboxes now reject or bury mail that is not properly authenticated for your domain.

This guide gives you the quick checks first. If you would rather hand it over, SazM fixes WordPress email delivery (SMTP setup, SPF, DKIM and DMARC alignment) for an affordable **$99 fixed price, delivered within 48 hours**, entirely in writing.

## Where the Error Lives

WordPress sends mail with PHP `wp_mail()`, which by default uses the web server itself as the sender. That server is rarely listed in your domain's SPF record and does not sign mail with DKIM. The evidence is in three places:

```text
# Bounce message returned to the From address (or in your mail log)
550-5.7.26 This mail is unauthenticated, which poses a security risk to the
sender and Gmail users, and has been blocked.

# Message headers of a mail that reached spam (Gmail: Show original)
SPF: FAIL / DKIM: 'NONE' / DMARC: 'FAIL'

# WordPress side: wp_mail() failures
wp-content/debug.log  ->  "wp_mail failed" / "Could not instantiate mail function"
/var/log/mail.log or /var/log/exim_mainlog  ->  status=bounced / rejected
```

What each result points to:

```text
SPF fail or softfail   -> the sending server is not in your domain's SPF record
DKIM none              -> mail is not signed (default PHP mail never is)
DMARC fail             -> neither SPF nor DKIM aligns with the visible From domain
```

## Quick Fix Breakdown (DIY)

- **Read the headers first.** Send a test to a Gmail address, open the message, choose *Show original* and read the SPF, DKIM and DMARC lines. Fix only what fails.
- **Look up your current records.**

```bash
dig +short TXT example.com | grep -i spf
dig +short TXT _dmarc.example.com
dig +short TXT selector1._domainkey.example.com   # use your provider's DKIM selector
```

- **Publish exactly one SPF record.** Two `v=spf1` records are invalid and make SPF fail. Merge them with the `include:` your mail provider documents:

```text
example.com.  TXT  "v=spf1 include:<your-mail-provider-spf-domain> ~all"
```

  SPF allows a maximum of 10 DNS lookups. Too many `include:` entries returns `permerror`.
- **Stop using default PHP mail.** Send through an authenticated SMTP or transactional email service with an SMTP plugin, and set the From address to a mailbox on a domain you control (not a free `@gmail.com` address, which cannot pass DMARC from your server).
- **Add the DKIM record your provider gives you** (a TXT or CNAME at `<selector>._domainkey.example.com`) and confirm the provider shows it as verified.
- **Add a DMARC record and start in monitoring mode.**

```text
_dmarc.example.com.  TXT  "v=DMARC1; p=none; rua=mailto:dmarc-reports@example.com"
```

  Move to `p=quarantine` or `p=reject` only after reports show your legitimate senders pass.
- **Align the domains.** DMARC passes only if the SPF-authenticated domain or the DKIM `d=` domain matches the From domain. A provider that signs with its own domain does not align until you set up custom DKIM.
- **Test from WordPress itself, not only from your mail client.**

```bash
wp eval 'var_dump( wp_mail("you@gmail.com", "Test", "Body") );'
```

  If this returns `false`, the problem is in WordPress or SMTP credentials, not DNS.
- **Check form and WooCommerce senders.** Contact-form plugins often set From to the visitor's address. Use your own domain as From and the visitor as Reply-To.

If the headers still show a fail after the records have propagated, stop. Each day of guessing is lost orders and lost enquiries.

## Hand It Over: $99 Fixed, Within 48 Hours

Email problems drag on because the answer is split across the host, the DNS provider, the mail provider and a WordPress plugin, and each one blames another. One developer who reads the headers and fixes all four layers ends that.

What you get for **$99**:

- **A fixed price agreed before work starts.** One email delivery issue, one flat fee, no hourly meter.
- **Delivery within 48 hours** of access, with changes tested before anything touches live DNS or live mail.
- **Fully written, fully async.** You send the domain, a bounce message or the original headers, and when it started. You get questions, progress and proof in writing. There are no calls, meetings or project managers, so your time zone does not matter.
- **Written proof it works:** the root cause in plain language, before and after SPF, DKIM and DMARC results from a real test message, the exact DNS records changed, and a rollback note.
- **Money-back guarantee** if the agreed root cause cannot be resolved.
- **Safe access only:** a separate WordPress admin account and DNS access limited to the records involved. Never send passwords or API keys through the inquiry form.

Behind it: 20+ years in production (since Oct 2006) and 100+ projects in the portfolio. Agencies with several client sites sending mail from the same broken setup can queue them as one ticket each.

**[Get your WordPress email delivery fixed for $99 →](/bug-fix-services)** · [Queue an urgent fix](/checkout/emergency) · [See past projects](/projects)

If your store emails are fine but checkout itself is failing, see [WooCommerce checkout not working](/articles/woocommerce-checkout-not-working-fix). If the site is slow rather than silent, the $199 [Core Web Vitals fix](/articles/core-web-vitals-inp-lcp-remediation) covers that.

## Frequently Asked Questions

### What does "550-5.7.26 This mail is unauthenticated" mean?
Gmail rejected the message because it failed email authentication: SPF and DKIM did not pass for your domain, or it failed the domain's DMARC policy. The rejection is permanent, so Gmail will not retry. Read the bounce and the message headers to see which check failed.

### Why are my WordPress emails going to spam or not arriving?
By default WordPress sends mail from the web server with no DKIM signature, and the server is often missing from your SPF record. Sending through an authenticated SMTP or transactional email service and publishing matching SPF, DKIM and DMARC records fixes most cases.

### Do I need SPF, DKIM and DMARC all together?
Yes, treat them as one setup. SPF lists who may send, DKIM signs the message, and DMARC tells receivers what to do when neither aligns with your From domain. Large inboxes expect all three from domains that send in volume.

### Can I use a Gmail address as the From address in WordPress?
Not reliably. Mail claiming to be from `@gmail.com` but sent by your server fails Gmail's own DMARC policy. Use an address on your own domain and set the visitor's address as Reply-To.

### How much does it cost to fix WordPress emails not sending?
SazM fixes one email delivery issue for a fixed $99, delivered within 48 hours, with a money-back guarantee if the agreed root cause cannot be resolved. Typical agency hourly rates are higher and open-ended, while very low marketplace gig prices rarely include root-cause diagnosis, a test on real inboxes or a guarantee.
