All research

Is p=none Enough? Why Publishing DMARC Isn't the Same as Enforcing It

Publishing DMARC is not the same as enforcing it. Across 300 top domains measured over passive DNS: 84.7% publish a DMARC record, only 67.3% actually enforce it, and 4.7% deploy MTA-STS.

Is DMARC p=none enough? No. p=none does not stop spoofing. It only monitors. If your domain sits at p=none, receivers send you reports but still deliver forged mail bearing your name, so your domain can still be spoofed. We resolved 300 top domains over public DNS and read their email-authentication records to see how common this mistake is. Publishing looks healthy: 84.7% publish a DMARC record. Enforcement is where it falls apart. Only 67.3% actually enforce DMARC with a policy of quarantine or reject. Among the 261 domains that receive mail, about 30% enforce nothing, because they sit at p=none, publish no usable policy tag, or publish no DMARC at all. If you inherited a DMARC record and assumed it protects you, this is the gap you are standing in.

The blunt version A DMARC record at p=none blocks zero forged messages. To an attacker, a p=none domain and a domain with no DMARC at all are the same target. Reports are not defense. Only p=quarantine or p=reject stops the send.

Publishing DMARC is not the same as enforcing it

Email authentication is three records people tend to treat as one checkbox. SPF (RFC 7208) lists which servers may send for a domain. DKIM (RFC 6376) signs a message so a receiver can verify it was not altered. DMARC (RFC 7489) ties those checks to the visible From address and tells receivers what to do when they fail.

That last clause is where publishing versus enforcing DMARC parts ways. A record can exist and still instruct receivers to do nothing. The policy lives in the p= tag, and it has three settings. This is the whole of p=none vs reject:

So the honest question is not "does this domain have DMARC" but "does its DMARC enforce." What does DMARC enforcement mean in practice? It means the receiver is told to act on a failure rather than log it. In our sample, the two numbers diverge by nearly eighteen points: 84.7% publish a record, 67.3% enforce one. That eighteen-point gap is domains that did the visible work, edited their DNS, put a record in place, and stopped one step short of the part that blocks anything.

Related measurement Our earlier writeup on email-spoofing exposure asked a presence question: how many domains publish an enforcing DMARC at all. This post answers the reader who already has a record and wants a yes or no on whether it protects them. Same lawful method, sharper question.

The data: published versus enforcing

Here is the full sample. Publishing controls run high, enforcement and the transport layers run low.

Email-authentication and transport adoption across 300 top domains Horizontal bar chart. SPF present 88.0 percent. DMARC published 84.7 percent. DMARC enforcing 67.3 percent. BIMI 19.7 percent. DNSSEC 20.0 percent. MTA-STS 4.7 percent. Sample of 300 domains, July 2026. 0% 25% 50% 75% 100% Adoption across 300 top domains Share publishing each control. Higher is safer. Passive DNS, July 2026. SPF present 88.0% DMARC published 84.7% DMARC enforcing 67.3% BIMI 19.7% DNSSEC 20.0% MTA-STS 4.7%
Source: our own passive DNS measurement of a 300-domain sample from the Majestic Million list, resolved via 1.1.1.1 on 24 July 2026. Percentages are over all 300 sampled domains. Enforcing DMARC means a policy of quarantine or reject.

Now the policy distribution. This is the table that answers the question directly: of the domains that actually take mail, how many are at p=none or worse.

DMARC policy among the 261 mail-receiving domains, July 2026
PolicyDomainsShareBlocks forged From-domain mail?
Enforcing: p=reject13953.3%Yes, mail is refused
Enforcing: p=quarantine4416.9%Mostly, mail is sent to spam
Monitor only: p=none4416.9%No, mail is delivered
No DMARC record3011.5%No, nothing to act on
Record without a usable p= tag41.5%No, treated as no policy

Read the bottom three rows together. That is 29.9% of mail-receiving domains where forged mail bearing their name is not stopped by DMARC. These are domains that actively receive mail, so this is not a technicality about parked or non-sending zones. It is the same impersonation opener we described in our guide to what attackers can see about your company, still open on nearly a third of live mail domains near the top of the web. If you have a DMARC record but are still getting spoofed, the p=none row is almost certainly where you sit.

The enforcement gap

