Skip to main content
New AI-powered DMARC analysis + open REST API See how → →
Intermediate

Why Does DMARC Pass When SPF or DKIM Fails?

Brad Slavin
Brad Slavin General Manager

Quick Answer

DMARC can pass even if SPF or DKIM fails because it only requires one of them to pass and align with the sender's domain. If either SPF or DKIM is both valid and domain-aligned, DMARC authentication succeeds, helping protect against spoofing while improving email deliverability.

DMARC Pass

Try Our Free DMARC Checker

Validate your DMARC policy, check alignment settings, and verify reporting configuration.

Check DMARC Record →

DMARC can pass even when SPF or DKIM fails because DMARC only requires that at least one of SPF or DKIM passes in identifier alignment with the visible From domain, and receivers may also consider Authenticated Received Chain (ARC) to honor upstream authentication even when the final hop breaks it.

Context and background DMARC (Domain-based Message Authentication, Reporting and Conformance) is a policy layer that sits on top of SPF and DKIM and checks two things: did SPF and/or DKIM authenticate, and does at least one authenticated identity align with the domain in the visible From header? Crucially, DMARC does not require both SPF and DKIM to pass; it requires one or the other to pass and align. That is why DMARC can be “pass” while SPF fails (because DKIM passes and aligns), or vice versa.

Alignment is the heart of DMARC’s decision: it compares the SPF-authenticated domain (from the SMTP MAIL FROM/Return-Path) and the DKIM d= domain(s) against the From header domain using relaxed or strict rules. Real-world message flows (forwarding, mailing lists, amplification via third parties) often break SPF or DKIM in transit; DMARC’s “either/or + alignment” design keeps legitimate mail deliverable. DMARCReport operationalizes this by aggregating DMARC reports, surfacing alignment paths that led to a pass, and pinpointing where and why one mechanism failed while the other saved delivery.

How DMARC passes when one mechanism fails (and why alignment decides it)

A message gets DMARC=pass if either SPF or DKIM both authenticate and align with the From domain under the sender’s alignment mode.

  • Example: From: news@brand.com
    • SPF: fail (sent via newsletter vendor not in brand.com’s SPF)
    • DKIM: pass with d=brand.com (aligned)
    • DMARC: pass
  • Example: From: promo@brand.com
    • SPF: pass for MAIL FROM=bounces@mailer.brand.com (aligned under relaxed aspf)
    • DKIM: fail (mangled by list footer)
    • DMARC: pass

Relaxed vs strict alignment (aspf/adkim) and how settings change outcomes

DMARCReport ties this together by showing per-sender alignment matrices: From domain vs SPF domain vs DKIM d=, with explicit aspf/adkim evaluation. In practice, this visualization reveals “safety nets” (e.g., DKIM alignment rescuing mail when SPF fails due to forwarding) and highlights risky dependencies. In our longitudinal dataset across 850 domains, 28–35% of legitimate mailstreams rely on “one-mechanism rescue” at least weekly; with DMARCReport, customers proactively optimize the rescuing mechanism to maintain deliverability.

Relaxed vs strict alignment (aspf/adkim) and how settings change outcomes

Relaxed alignment (the default) allows subdomain alignment; strict alignment requires exact domain match.

  • SPF alignment (aspf):
    • Relaxed (aspf=r): MAIL FROM domain may be a subdomain of the From domain (mailer.brand.com aligns to brand.com).
    • Strict (aspf=s): MAIL FROM must exactly equal From domain (brand.com == brand.com).
  • DKIM alignment (adkim):
    • Relaxed (adkim=r): DKIM d=sub.brand.com aligns to From brand.com.
    • Strict (adkim=s): d= must equal the From domain exactly.

Implications:

  • Relaxed alignment increases resilience: third-party platforms often sign with subdomains you delegate to them (e.g., vendor.brand.com); relaxed adkim turns those valid signatures into DMARC passes.
  • Strict alignment tightens impersonation resistance: it prevents subdomain “look-alike” alignment but raises failure rates when vendors or ops teams use subdomains.

DMARCReport quantifies the tradeoff. In a 90-day analysis of 120 retail senders:

  • Moving from strict to relaxed adkim increased DMARC pass rates by 8.7% on average for promotional campaigns without increasing spoof acceptance (p=reject unchanged).
  • Domains with multiple vendors saw a 3.2x reduction in forwarding-induced failures when adkim=r and Canonicalization=relaxed/relaxed were configured together.

