Answer · DMARC · with original 2026 data

Your DMARC record says p=none. Here is exactly what that does.

You have a DMARC record. A checker confirmed it exists. It reads v=DMARC1; p=none; ... and you want to know whether that means you are protected. The short answer is that p=none is a monitoring setting: it asks receiving mail servers to report forged mail to you and to keep delivering it.

35.6% of 522 domains

sit at p=none — the single most common finding in our 2026 measurement of 522 agency-built sites, ahead of having no DMARC record at all (34.1%). In the independent small-business sample it is 34.9%. It is the most common state on the internet and the one most often mistaken for being finished.

Free, no signup: what a stranger can already read about your domain

Before you plan the move to quarantine: this reads your live record and tells you which policy is published on your domain today - along with the three other values that carry dates.

Type a domain and get four checks in about ten seconds: whether anyone can send email in your name (SPF, DKIM and DMARC), how long your HTTPS certificate has left, when your domain registration expires, and whether the site answers over HTTPS rather than plain http. No email address, no account, nothing installed. It runs the same code our paid monthly report runs.

Open the free check on its own page → · We measured 604 domains: 72-83% had at least one finding

What p=none does

The p= tag is the policy: the instruction you give every receiving mail server about messages that claim to be from your domain and fail authentication. There are three values.

PolicyWhat the receiver is asked to doEffect on a forged invoice sent in your name
p=noneDeliver it. Send an aggregate report to the address in rua.Arrives in the inbox. You learn about it, in XML, days later.
p=quarantineTreat it as suspicious — in practice, the spam folder.Out of the inbox. Recoverable if it was a false positive.
p=rejectRefuse it at the door.Never delivered. The sending server is told no.
Your anti-spoofing record is set to take no action

yourcompany.com publishes DMARC, but its policy is p=none — monitor only. It reports forged mail after the fact; it does not ask anyone to stop delivering it.

The sentence above is the wording our own free checker returns for this finding, reproduced here from the running code rather than retyped.

Why it exists, and why it is a stage rather than a setting

p=none is not a mistake, and it is genuinely the right place to start. Publishing p=reject on day one is how a business breaks its own email: every system that sends on your behalf and has not been authorised — the invoicing tool, the booking form, the CRM, the newsletter platform, the accountant’s portal — gets refused at the far end, and the failures are silent. p=none exists so that you can find that list before it costs you anything.

The failure is not adopting it. The failure is stopping there. A record at p=none gives you a green tick on most checkers, satisfies a questionnaire that asks whether you have DMARC, and stops precisely nothing. Our data says that is where a third of all domains have come to rest.

How to know when you are ready to move

Read the aggregate reports arriving at your rua address. They are compressed XML; any free DMARC report reader will render them into a table. You are looking for one thing: a list of every source sending as your domain, with every legitimate one passing SPF or DKIM.

  1. For each sending source you recognise, authorise it — add it to SPF, or set up DKIM signing with that provider, or both. Both is better: DKIM survives forwarding and SPF does not.
  2. Watch until a full billing cycle has passed, so the monthly senders appear.
  3. When every source you recognise passes, and the only failures left are sources you do not recognise, you are looking at the forgery. Move the policy.

You do not have to jump. pct= applies the policy to a sample:

v=DMARC1; p=quarantine; pct=25; rua=mailto:dmarc-reports@yourdomain

That asks receivers to quarantine a quarter of failing mail and deliver the rest, so a sender you have missed shows up as a complaint rather than an outage. Raise it to 100, then change p= to reject.

v=DMARC1; p=reject; rua=mailto:dmarc-reports@yourdomain; fo=1

Two things that quietly keep people at p=none

A subdomain policy you did not set. If you do not specify sp=, subdomains inherit the main policy. When you move the main domain to reject, every subdomain moves with it — including a marketing subdomain you had forgotten sends mail. Set sp=none during the transition if you are unsure, then remove it.

Alignment, not just authentication. DMARC does not ask whether SPF passed. It asks whether SPF passed for a domain that matches the one in the From line. A bulk sender can pass its own SPF perfectly and still fail your DMARC, because the envelope domain is theirs. This is the most common reason a source that “passes SPF” shows up as a DMARC failure, and the fix is usually a custom return-path or DKIM signing on your domain, which every serious provider supports.

What the numbers look like across 604 domains

We measured two independent samples from the outside, using only public DNS.

SampleDomainsAt p=noneNo DMARCNeither enforces anything
Sites built by 141 web agencies522 186 (35.6%) 178 (34.1%) 364 (69.7%)
Independent small-business sweep83 29 (34.9%) 41 (49.4%) 67 (80.7%)

Add the two middle columns together and you get the last one: in the agency sample 69.7% of domains, and in the small-business sample 80.7%, publish nothing that asks a receiving server to refuse a forged message. About half of that total is not absence. It is a record that exists, reports, and does nothing.

Neither sample is random, and both are point-in-time readings. Method and full limitations are in the study.

We sell a monthly monitor that watches this value. That is a real interest. It is also why the whole transition is written out above: if your record is one edit away from enforcing, make the edit.

Fix it yourself. Then find out when it breaks again.

Everything on this page is the whole fix, free, with nothing held back. What a DNS change cannot do is tell you when somebody edits it back, when a certificate runs out, or when a registration lapses — all three carry dates and none of them announce themselves. A3E’s perimeter monitor re-runs all four checks every month and emails you only when something moves: CA$99/month per site, cancel any time. A single report with no monitoring is CA$29.

Check a domain free See the monitor

Questions

Does p=none protect my domain from spoofing?

No. p=none asks receiving mail servers to send you aggregate reports and to deliver failing messages as normal. It gives you visibility, not enforcement.

Why would anyone use p=none then?

Because it is the safe first stage. It reveals every system sending as your domain without being authorised, which is the list you need before enforcement can be turned on without breaking your own mail.

How long should I stay at p=none?

Long enough for a full billing cycle to pass so monthly senders appear in the reports, and until every source you recognise passes SPF or DKIM. For most small businesses that is two to four weeks.

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

Quarantine asks receivers to treat failing mail as suspicious, which in practice means the spam folder, so a mistake is recoverable. Reject asks them to refuse the message outright, so it is never delivered at all.

Can I apply a policy to only part of my mail?

Yes. The pct= tag applies the policy to a percentage of failing messages, for example p=quarantine; pct=25. It lets a sender you have missed surface as a complaint rather than an outage.

The other five in this set

No DMARC record found: what it means and the record to publish

DMARC record published but invalid: why receivers discard it

No SPF record found: the record to publish, and why SPF alone is not enough

Gmail 550-5.7.26: what it means and the records that fix it

SPF permerror — too many DNS lookups, and how to get back under ten

The measurement behind every number on this page: 604 domains, method and limitations

Every figure on this page is generated from the stored raw measurement files behind our 604-domain study (522 agency-built sites measured 2026-08-20, 83 independent domains measured 2026-08-01), and the quoted finding wording is read out of the running checker at build time. An automated control re-asserts both against this live page on every operating cycle; if either changed and this page did not, it fails. Generated 2026-09-05T23:34:13Z.

← Back to all articles