On this page
Short answer
DMARC passes only when SPF or DKIM passes for a domain that matches the From address. So SPF and DKIM can both pass and DMARC still fail: the sending tool signs DKIM with its own domain and uses its own bounce domain. Sign DKIM with your domain, or put the Return-Path on your domain, and DMARC passes. What happens after a fail depends on your policy: none, quarantine or reject.
What DMARC actually checks
RFC 7489 adds one condition on top of SPF and DKIM: alignment. A message passes DMARC when at least one of these is true:
SPF passes and aligns. The envelope sender (Return-Path,
smtp.mailfrom) domain passed SPF and belongs to the same organizational domain as the From address.DKIM passes and aligns. A valid DKIM signature has a
d=domain in the same organizational domain as the From address.
Relaxed alignment, the default, accepts subdomains: d=mail.yourdomain.com aligns with From: you@yourdomain.com. Strict alignment (adkim=s, aspf=s) needs an exact match.
That is why "SPF pass, DKIM pass, DMARC fail" is common. Both checks passed, for somebody else's domain.
Causes we see in cold email setups
Symptom in the headers | Cause | Fix |
|---|---|---|
| The tool signs with its own domain | Turn on custom DKIM in the tool and publish its key on your domain |
| The Return-Path is the tool's bounce domain | Set a custom Return-Path on your domain, or rely on aligned DKIM |
| Forwarding changes the sending IP | Expected for forwards; aligned DKIM survives them |
| Something changed the email after signing | See why DKIM fails |
| Two SPF records or more than 10 lookups | See SPF PermError |
| DKIM key not published yet | Wait for DNS, then check the selector |
The email header analyzer shows each check with its domain and whether it aligns with From.
What a fail does
The policy in your DMARC record decides:
p=none: the receiver delivers by its usual rules and sends you reports. A fail still counts against you: Gmail requires bulk senders to pass DMARC alignment and rate-limits or blocks unaligned mail (codes 4.7.32 and 5.7.32).p=quarantine: failing mail goes to spam.p=reject: failing mail bounces. Gmail answers 550 5.7.26 "Unauthenticated email ... is not accepted due to domain's DMARC policy"; Microsoft answers 5.7.509 "does not pass DMARC verification and has a DMARC policy of reject."
A missing DMARC record is its own bounce at Gmail for bulk senders: 421 or 550 5.7.40, "the sending domain doesn't have a DMARC record". The DMARC record generator writes one.
Free guide19 min read
Send 100,000 cold emails a month
Domains and mailboxes you need, DNS, warmup, lists, copy and follow-ups, with a launch checklist, sent to your inbox.
How to fix it
Send a test to a Gmail or Outlook address you control and read the Authentication-Results header.
Find the domain that passed SPF and the
d=that passed DKIM. If neither is yours, that is the failure.Make DKIM align. One aligned DKIM pass is enough for DMARC and it survives forwarding, so this is the fix to do first.
Check the records with the DMARC checker and the SPF, DKIM and DMARC checker.
Read the aggregate reports (the
rua=address) for a week: they list every source sending as your domain and whether it aligned.
What we recommend at Outreach2day
The domains we set up get a DMARC record with p=quarantine and reports, and every mailbox signs DKIM with the customer's own domain, so DMARC aligns from the first email. If you set up a domain yourself, start with p=none and reports, which meets Gmail's and Yahoo's bulk sender rules, and move to quarantine once the reports show every sender aligned.
Sources
- RFC 7489: DMARC, identifier alignment and policy: rfc-editor.org/rfc/rfc7489
- Google Workspace Admin Help: Gmail SMTP errors and codes: support.google.com/a/answer/3726730
- Microsoft Learn: Non-delivery reports and SMTP errors in Exchange Online: learn.microsoft.com/en-us/exchange/mail-flow-best-practices/non-delivery-reports-in-exchange-online/non-delivery-reports-in-exchange-online
- Google: Email sender guidelines: support.google.com/a/answer/81126
Related answers
- Why Does DKIM Fail, and How Do I Fix It?Bounces and errors
- What Causes SPF PermError, and How Do I Fix It?Bounces and errors
- What Does 550 5.7.26 Mean, and How Do I Fix It?Bounces and errors
- Do I Need SPF, DKIM and DMARC for Cold Email?Volume and setup
In depth on the blog
- SPF, DKIM and DMARC Test: Check Your Records15 min read
- Google Workspace SPF, DKIM and DMARC Setup12 min read

