Gmail 550-5.7.26 unauthenticated error: causes and fixes

Gmail answers 550-5.7.26 when a message arrives without authentication it can tie to the domain in your From address: either neither SPF nor DKIM passed, or they passed for someone else's domain and your DMARC policy told Gmail to reject the mail. The fix is almost never "add another SPF include"; it is making DKIM sign with your own domain, and the envelope sender (Return-Path) sit on your domain too, so that at least one of them aligns with From.
Authentication-Results header: compare header.from with smtp.mailfrom (SPF) and header.d or header.i (DKIM). If neither matches your From domain, DMARC fails even when SPF and DKIM say "pass". Set up DKIM with your own domain at your relay, add a custom MAIL FROM domain if the relay supports one, keep one SPF record under 10 DNS lookups, and publish a DMARC record starting at p=none. Then confirm dmarc=pass in a test inbox and watch the compliance status in Postmaster Tools.What does Gmail's 550-5.7.26 error mean?
It is a permanent rejection (the leading 5) of mail that Gmail considers unauthenticated. Google's SMTP error reference lists three wordings under 5.7.26, and the exact sentence in your bounce tells you which of the three checks failed.
The 550- with a hyphen is not a different code. SMTP servers send multi-line replies as 550- on every line but the last, which uses 550 with a space, so the same error appears as "550-5.7.26" and "550 5.7.26" depending on where you copy it from.
| Code | Bounce text (shortened) | What failed | Where to look first |
|---|---|---|---|
| 550 5.7.26 | "Unauthenticated email from example.com is not accepted due to domain's DMARC policy" | DMARC: neither SPF nor DKIM passed and aligned with the From domain, and the domain publishes p=reject (or quarantine) | Alignment, see the next two sections |
| 550 5.7.26 | "The (E)MAIL FROM domain … has an SPF record with a hard fail policy (-all) but it fails to pass SPF checks" | SPF of the envelope sender failed against a -all record | The sending IP is missing from SPF of the Return-Path domain |
| 550 5.7.26 | "This email has been blocked because the sender is unauthenticated" | Neither SPF nor DKIM passed at all | DKIM signing is off or broken; SPF missing |
| 421/451 4.7.26 | "…rate limited because it is unauthenticated" / "…temporary DNS failures prevent authentication" | The same problems, deferred instead of rejected, or a DNS timeout | Your DNS hosting, then the rows above |
| 550 5.7.27 / 5.7.30 | "didn't pass SPF authentication" / "didn't pass DKIM authentication" | Bulk-sender rules: SPF or DKIM specifically | The record named in the message |
| 550 5.7.25 | "…sending IP address doesn't have a PTR record" | Reverse DNS of the sending IP | The PTR at your server host |
As of November 2026, wording from Google's SMTP error reference.
Why you see it more often now: Gmail's email sender guidelines have required every sender to use SPF or DKIM since February 1, 2024, and bulk senders (more than 5,000 messages a day to Gmail) to use SPF, DKIM and DMARC with an aligned From domain. Google's sender guidelines FAQ says that starting November 2025 Gmail is "ramping up its enforcement on non-compliant traffic", with temporary and permanent rejections. Mail that used to land in spam now bounces.
For the background on what each record does, see our SPF, DKIM and DMARC explainer. This article is about the specific bounce and how to get rid of it.
How do you read Authentication-Results in "Show original"?
Send a message to a Gmail address you control, open it, choose More → Show original, and find the Authentication-Results: mx.google.com header. It records three verdicts and, more importantly, the three domains each verdict was about.
If the message bounced and never arrived, the bounce itself often quotes the same results; otherwise send the same mail to a Gmail inbox from a domain without a strict DMARC policy, or temporarily relax yours to p=none so the message is delivered and you can inspect it.
Authentication-Results: mx.google.com;
dkim=pass header.i=@relay.example.net header.s=s1 header.b=Ab12Cd34;
spf=pass (google.com: domain of bounces+8812@mail.relay.example.net designates 203.0.113.25 as permitted sender) smtp.mailfrom="bounces+8812@mail.relay.example.net";
dmarc=fail (p=REJECT sp=REJECT dis=REJECT) header.from=example.com
This is the classic 550-5.7.26 case: both SPF and DKIM say pass, yet DMARC fails. Read the domains, not the verdicts:
The domain in the From address the reader sees. DMARC protects this domain, and its _dmarc record sets the policy. Here: example.com.
The envelope sender (MAIL FROM, later written into the Return-Path header). SPF is checked for this domain. Here: mail.relay.example.net, the relay's bounce domain.
The domain in the DKIM signature's d= tag (Gmail prints header.i, the signing identity, which ends with that domain). Here: relay.example.net, the relay's own domain.
DMARC passes when at least one of SPF and DKIM passes and its domain aligns with header.from. Neither does here, so dmarc=fail, and because example.com publishes p=reject the result is dis=REJECT: the bounce.
💡 Tip: A message can carry several DKIM signatures. One aligned signature is enough, so look for adkim=passwhoseheader.iends with your own domain before changing anything else.
Why does mail sent through a relay fail DMARC?
Because out of the box most relays sign with their own domain and use their own bounce domain, so both checks pass for the relay, not for you. Alignment only happens once you give the relay your domain for at least one of the two.
The current DMARC specification, RFC 9989 (May 2026, replacing RFC 7489), defines two modes. Relaxed alignment, the default, accepts any domain with the same organizational domain, so bounce.example.com aligns with example.com. Strict alignment (aspf=s or adkim=s) needs an exact match. RFC 9989 finds the organizational domain with a DNS tree walk instead of the Public Suffix List; for ordinary domains the result is the same.
| Setup | From (header.from) | MAIL FROM (SPF domain) | DKIM d= | DMARC (relaxed) |
|---|---|---|---|---|
| Relay defaults | example.com | mail.relay.example.net | relay.example.net | ✗ fail |
| DKIM with your domain only | example.com | mail.relay.example.net | example.com | ✓ pass (DKIM) |
| Custom MAIL FROM only | example.com | bounce.example.com | relay.example.net | ✓ pass (SPF) |
| Both | example.com | bounce.example.com | example.com | ✓ pass (both) |
Both, with aspf=s | example.com | bounce.example.com | example.com | ~ pass via DKIM only |
As of November 2026, alignment rules from RFC 9989.
Aim for the last-but-one row. DKIM alignment survives forwarding better than SPF (the next sections explain why), and SPF alignment gives you a second path when a DKIM signature gets broken by a gateway that rewrites the body.
Other typical causes of the same failure:
- A new sending service nobody added. A CRM, a helpdesk or an invoicing tool sends as
@example.comwith its own defaults. Every service that uses your From domain needs the same treatment. - A From domain the sender doesn't own. Sending as
@gmail.comor@yahoo.comthrough your own server can never align; both publish DMARC policies that reject or quarantine such mail. - Strict alignment you didn't need.
adkim=s; aspf=sfails when a relay signs withmail.example.comwhile From isexample.com. - A broken DKIM key. A TXT record split wrongly across strings, a key the panel truncated, or a selector the relay rotated:
dkim=failordkim=neutral (body hash did not verify).
How do you fix 550-5.7.26 step by step?
Make DKIM sign with your domain, give the envelope sender your domain where the relay allows it, keep SPF valid for the envelope domain, and publish DMARC. Work through the steps in this order; each one is testable on its own.
- List everything that sends as your domain
Your marketing platform's relay, your mailbox provider (Google Workspace, Microsoft 365), transactional mail from your app, CRM, helpdesk, billing. DMARC aggregate reports (step 5) will show any you forgot.
- Turn on DKIM with your own domain at every relay
Each relay gives you either CNAME records pointing to keys it rotates, or a TXT record with a public key. Publish exactly what it shows, then verify in the relay's console. Google recommends 2048-bit keys where the provider supports them (sender guidelines).
- Set a custom MAIL FROM (Return-Path) domain
Most relays let you use a subdomain such as
bounce.example.comas the envelope sender. They ask for an MX record (so bounces still reach them) and an SPF TXT record on that subdomain. - Fix SPF for the envelope domain
One SPF record per domain, ending in
~allor-all, with no more than 10 DNS-querying mechanisms (include,a,mx,ptr,exists,redirect) under RFC 7208, section 4.6.4. Two SPF records on one name are apermerror, which counts as a fail. - Publish DMARC, starting with p=none
A TXT record on
_dmarc.example.comwith a reporting address. Move toquarantineandrejectonce reports show every legitimate source aligned. - Retest
Send to a Gmail test inbox and confirm
dmarc=passbefore resending anything to real subscribers.
Example records for a domain that sends through Google Workspace for staff mail and Amazon SES for newsletters (replace the tokens, region and report address with yours):
; SPF for the From domain (staff mail via Google Workspace)
example.com. TXT "v=spf1 include:_spf.google.com ~all"
; Custom MAIL FROM subdomain for Amazon SES
bounce.example.com. MX 10 feedback-smtp.eu-west-1.amazonses.com.
bounce.example.com. TXT "v=spf1 include:amazonses.com ~all"
; Easy DKIM: three CNAMEs from the SES console (one shown)
abc123token._domainkey.example.com. CNAME abc123token.dkim.amazonses.com.
; DMARC, monitoring first
_dmarc.example.com. TXT "v=DMARC1; p=none; rua=mailto:dmarc-reports@example.com"
The SES-specific details (sandbox, regions, SMTP credentials) are in our Amazon SES SMTP setup guide. Other relays name the same features differently: "custom return path", "bounce domain", "branded sending domain" or "domain authentication".
⚠️ Warning: Do not jump top=rejectto "be compliant". Gmail's bulk-sender rule acceptsp=none; a strict policy published before every source is aligned is exactly what produces 550-5.7.26 for your own legitimate mail.
The full sequence for tightening DMARC, warming up and monitoring is in the email deliverability guide for self-hosted senders.
Why do forwarded messages and mailing lists bounce?
Forwarding sends your message from a new IP that is not in your SPF record, so SPF fails; mailing lists often change the subject or add a footer, which breaks your DKIM signature. With both gone, a strict DMARC policy rejects the forwarded copy.
Google's best practices for forwarding email to Gmail say that forwarded messages often fail SPF and that Gmail re-checks authentication itself. That is why an aligned DKIM signature matters more than SPF: an unmodified message keeps a valid signature across forwards.
ARC (Authenticated Received Chain, RFC 8617, an Experimental RFC) lets each intermediary record the authentication results it saw and seal them with its own signature. A receiver that trusts that intermediary can use the sealed results when the original checks no longer pass. ARC is added by forwarders and list servers, not by you as the original sender, and receivers decide on their own whether to trust a given sealer.
- If your own mail bounces after a forward: make sure DKIM aligns and that you don't modify messages after signing (some link-tracking or footer gateways do).
- If you run the forwarder or list: follow Google's advice to rewrite the envelope sender to your forwarding domain, keep SPF and DKIM for that domain, and avoid edits that break DKIM. List software commonly rewrites From to the list's own address for senders with strict DMARC policies.
- If it is a subscriber's private auto-forward: you cannot fix their setup; one bounce from such an address is not a sign that your authentication is broken.
How do you test that the fix worked?
Check DNS from outside, send one message to a Gmail test inbox, read Authentication-Results, and then follow Postmaster Tools for at least a week.
# 1. Records as the world sees them (one SPF record only)
dig +short TXT example.com | grep spf1
dig +short TXT bounce.example.com
dig +short TXT _dmarc.example.com
dig +short CNAME abc123token._domainkey.example.com
# 2. A test through the same relay and port your platform uses (swaks)
swaks --to you@gmail.com --from newsletter@example.com \
--server email-smtp.eu-west-1.amazonaws.com --port 587 --tls \
--auth LOGIN --auth-user "$SMTP_USER" --auth-password "$SMTP_PASS" \
--header "Subject: DMARC alignment test"
A passing result looks like this, with your domain in all three places:
dkim=pass header.i=@example.com header.s=abc123token
spf=pass (google.com: domain of 0102018f-test@bounce.example.com designates 203.0.113.40 as permitted sender) smtp.mailfrom=bounce.example.com
dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=example.com
📋 Checklist
-
dmarc=passin a real Gmail inbox, sent by the production relay, not a test SMTP server -
header.iorsmtp.mailfromends with your From domain - Exactly one
v=spf1record per name, 10 lookups or fewer - DMARC
ruaaddress receives aggregate reports - Every other service sending as your domain repeats the same test
Google's Postmaster Tools compliance status dashboard shows whether your domain meets the sender guidelines (SPF, DKIM, and for bulk senders DMARC and one-click unsubscribe). Google notes the data uses a rolling average over several days and suggests checking again after 7 days, so don't expect it to turn green the hour you fix DNS. One-click unsubscribe is a separate requirement; see our RFC 8058 guide.
What if you never sent the message that bounced?
Then someone else put your domain in the From address, and Gmail did exactly what your DMARC policy asked. A bounce for a message you never sent is "backscatter": the forger's server delivered the rejection to the Return-Path it forged, which can be yours.
Check the bounce's quoted headers. A sending IP that belongs to none of your providers, a Message-ID format your systems don't use, or a subject you never wrote all point to spoofing. Your DMARC aggregate reports show the same thing in bulk: sources with your header.from that fail both SPF and DKIM.
- Don't loosen DMARC to make these bounces stop;
p=rejectis what protects your recipients from the forged mail. - Filter or discard bounces to addresses you never use as a Return-Path.
- If the bounces name a real sender of yours that you had forgotten, that is step 1 of the fix above, not spoofing.
Persistent bounces from legitimate mail are a different topic: classifying hard and soft bounces and suppressing addresses is covered in our bounce management guide.
Fixing 550-5.7.26 when you send from NetSendo
NetSendo sends through the mailbox you connect (an SMTP relay such as Amazon SES or Mailgun, the Gmail API, SendGrid, or NMI, the NetSendo Mail Infrastructure), so authentication is set up at that provider and in your DNS. NetSendo publishes no SPF include of its own.
- Who signs DKIM: for SMTP, SendGrid and Gmail mailboxes the provider signs, not NetSendo; enable DKIM with your domain there. NMI generates 2048-bit DKIM keys and shows the DNS records to copy.
- Return-Path: since NetSendo 2.2.0 the sending mailbox's bounce address is set as the envelope sender on every send through SMTP and Gmail mailboxes, not only on automation sends. With a bounce mailbox on your own domain, SPF is checked for that domain, so its SPF record must allow the relay. SendGrid's API sets its own envelope sender, so use SendGrid's domain authentication instead. Some relays replace the envelope sender with their own bounce domain; check their custom MAIL FROM setting.
- Checks inside NetSendo: Deliverability Shield, part of the GOLD licence, re-checks SPF, DKIM and DMARC of verified domains. Since 2.8.0 you can enter the DKIM selector of relays such as Amazon SES that use per-domain tokens, and the DMARC generator starts at
p=nonewith relaxed alignment. The DNS records themselves work on any licence, including the free SILVER licence.
Mailboxes, sending options and NMI are described in the configuration docs; installing NetSendo takes a few commands from the quick start.
🎯 Expert tips
An aligned DKIM signature passes DMARC on its own and survives plain forwarding. Custom MAIL FROM is the second line of defence.
Using news.example.com for newsletters and example.com for staff mail keeps SPF records short and lets you read each stream's DMARC reports separately.
Strict adkim=s; aspf=s rarely adds protection for a small sender and often breaks mail from subdomains or relays.
Wait until every source you recognise shows aligned passes for a couple of weeks, then move one step: none → quarantine → reject.
Frequently asked questions
What does 550-5.7.26 mean in Gmail?
It is a permanent rejection of mail Gmail considers unauthenticated: SPF and DKIM both failed, the envelope domain failed a -all SPF record, or neither SPF nor DKIM passed with a domain aligned to the From address while the domain publishes a DMARC reject or quarantine policy.
Why does DMARC fail when SPF and DKIM both pass?
DMARC also needs alignment: the domain that passed SPF (smtp.mailfrom) or DKIM (d=) must match the From domain. A relay that signs and bounces with its own domain passes both checks for itself, not for you.
Do I need p=reject to send to Gmail?
No. Gmail's bulk-sender rules require a DMARC record, and the policy can be p=none. Tighten it to quarantine and reject only after your DMARC reports show every legitimate source aligned.
How do I see the Authentication-Results header in Gmail?
Open the message, click the three-dot More menu next to Reply and choose Show original. The Authentication-Results line from mx.google.com lists the spf, dkim and dmarc results with the domains they refer to.
Can forwarding cause 550-5.7.26?
Yes. Forwarded mail usually fails SPF because it comes from a new IP, and list footers or subject tags break DKIM. An aligned, unmodified DKIM signature is what keeps forwarded mail passing DMARC.
How long until Postmaster Tools shows the fix?
Google says the compliance dashboard uses a rolling average over several days and suggests checking again after 7 days, so it will not change the hour you fix DNS.
Sources
- Google Workspace: Gmail SMTP errors and codes
- Google: Email sender guidelines
- Google: Email sender guidelines FAQ
- Google: Postmaster Tools dashboards
- Gmail Help: Best practices for forwarding email to Gmail
- RFC 9989: Domain-Based Message Authentication, Reporting, and Conformance (DMARC)
- RFC 7208: Sender Policy Framework (SPF)
- RFC 8617: Authenticated Received Chain (ARC)
Send from your own server, with your own domain
NetSendo runs on your infrastructure and sends through the provider you choose, so the domains in your headers are yours to align.



