# DMARC Record Checker: Policy, Reports and Coverage

> Check a domain's DMARC record: the policy that applies, subdomain inheritance, pct coverage and whether report addresses will receive reports.

Canonical page: https://sendly.now/tools/dmarc-checker

1. [Home](/)
2. [Free tools](/tools)
3. DMARC checker

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](https://sendly.now/api/tools/openapi.json).

```
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"
```

## More free email tools

- [Email domain health check](/tools/domain-health)
- [SPF record checker](/tools/spf-checker)
- [DKIM record checker](/tools/dkim-checker)
- [MX record lookup](/tools/mx-lookup)
- [BIMI record checker](/tools/bimi-checker)
- [Email blocklist check](/tools/blocklist-check)
- [SPF record generator](/tools/spf-generator)
- [DMARC record generator](/tools/dmarc-generator)
- [Email subject line tester](/tools/subject-line-tester)
- [Email signature generator](/tools/email-signature-generator)

## From p=none to p=reject

1. Publish p=none with a rua address and read the aggregate reports for a few weeks.
2. Fix every legitimate service that fails: give it DKIM signing for your domain or a return path under it.
3. 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](mailto:support@sendly.now) — we answer our own email. The full technical detail lives in the [documentation](https://docs.sendly.now).
