Skip to content
SazM Senior dev · Fixed price
Find a service
Where can I help?

Use arrow keys to browse, Enter to open, and Escape to close.

11 destinations

Client Login Get a fix →

Bug Fixing · 6 min read

WordPress Emails Not Sending (Gmail 550-5.7.26 Unauthenticated): Affordable $99 Fix

Fix WordPress and WooCommerce emails rejected by Gmail with 550-5.7.26: read the headers, repair SPF, DKIM and DMARC alignment, switch to authenticated SMTP, with a $99 fixed-price option.

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:

# 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:

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.
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:
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.
_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.
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 → · Queue an urgent fix · See past projects

If your store emails are fine but checkout itself is failing, see WooCommerce checkout not working. If the site is slow rather than silent, the $199 Core Web Vitals fix 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.

// SazM ENGINEERING DISPATCH · PRODUCTION REMEDIATION

Senior Engineering Without Agency Overhead

// TRACK A · FIXED-PRICE FIXES (48H SLA)

Single Urgent or Speed Fix

Immediate code-level fixes with zero discovery calls. Emergency root-cause patch within 48 hours for $99, or full Core Web Vitals & speed remediation with before/after audit for $199. 100% money back if the agreed root cause cannot be fixed.

Running WordPress or WooCommerce? The WordPress care plan keeps your site updated, hardened, backed up daily, and monitored for $49/mo.

// TRACK B · SENIOR RETAINER & BUILDS

Monthly Plan or Custom Scope

Direct senior-level capacity embedded in your stack. Dedicated monthly engineering ($999/mo, 1 active task at a time, 24–48h PR delivery, pause or cancel anytime), or fixed-scope architectural milestones delivered within a 24h written quote.

✓ 20+ years engineering ✓ 100+ projects in the portfolio ✓ Fixes within 48 hours ✓ 100% money back if not fixed
1 Active Task at a Time
Requests are completed one by one in your priority order. As soon as an active task is shipped, tested, and approved, work starts immediately on your next task within our 24–48h SLA.
48h Emergency SLA
Clock starts as soon as site access details are provided. Delivered with full backup taken first, isolated staging testing, and 100% money back if not fixed.
WordPress Care Plan Scope
Weekly core and plugin updates pre-tested in staging, daily offsite encrypted backups, 24/7 uptime monitoring, and proactive security patching.
Pay Nothing Upfront
Zero upfront payment or credit card required. A 20-Year Senior Engineer diagnoses your issue, reproduces it on isolated staging, and deploys the fix. You only pay once you verify the staging reproduction or production fix.