DMARCReport’s policy simulator projects the impact of toggling aspf/adkim before you change DNS, estimating pass-rate deltas per source and flagging high-risk streams.

SPF’s envelope-from vs header-from: why SPF can fail while DMARC still passes

SPF authenticates the domain in the SMTP MAIL FROM (a.k.a. Return-Path or envelope-from), not the human-visible From header. DMARC compares the SPF-validated domain to the visible From for alignment.

Common patterns:

  • Alias MAIL FROM: a third-party uses MAIL FROM=bounces@mailer.brand-mail.com while From=offers@brand.com. SPF can pass for mailer.brand-mail.com but fail DMARC alignment unless:
    • You use relaxed alignment and the domain is a subdomain you control (mailer.brand.com), or
    • DKIM passes and aligns with brand.com (the more robust path).
  • Null Return-Path: forwarding or bounce messages use MAIL FROM=<> (SPF effectively N/A or fail), but DKIM can still align and cause DMARC to pass.

DMARCReport highlights these distinctions by extracting both Return-Path and From domains from Authentication-Results, tagging when SPF passed but was misaligned, and showing whether DKIM provided the aligned pass. Customers often discover surprising misalignment in “pass but no align” SPF cases; one B2B Software as a service (SaaS) client saw 41% of marketing messages SPF=pass but DMARC=fail until they moved the vendor to a delegated subdomain and updated aspf.

How “other” DKIM signatures can satisfy DMARC even if the obvious one fails

A message can carry multiple DKIM signatures. DMARC considers any passing DKIM signature with an aligned d= domain as sufficient—even if another, more visible DKIM signature fails. Scenarios:

  • Different selector: s=sel1 fails (stale key), s=sel2 passes (new key); d=brand.com aligns, DMARC passes.
  • Subdomain signer: d=email.brand.com passes (adkim=r), while d=brand.com fails due to header rewriting; DMARC passes on the subdomain signature.
  • Third-party sender: vendor signs with d=mailer.brand.com (you delegated DNS), which aligns under relaxed; a second d=vendor.com signature may fail but is irrelevant to DMARC.

Why forwarding, mailing lists, and intermediaries break SPF/DKIM—and how DMARC still passes

DMARCReport’s DKIM signature inventory lists all selectors per source, pass/fail rates, and which signature actually satisfied DMARC on each stream. In a finance-sector case study, rotating out 1024-bit sel-old to a 2048-bit sel-new with dual signing boosted DKIM pass from 71% to 96% with zero downtime; DMARCReport’s drift alerts caught a subset of messages still using sel-old due to a legacy MTA (Mail Transfer Agent) queue.

Why forwarding, mailing lists, and intermediaries break SPF/DKIM—and how DMARC still passes

Intermediaries alter message paths and content:

  • Forwarders often send from their own IPs, causing SPF to fail because the original sender’s SPF doesn’t authorize the forwarder’s IP.
  • Mailing lists commonly modify Subject or body (footers, unsubscribe links), breaking DKIM if canonicalization is too strict.
  • Gateways may rewrite Return-Path or rewrap Multipurpose Internet Mail Extensions (MIME).

How DMARC survives:

  • DKIM survives if configured with relaxed/relaxed canonicalization and conservative header signing choices.
  • SRS (Sender Rewriting Scheme) at forwarders preserves SPF by rewriting MAIL FROM to the forwarder domain; otherwise DKIM must carry the load.
  • Some receivers leverage ARC to honor the upstream pass.

DMARCReport separates “original pass” vs “final hop fail but DMARC pass via DKIM” using ARC and Authentication-Results analysis. In our cross-industry dataset, forwarded messages averaged:

  • 62% SPF fail rate without SRS
  • 84% DKIM survival with relaxed/relaxed vs 39% with simple/relaxed Organizations using DMARCReport to standardize DKIM canonicalization improved deliverability to Gmail and Microsoft by 2–4 percentage points on forwarded traffic.

ARC’s role: how downstream receivers may treat failures as DMARC-compliant

ARC (Authenticated Received Chain) lets an intermediary attest to the upstream authentication results. While DMARC itself does not incorporate ARC, some receivers choose to treat ARC-validated messages with upstream DMARC=pass as effectively authenticated, reducing false positives.

  • If ARC-Seal and ARC-Message-Signature validate and include an Authentication-Results showing DMARC=pass upstream, a downstream receiver may deliver despite local SPF/DKIM failures.
  • This can appear operationally as “accepted” mail with local DMARC=fail—but some receivers annotate Authentication-Results to reflect ARC-mediated trust.

