CloudSpex

Free email security tool

Free DMARC Checker

Check whether your domain publishes a DMARC record and identify whether the policy is set to none, quarantine or reject.

CloudSpex explains what the current policy means, why it matters and what should be changed next.

Enter a domain such as example.com. The checker looks for the domain’s DMARC policy.

What is DMARC?

DMARC is a DNS-based email policy that tells receiving servers what to do when a message fails DMARC checks. It helps domain owners publish a clear policy, but it does not guarantee that every unwanted message will be stopped. Running a DMARC lookup or DMARC test here means reading that record and interpreting it the way a receiver would — including the parts you did not write and the RFC defaults that fill them in.

What does the CloudSpex DMARC checker test?

Record presence

Whether a DMARC record is available for the checked domain.

Policy

Whether the available policy is none, quarantine or reject.

Record interpretation

Whether the current record can be interpreted by the existing DMARC evaluation.

The analyzer reads the published record in full: p, sp, adkim, aspf, rua, ruf, fo and ri. It reports how subdomains inherit the policy, how many reporting destinations are configured and whether any of them is malformed or on another domain. Alignment is reported as a configuration MODE (relaxed or strict), never as a message result — a DNS-only checker has no From, Return-Path or DKIM signature to evaluate, and claiming otherwise would be a guess.

What do p=none, p=quarantine and p=reject mean?

p=none

Messages are monitored, but failing messages are not instructed to be quarantined or rejected.

p=quarantine

Receiving servers are asked to treat failing messages as suspicious.

p=reject

Receiving servers are asked to reject messages that fail DMARC.

Why p=none is not full enforcement

p=none is a useful monitoring stage, but it does not ask receivers to quarantine or reject failing messages. Review legitimate sending sources before moving to an enforcing policy.

DMARC check vs email security check

DMARC Checker

Focuses on the DMARC record, its policy and whether it can be interpreted.

Email Security Check

Reviews SPF, DKIM and DMARC together as part of a broader email security summary.

DMARC check vs continuous monitoring

One-time check

Shows the currently available DMARC policy state.

Continuous monitoring

Helps detect when monitored email-security configuration changes unexpectedly.

Frequently asked questions

What is a DMARC record?

A DMARC record is a public DNS policy for a domain’s email. It tells receiving servers how to handle messages that fail DMARC checks.

What does the CloudSpex DMARC checker test?

It reads the published record in full: the policy (p), subdomain policy (sp), alignment modes (adkim, aspf), reporting addresses (rua, ruf) and the failure and interval options (fo, ri). It also reports how many reporting destinations are configured, whether any is malformed or sits on another domain, and whether test mode is on.

Does a missing sp tag mean subdomains are unprotected?

No. When sp is absent, subdomains inherit the main policy, so its absence is not a finding on its own. It matters when sp is set to something weaker than p — for example p=reject with sp=none — because that leaves subdomains less protected than the main domain.

Can this tool tell me whether SPF or DKIM alignment passes?

No, and any tool that claims to from DNS alone is guessing. Alignment is evaluated per message, using the From header, the Return-Path and the DKIM signing domain. A public checker sees none of those. What can be read from DNS is the alignment MODE you configured — relaxed or strict — which is what this page reports.

What does fo mean in a DMARC record?

fo controls when failure (forensic) reports are generated: 0 sends a report when everything fails, 1 when any check fails, d on a DKIM failure and s on an SPF failure. It only has an effect when ruf is also configured.

What does pct do, and why does the report call it a request?

pct asked receivers to apply the policy to a percentage of failing messages. RFC 9989 removed the tag, so modern receivers ignore it and apply p in full. This page shows the coverage the record asks for so you can see what was intended, and says plainly that it is a request rather than something receivers will honour. For a staged rollout, raise p from none to quarantine to reject instead of using pct.

What does the enforcement level on this page mean?

It is the strength the published record actually asks receivers for, not just the p value. p=none is monitoring only. p=quarantine is partial enforcement. p=reject is full enforcement, unless t=y is set or pct is below 100, which both pull the record back to a weaker effective level.

What does the t tag do, and does t=y switch DMARC off?

No. t is the testing-mode tag introduced in RFC 9989, and it replaced pct. It does not disable the policy — it asks receivers to apply the level below the one you published, so p=reject with t=y is handled as quarantine and p=quarantine with t=y is handled as none. The default is t=n, which applies the policy exactly as written. This page reports the effective policy after that step down, and scores the effective policy rather than charging you twice for testing.

Does CloudSpex check whether an external reporting address is authorised?

No. When rua or ruf points at another domain, DMARC requires that domain to publish an authorisation record of the form yourdomain.example._report._dmarc.theirdomain.example. This tool does not query that record, so it marks the destination as external and states that external authorization is not verified. It never labels a destination authorised or unauthorised.

Which values are RFC defaults rather than something I published?

adkim and aspf default to relaxed, pct defaults to 100, ri defaults to 86400 seconds, and sp is inherited from p when it is absent. Each of these is labelled on the result so you can tell an explicit choice from a default that simply applies.

What does p=none mean?

p=none means messages are monitored, but failing messages are not instructed to be quarantined or rejected.

What is the difference between p=quarantine and p=reject?

p=quarantine asks receiving servers to treat failing messages as suspicious. p=reject asks them to reject failing messages.

What happens if a domain has no DMARC record?

Without a DMARC record, receiving servers have no DMARC policy from the domain to apply. Create and validate a record before checking again.

Is p=none enough to protect a domain?

p=none is useful for monitoring, but it is not full enforcement. Review legitimate mail sources before moving to quarantine or reject.

Is this DMARC check free?

Yes. This is a limited, read-only public check using the protected CloudSpex Free Scan flow.

Does the checker make changes to DNS?

No. CloudSpex reads public DNS information only and does not change DNS, email settings or website configuration.

Is this the same as a DMARC lookup or a DMARC test?

Yes — a DMARC lookup fetches the _dmarc TXT record, and this test goes on to interpret it the way a receiving server would: the effective enforcement level, the subdomain policy, the reporting destinations, and which values fall back to RFC defaults rather than being something you published.

DMARC policies can change or disappear without warning.

Add your domain to CloudSpex to monitor DMARC, SPF, DKIM and related email-security configuration changes.

Start Monitoring Free Check Another Domain