Bounce and error codes

dmarc=fail (p=REJECT) in Authentication-Results

Last updated 2026-08-14

Every fix for a DMARC failure starts with one line of the raw message. Learn to read it once and most of these problems stop being mysterious.

The line

Authentication-Results: mx.google.com; dkim=pass header.i=@vendor.net header.s=s1 header.b=Ab3dEf01; spf=pass (google.com: domain of bounces@vendor.net designates 203.0.113.24 as permitted sender) smtp.mailfrom=bounces@vendor.net; dmarc=fail (p=REJECT sp=REJECT dis=NONE) header.from=example.com

Two passes and a failure. Nothing here is broken at the vendor, and nothing here helps you. Read it field by field.

What alignment requires

DMARC passes when at least one of these is true, with the default relaxed matching:

Set aspf=s or adkim=s and the subdomain latitude disappears; an exact match is then required. The alignment guide works through the cases with real header examples.

Where to find the header

Fix it

  1. Identify the sender from smtp.mailfrom or header.i. That domain names the vendor.
  2. Complete that vendor's domain authentication so it signs with d=example.com. This is the fix that also survives forwarding. The provider pages have the records for the common ones.
  3. Set a custom return-path if the vendor offers one, which gets SPF aligned as well and gives you two passing paths instead of one.
  4. Verify with the DKIM checker that the selector the vendor asked you to publish resolves, then send a test and read the header again. You want dkim=pass header.i=@example.com.

One header tells you about one message. Aggregate reports tell you about every sender at once, which is the only way to know you have found them all before you tighten a policy. Reading a report by hand is the next page to read, and our weekly digest does it for you if you would rather not.

Hear about the next failing sender first

This rejection named one sender, and the next to break sends no warning ahead of it. On a paid plan, the first failing report from a new source reaches you as an email that day, not in Monday's digest. Pro watches 5 domains for $19 a month.

Get the alerts and the digest

No card · 12+ months of history · The free plan does not expire

Questions

How can SPF pass and DMARC fail on the same message?

SPF authenticates the envelope sender, DMARC checks the visible From header. When mail goes out with a vendor return-path, SPF passes for the vendor's domain and aligns with nothing in your From address, so DMARC fails.

What does dis=none mean next to p=REJECT?

The receiver read your reject policy but chose not to apply it to this message, usually because it is local mail, a trusted forwarder, or ARC-sealed. Do not read it as passing.

Is header.from the same as the address I typed in the client?

Yes, it is the domain part of the visible From address, the one the recipient sees. smtp.mailfrom is the envelope address used for bounces, which recipients never see and which platforms routinely set to their own domain.