SPF/DMARC/DKIM Checker
ARC preserves authentication context, so compare it with the domain's published SPF, DKIM, and DMARC records.
Email SecurityMost DMARC damage is self-inflicted. RFC 9989 gives you a monitoring mode, but no percentage ramp: observe first, fix every legitimate sender, evaluate indirect mail, and only then choose the enforcement policy that fits the domain.
SPF authorizes sending hosts for a domain; DKIM binds a signature to a domain. Both can pass while a message still shows your domain to the user fraudulently, because neither checks the visible From header. DMARC does exactly that: it requires an aligned pass — SPF or DKIM succeeding for the same domain the user sees — and lets you tell receivers what to do when alignment fails: nothing (p=none), quarantine, or reject.
That policy is a promise about all mail claiming your name, including every newsletter tool, CRM, ticket system, and invoice service some department connected years ago. A DMARC rollout is therefore mostly an inventory exercise wearing a DNS record as a disguise. The technical part takes minutes; knowing who legitimately sends as you takes the weeks.
Get the groundwork inspected before publishing anything: run your domain through the SPF/DMARC/DKIM Checker. Typical findings that must be fixed first: SPF records exceeding the ten-DNS-lookup limit, which makes results permerror at exactly the receivers you care about; multiple SPF records, which is invalid outright; and DKIM selectors that exist in the mail flow but not in DNS.
For every legitimate sending service, prefer DKIM alignment over SPF alignment. SPF breaks on forwarding by design — the forwarder is not your authorized host — while a DKIM signature survives any hop that does not modify the message. A service that signs with your domain as d= gives you alignment that travels. Services that can only do SPF through a shared return-path domain will haunt the reports later.
Publish p=none with a rua reporting address and treat the aggregate reports as the product. They tell you, receiver by receiver and source by source, what claims your name and how it authenticates. Expect surprises: the building-access system that mails alerts, the regional office with its own newsletter tool, the vendor sending invoices as you. Every one of these is either brought into alignment, migrated to a subdomain, or consciously abandoned before any enforcement makes sense.
Give this stage real time — weeks, not days, long enough to catch monthly and quarterly senders. The failure pattern to avoid is the confident Friday-afternoon jump to p=reject based on one week of clean reports, followed by the quarterly payroll run bouncing at month's end.
After the reporting window and remediation, apply p=quarantine to the complete evaluated traffic for the domain and keep watching reports. RFC 9989 removed the historical pct= tag because receiver behavior was inconsistent; it is not a current rollout control. The new t=y tag can signal a testing state, but it is not percentage sampling and receivers may apply local handling.
Forwarded mail deserves a clear-eyed decision rather than fear. Forwarding breaks SPF always, and breaks DKIM only when the forwarder modifies the message — mailing lists that add footers and subject tags are the classic case. Receivers that evaluate ARC can recover the original authentication verdict across such hops; inspect what that looks like in practice with the ARC Chain Validator and the Email Message Header Analyzer on a real forwarded message. General-purpose user-mail domains and domains whose users post to mailing lists can suffer legitimate losses under p=reject.
There is no universal finish line. p=reject can be appropriate for tightly controlled sending domains or subdomains after sustained evidence; p=quarantine may be the safer steady state for general-purpose mail domains with important indirect flows. Keep aggregate reports flowing under either policy so new or changed senders are found before they become an outage.