Free tool
DMARC record checker
Check a domain's DMARC record: the policy that applies, subdomain inheritance, pct coverage and whether report addresses will receive reports.
Last updated 2026-10-21
Run it with curl
This tool is also a free API: no account, no key, CORS open. OpenAPI description.
curl "https://sendly.now/api/tools/dmarc-checker?domain=example.com"
# Markdown instead of JSON:
curl -H "Accept: text/markdown" "https://sendly.now/api/tools/dmarc-checker?domain=example.com"From p=none to p=reject
- Publish p=none with a rua address and read the aggregate reports for a few weeks.
- Fix every legitimate service that fails: give it DKIM signing for your domain or a return path under it.
- Move to p=quarantine, optionally with a lower pct first, then to p=reject.
What this checker reads
- The record at _dmarc.<domain>, or the organizational domain's when a subdomain has none.
- The effective policy, using sp= for an inheriting subdomain.
- pct, rua and the authorization record that a report address on another domain must publish.
Questions people ask
- Is p=none enough?
- It meets Gmail and Yahoo's requirement for bulk senders to have a DMARC record, and it is the right place to start because it changes nothing about delivery while reports arrive. It does not stop anyone sending as your domain; p=quarantine or p=reject does.
- Where does a subdomain's DMARC policy come from?
- From its own _dmarc record if it has one; otherwise from the organizational domain's record, using sp= when present and p= when not. The checker shows which record applies.
- Why are my DMARC reports not arriving at another domain's address?
- A report address on a different domain only receives reports when that domain publishes an authorization record (yourdomain._report._dmarc.theirdomain with v=DMARC1). The checker looks for it.
Something on this page out of date, or missing the case you are in? Write to support@sendly.now — we answer our own email. The full technical detail lives in the documentation.