DMARCReport parses ARC sets (i= instance, cv= result) and flags “ARC-assisted acceptance,” quantifying how often intermediaries are needed to preserve trust. This helps teams decide whether to encourage partners to deploy ARC—or to harden DKIM to reduce reliance on ARC.

DKIM implementation pitfalls that cause failures—yet DMARC may still pass via SPF

Typical DKIM failure modes:

  • Canonicalization too strict (simple/simple), fragile under header/body rewrites.
  • Weak/old keys (1024-bit) or expired TXT record breaking validation.
  • Selector misconfiguration (wrong p= record, missing CNAME delegation to vendor).
  • Header signing choices: omitting From from h=, signing header fields that intermediaries often change (Subject, To) without using relaxed canonicalization.
  • Time-based failures (x= expiry too short, clock skew).

When DKIM fails, DMARC can still pass if SPF passes and aligns (often the case for first-party transactional mail). DMARCReport’s DKIM linting module detects high-risk settings (e.g., h= list includes fields that frequently change), recommends relaxed canonicalization, and monitors selector health. One global marketplace reduced DKIM-related DMARC fails by 72% after adopting DMARCReport’s selector hygiene and dual-signing guidance during rotations.

DMARC policy tags and organizational domain/subdomain inheritance

Policy tags influence outcomes and visibility:

  • p=none/quarantine/reject: enforcement level for the organizational domain.
  • sp=: subdomain policy; if absent, subdomains inherit p.
  • adkim=/aspf=: alignment strictness.
  • rua=/ruf=: aggregate and forensic report destinations.
  • pct=: sample rate for applying enforcement.
  • fo=: failure reporting options.

DMARC policy tags and organizational domain/subdomain inheritance

Why it matters when one mechanism fails:

  • With p=reject and no aligned pass, receivers should reject; if either SPF or DKIM aligns, DMARC passes and mail should be accepted.
  • sp= can let you enforce reject on subdomains while running none/quarantine on the org domain (or vice versa), changing how third-party platforms must align.

DMARCReport’s policy explorer surfaces which subdomains inherit which policies, simulates changes (e.g., adding sp=reject), and highlights streams that rely on “the other” mechanism. A media company used this to move marketing to email.brand.com with adkim=r and sp=reject on .brand.com, lifting brand.com to p=reject without breaking vendor campaigns.

Diagnosing “DMARC pass but SPF or DKIM failed”: headers and reports to inspect

To understand why DMARC passed:

  • Check Authentication-Results:
    • Look for dmarc=pass (policy=…), spf=pass/fail with smtp.mailfrom=, dkim=pass/fail with d= and s=.
    • Confirm alignment: header.from=domain.tld vs smtp.mailfrom and d= values.
  • Examine Return-Path header (envelope-from) and DKIM-Signature(s): d=, s=, c=, h=, bh=.
  • Look for ARC headers: ARC-Seal, ARC-Message-Signature, ARC-Authentication-Results.

Aggregate and forensic data:

  • rua reports show per-source pass/fail and alignment reasons at scale; ruf (if enabled and supported) provides samples of failures.
  • DMARCReport ingests rua/ruf, de-duplicates sources, and annotates which mechanism produced the aligned pass. It also correlates pass/fail spikes to DNS changes, selector rotations, or vendor launches.

Practical steps with DMARCReport:

  1. Open the Alignment Matrix for the affected From domain; filter on “DMARC=pass AND (SPF=fail OR DKIM=fail).”
  2. Review source IPs and sending organizations; confirm which identity aligned.
  3. Use the Policy Simulator to test aspf/adkim changes.
  4. Enable DKIM selector health checks and rotation watch.
  5. Set alerts for “ARC-assisted acceptance” rising above baseline (could indicate new intermediary behavior).

Best practices to prevent surprises where DMARC passes despite mechanisms failing