We call the space between 84.7% published and 67.3% enforcing the DMARC enforcement gap, and it is the whole point of this measurement. Publishing a record is cheap and visible, so it happens. Turning that record into something that blocks mail requires an organization to know its own senders well enough to reject the rest without breaking real business email. That second step is where domains stall, and the stall is measurable.

Frame it from the attacker's chair, because that chair decides whether a control matters. You want to send mail that appears to come from a target's own domain, to that target's finance team or to one of its customers, asking to move a payment or reset a credential. You check the target's DNS first, the same way we did. If the domain publishes p=reject, your forged mail is refused at the receiving side and never reaches the inbox. That plan is dead. If the domain publishes p=none, nothing changes for you. The receiver notes the failure in a report that goes to the domain owner, not to your victim, and delivers your message anyway. So can my domain be spoofed at p=none? Yes, exactly as easily as with no DMARC at all.

What makes our number worth citing is how we got it. This is independent passive measurement, not vendor telemetry. We are not reporting mail our own product filtered, and we are not extrapolating from one provider's inbound stream. We read the public policy that every receiver on the internet reads, the record itself, for a fixed sample on a fixed date. That is a different and more neutral vantage point than a security vendor reporting on the traffic it happens to see.

How to check your own domain

You do not need a tool or a signup for this. Read your own public DNS and look at one tag. Anyone can run these lookups against any domain, because a DNS query is a passive read of records that are already public.

If the DMARC lookup comes back with p=none, you have your answer: the record is publishing, not enforcing, and you are in monitoring mode only.

Moving from p=none to enforcement

The path from none to reject is well worn, and the honest part is that the DNS edit is the easy bit. The work is confirming you will not break legitimate mail when receivers start acting on failures. Here is how to move DMARC from none to reject without cutting off your own senders:

While you are in the DNS anyway, announce MTA-STS so inbound mail cannot be quietly downgraded to cleartext, and sign your zone with DNSSEC so the lookups that fetch your policy cannot be spoofed. MTA-STS adoption sits at just 4.7% in our sample, so doing it puts you ahead of almost everyone. DNSSEC also gates stronger schemes such as DANE, and its scarcity at 20.0% caps how far mail security can go for four in five of these domains. The judgment behind enforcing without breakage is the same one behind knowing which of your certificate-issuance controls and exposed surfaces actually matter and which are noise.

What this does not prove

Honest limits, because a number without its caveats is marketing.

Frequently asked questions

Is p=none enough to stop email spoofing?

No. p=none is monitoring only. Receivers report failures but deliver forged mail as normal, so mail bearing your domain still reaches inboxes. It is a fine first stage while you inventory senders, but it blocks nothing until the policy moves to quarantine or reject.

Can my domain still be spoofed if I have a DMARC record?

Yes, if that record is at p=none. Having a record is not the same as being protected. Only p=quarantine or p=reject tells receivers to act on mail that fails authentication.

What is the difference between publishing and enforcing DMARC?

Publishing means a _dmarc record exists. Enforcing means its policy is p=quarantine or p=reject. A record at p=none blocks nothing. In our July 2026 sample, 84.7% published a record but only 67.3% enforced one.

What percentage of domains actually enforce DMARC?

In our 300-domain sample, 84.7% published DMARC and 67.3% enforced it. Among the 261 mail-receiving domains, roughly 30% enforce nothing.

Is p=none the same as having no DMARC?

For stopping spoofing, effectively yes. To an attacker the outcome is identical: forged mail is delivered. The difference is that p=none produces reports you can use to reach enforcement.

How do I move DMARC from none to reject?

Read your aggregate reports at p=none until every legitimate sender is accounted for, move to p=quarantine (optionally ramping with a pct tag), fix any real sender failing alignment, then set p=reject.

Why am I still getting spoofed with DMARC set up?

Almost always because the policy is at p=none, or because SPF and DKIM are not aligned for your senders so an enforcing policy cannot pass. Check the p= tag on your _dmarc record first.

Related reading

Not sure if your domain is actually enforced?

Our $100 check reads your external surface the way an attacker does, on scope you have verified you own and authorized in writing, with a senior operator on the readout. Whether your DMARC is published or actually enforcing is one of the first things we look at.

Book a $100 check