SiteProbe™

DMARC checker

Validate DMARC, SPF, and DKIM records for any domain. Checks SPF DNS lookup count against the RFC 7208 limit of 10.

How to read your DMARC results

DMARC ties SPF and DKIM together and tells receiving servers what to do when neither one passes. The three records are checked as a set here, because a DMARC policy on its own does nothing useful if the two underneath it are misconfigured.

  • p= is the policy and the single most important value on the page. p=none monitors and delivers everything anyway, which means you are collecting data but nobody is protected yet. p=quarantine sends failures to spam. p=reject refuses them at the door and is the only setting that actually stops someone spoofing your domain.
  • rua= is where aggregate reports are sent. Without it you are enforcing blind, with no way to see who is sending as you or what is failing.
  • pct= applies the policy to a percentage of mail. Anything under 100 is a partial rollout, and it is easy to leave one behind and assume you are protected.
  • sp= is the subdomain policy. If it is missing, subdomains inherit the main policy, which is usually what you want but is worth setting deliberately.
  • The SPF section expands your whole include chain and counts the DNS lookups it costs. This is the check most tools skip, and it is the one that silently breaks mail.
  • DKIM selectors are probed against the common names used by major providers. Not finding one does not prove DKIM is missing, only that it is not on a name we guessed.

What usually goes wrong

  • Stuck on p=none forever. Monitoring mode is meant to be a phase, not a destination. A domain on p=none is exactly as spoofable as a domain with no DMARC record at all. Read the reports, fix what legitimately fails, then move to quarantine and then reject.
  • More than 10 SPF DNS lookups. RFC 7208 caps the include chain at 10. Go over and receiving servers return a permanent error, which means SPF fails for all of your mail, including the legitimate kind. Every SaaS tool you authorise adds to the count, so this creeps up over years and then breaks at once. Flatten includes or drop senders you no longer use.
  • +all or ?all on the SPF record. +all authorises the entire internet to send as you, which is worse than having no SPF record. ?all is neutral and protects nothing. Use -all once you are confident the record is complete, or ~all while you are still verifying.
  • Two SPF records. A domain may publish exactly one. Two produce a permanent error. This usually happens when a new provider is onboarded and adds its own record instead of merging into the existing one.
  • Alignment, not just passing. DMARC requires the domain that passed SPF or DKIM to match the visible From address. Mail sent through a third party can pass SPF on the provider's own domain and still fail DMARC, which is why a green SPF result is not the whole answer.

Common questions

Is p=none good enough?

No. p=none tells receiving servers to deliver failing mail anyway, so it stops nobody from spoofing your domain. It is the right place to start because it generates reports without risking delivery, but it is a staging phase. The protection only begins at quarantine and is only complete at reject.

What happens if I exceed 10 SPF lookups?

Receiving servers stop evaluating and return a PermError, which most treat as an SPF failure. That applies to all of your mail, not just the sender that pushed you over the limit. Because each include can pull in further includes, a record that looks short can still exceed the cap, which is why this tool expands the full chain and counts it.

Why can my mail pass SPF and still fail DMARC?

DMARC also requires alignment: the domain that passed has to match the domain in the visible From address. Mail relayed through a third party often passes SPF on the provider's own domain, which is a pass without alignment, so DMARC still fails. Setting up DKIM signing on your own domain is the usual fix.

Do I need DKIM if I already have SPF?

Yes, in practice. SPF breaks when a message is forwarded, because the forwarding server is not in your SPF record. A DKIM signature survives forwarding, so having both means one of them still aligns and DMARC still passes. Relying on SPF alone makes forwarded mail unreliable.

Why did the checker not find my DKIM selector?

Selectors are arbitrary names, so they cannot be enumerated from DNS. This tool probes the selectors the major providers use by default. If yours is custom, the record still exists and is fine, it just is not on a name we can guess. Check the DKIM settings in your sending platform for the selector it publishes.

Keep going