ToolFeather
Developer / SEOLive DNS · from your browser

DMARC Checker

Check any domain's DMARC policy. It explains every tag in plain English, follows the RFC 9989 tree walk that receivers use for subdomains, flags the legacy pct tag, and makes sure your report addresses will actually receive reports.

Quick presets

DMARC Checker

The domain in your From: address. Subdomains are fine. The tool walks up the tree the way receivers do.

How this lookup works. When you press Check DMARC, your browser sends the question over encrypted DNS-over-HTTPS to Cloudflare's public resolver (1.1.1.1), or to Google Public DNS (8.8.8.8) if you choose it below. The request goes straight from your device to them. It doesn't pass through ToolFeather: we have no server in the path, so we never see or store the names you look up. Requests are sent without cookies or a referrer. Each resolver has its own privacy policy: Cloudflare · Google.

Results appear here.

Queries your browser sent (0)

These are the exact requests, each one a link. Open one to see the raw JSON answer from the resolver.

    Live lookup: your browser asks Cloudflare or Google DNS directly. Nothing passes through ToolFeather.

    ToolFeather · RFC 9989
    Scratchpad auto-saved
    Stored in this browser (localStorage)
    Step-by-step~40s read

    How it works — in four simple steps

    No signup and nothing to install — it all runs in your browser.

    1

    Enter your From: domain

    A subdomain works too.

    2

    Check DMARC

    The tool queries _dmarc and walks up if it needs to.

    3

    Read the verdict

    Effective policy, subdomain policies and report addresses.

    4

    Act on the checks

    Fix errors, then tighten the policy step by step.

    Pro tip

    p=none only watches. Spoofed mail is still delivered until you reach quarantine or reject.

    Features

    RFC 9989 aware

    Knows np, t and psd, flags pct/rf/ri as removed, and applies the new rules for missing or invalid policies.

    DNS tree walk

    Finds the policy for any subdomain the way receivers do, and shows each query and the organisational domain.

    Every tag explained

    A table of every tag, plus the defaults that apply when a tag is left out.

    Report authorisation

    Checks that rua/ruf addresses at another domain have published their _report._dmarc authorisation.

    Roll-out advice

    Clear next steps from none to quarantine to reject, with the testing-mode and subdomain pitfalls.

    About the DMARC Checker

    DMARC links SPF and DKIM to the address people actually see in the From: line. A message passes DMARC when SPF or DKIM passes and the domain it checked matches the From: domain ("alignment"). The domain owner publishes a TXT record at _dmarc.example.com saying what receivers should do with mail that fails: p=none (just report), p=quarantine (spam folder) or p=reject (refuse). It's the one control that actually stops other people sending mail that claims to come from your domain.

    DMARC was rewritten in 2026. RFC 9989 replaces RFC 7489, with reporting split into RFC 9990 (aggregate) and RFC 9991 (failure). It removes the pct, rf and ri tags, adds np for non-existent subdomains, t for testing mode and psd for public suffixes, and replaces the Public Suffix List with a DNS tree walk. For mail.example.com a receiver checks _dmarc.mail.example.com and, if there's nothing there, walks up label by label (at most eight queries) to find the organisational domain's record. Then it applies sp or np, depending on whether the subdomain exists. Existing RFC 7489 records keep working.

    The checker runs that walk from your browser and shows each query. Then it checks the details that quietly break DMARC: duplicate records (all of them get ignored), p=none left on for years, pct below 100 (updated receivers ignore it), weaker subdomain policies, and report addresses at another domain. A third-party report address only receives reports if that domain publishes an authorisation record at yourdomain._report._dmarc.theirdomain, and the checker looks that up too.

    Examples

    v=DMARC1; p=reject; rua=mailto:dmarc@example.com → enforced, reports on
    mail.example.com with no own record → uses example.com's sp= via the tree walk

    Frequently asked questions

    6 answers
    What DMARC policy should I use?
    Start with p=none and a rua address to collect reports. Once every legitimate service passes (usually after a few weeks), move to p=quarantine and then p=reject. Only reject fully stops spoofing.
    What changed in RFC 9989 (DMARCbis)?
    Published in May 2026, it replaces RFC 7489. pct, rf and ri are removed; np (non-existent subdomain policy), t (testing) and psd (public suffix) are added; and receivers find the organisational domain with a DNS tree walk instead of the Public Suffix List. Old records are still valid.
    Is pct still supported?
    Receivers that implement RFC 9989 ignore pct and apply the policy to all failing mail. Older receivers may still sample. For a staged roll-out use t=y, which asks receivers to apply the next-weaker policy, and remove pct once you're at full enforcement.
    Why don't I receive DMARC reports?
    Check that rua is a valid mailto: address and, if it's at another domain, that the domain publishes ._report._dmarc. TXT "v=DMARC1". Reports are sent once a day, so give it 24–48 hours.
    Do Gmail and Yahoo require DMARC?
    Yes, for bulk senders (over 5,000 messages a day to their users). Since February 2024 they've required SPF, DKIM and a DMARC record of at least p=none, with the From: domain aligned. Microsoft applies the same rules to Outlook.com since May 2025.
    Does ToolFeather see the domains I check?
    No. Your browser sends each query straight to Cloudflare's 1.1.1.1 or Google Public DNS over HTTPS, without cookies or a referrer. ToolFeather has no server in the path. The resolver you pick handles the query under its own privacy policy. Cloudflare and Google both publish theirs and say they don't sell resolver data. The list under the results shows every request your browser made.