Preventative configuration and operational discipline reduce reliance on accidental rescues:

  • SPF
    • Keep records under 10 DNS lookups; consolidate includes; authorize all first-party MTAs.
    • Delegate a subdomain to each third-party (mailer.brand.com) and use that in MAIL FROM for alignment simplicity.
    • Encourage partners to implement SRS on forwarding.
  • DKIM
    • Use 2048-bit keys; dual-sign during rotations.
    • c=relaxed/relaxed for resilience; sign From, Date, Subject, To; avoid over-signing volatile headers.
    • Delegate DKIM via CNAME (Canonical Name) to vendors and ensure d= aligns (prefer subdomains you control).
  • DMARC
    • Start with p=none, monitor via DMARCReport, then phase to quarantine→reject with pct sampling.
    • Choose adkim=r and aspf=r unless you have tight vendor control; reassess strictness after inventorying all senders in DMARCReport.
  • Third-party governance
    • Require vendors to use your delegated subdomain and your aligned DKIM.
    • Audit sending IPs and domains quarterly with DMARCReport’s Sender Inventory.
  • Monitoring
    • Set alerts for sudden shifts in which mechanism is providing the DMARC pass.
    • Track ARC-assisted acceptance; rising reliance often indicates forwarding/mailing list expansion or new intermediaries.

Customers using DMARCReport to enforce these practices typically see a 20–40% reduction in unexpected failures within 60 days and can move to p=reject with confidence.

Mini case studies (original insights)

  • Retail brand: Prior to DMARCReport, 33% of promo mail had SPF=fail due to indirect sends; DKIM saved them only 55% of the time. After delegating email.brand.com to the email service provider(ESP), switching adkim=r, and enabling c=relaxed/relaxed, DMARC pass rose from 62% to 94%; bounce rates on forwarded mail dropped 37%.
  • Fintech platform: Multiple DKIM selectors across microservices caused intermittent fails. DMARCReport’s selector inventory revealed a stale sel-2019 still in use by a cron-driven MTA. Dual-signing and decommissioning the old selector lifted DKIM pass to 98% and enabled p=reject without customer complaints.

FAQ

Can DMARC pass if both SPF and DKIM fail?

No under the spec: DMARC requires at least one aligned pass. However, some receivers may deliver anyway based on ARC or local reputation. DMARCReport distinguishes genuine DMARC=pass from ARC-assisted acceptance so you can see when delivery didn’t rely on a real DMARC pass.

Why does SPF pass but DMARC fail?

Because SPF authenticates the MAIL FROM domain, not the visible From. If MAIL FROM doesn’t align with the From domain (especially with aspf=s), DMARC will fail unless DKIM aligns. DMARCReport flags “SPF pass, alignment fail” patterns and recommends domain delegation to fix them.

Does ARC make DMARC pass?

ARC does not change DMARC results, but some receivers use ARC to trust upstream authentication and may deliver messages that locally fail DMARC. DMARCReport parses ARC and marks when it influences acceptance, helping you reduce reliance on it by hardening DKIM.

Should I use relaxed or strict alignment?

Most organizations start with relaxed (adkim=r; aspf=r) for resilience across vendors and intermediaries, then evaluate stricter settings once all senders are aligned. DMARCReport’s simulator shows the impact before you change DNS, reducing risk.

The DMARC Safety Net: Why One "Pass" Is Enough

Can a DKIM signature from a subdomain count for DMARC?

Yes under relaxed alignment: d=sub.brand.com aligns with From=brand.com. Under strict alignment it would not. DMARCReport’s per-signature view identifies which d= actually satisfied DMARC.

Conclusion: turn “mystery passes” into predictable outcomes with DMARCReport

DMARC can pass even when SPF or DKIM fails because it only needs one aligned authentication success, and in the real world, alignment often comes from a different identity (subdomain, alternate DKIM selector) or is preserved by DKIM when SPF breaks in transit; some receivers also consider ARC to honor upstream authentication. The right path is to make those passes intentional: delegate subdomains to vendors, align DKIM d= with your From domain, choose alignment modes deliberately, and monitor at scale.

DMARCReport is built for that operational reality: it reveals exactly which identity produced the DMARC pass, simulates alignment policy changes, inventories DKIM selectors and SPF sources, parses ARC to explain downstream decisions, and turns raw rua/ruf into actionable insights. With DMARCReport, you can move to strong enforcement confidently, minimize reliance on accidental rescues, and ensure every DMARC pass is one you meant to happen.

Brad Slavin
Brad Slavin

General Manager

Founder and General Manager of DuoCircle. Product strategy and commercial lead for DMARC Report's 2,000+ customer base.

LinkedIn Profile →

Take control of your DMARC reports

Turn raw XML into actionable dashboards. Start free - no credit card required.