How the message looks
550 5.7.509 Access denied, sending domain [example.com] does not pass DMARC verification 550 5.7.509 Access denied, sending domain does not meet the required authentication level Remote Server returned '550 5.7.509 Access denied, sending domain example.com does not pass DMARC verification and has a DMARC policy of reject'

Why “but SPF passes” is not enough

DMARC does not check whether SPF or DKIM passed, but whether one of them passed for the same domain that appears in the visible From:. That is alignment, and it is the most common stumbling block.

From: invoice@yourdomain.com ← this domain counts for DMARC Return-Path: bounce@sendingservice.example ← SPF checks this one → SPF pass, but not aligned

A sending service using its own bounce domain produces exactly this picture: SPF passes, DMARC does not. The fix is either a custom return path on a subdomain of your own domain, or a DKIM signature carrying d=yourdomain.com.

The three causes, in order of frequency

  1. No alignment despite an individual pass. As above — the provider sends under its own domain.
  2. DKIM is missing and SPF breaks on forwarding. With SPF alone, every forwarded message is lost.
  3. A sender was never authenticated at all. Shop, CRM or monitoring sends under your main domain without SPF or DKIM set up for it.

The honest way back

The temptation is to dial the policy back to p=none. That lets the mail through again and postpones the problem — the affected senders stay unauthenticated.

Better: publish rua=, collect aggregate reports for two weeks and read which sources actually send under your domain. Only once every legitimate source passes in alignment does p=reject work without collateral damage.

Find the cause in the actual message

Send or forward the affected email to hello@analyzemy.email. For that exact message the report shows which IP sent it, how SPF, DKIM and DMARC turned out, and where the chain breaks.

Analyze your email now

Last updated: · All error messages