p=0 is not a valid DMARC setting. The p= tag accepts only none, quarantine or reject. People who search for "p 0" usually mean p=none, which is monitoring only, or pct=0, which applies the policy to zero percent of failing mail. Replace the invalid value, because a record without a valid p= may be ignored.
Why it matters
DMARC records are read exactly as written. RFC 7489 says that when a record has no valid p= tag, a receiver should act as if the policy were p=none if the record also has at least one valid rua address, and otherwise take no action. In both cases your intended policy is not applied, so a typo can leave you thinking you are protected when you are not. A zero may also be a sign of confusion between two different tags.
How to do it
- Look up your current record with
dig TXT _dmarc.example.com +short. - Find the
pvalue. If it readsp=0, decide what you meant. - If you wanted to monitor only, use
p=none:
v=DMARC1; p=none; rua=mailto:dmarc-reports@example.com
- If you wanted to start enforcement slowly, choose a real policy and use the pct tag to limit how much mail it applies to:
v=DMARC1; p=quarantine; pct=10; rua=mailto:dmarc-reports@example.com
- If you meant to turn DMARC off, remove the record instead of leaving an invalid value. Receivers then see no policy at all.
- Save the change, wait for DNS to update, and look the record up again to confirm.
The meaning of each tag is covered in What does pct= mean in a DMARC record?.
Common mistakes
- Mixing up p= and pct=. The first chooses the action, the second chooses how much mail it applies to.
- Using numbers or words such as
off,monitorordisabledfor p. Only none, quarantine and reject are valid. - Fixing the value but forgetting
rua, so there are no reports to read. - Assuming a broken record is harmless. It may be ignored, which leaves spoofed mail unchecked.
- Editing the record in a panel that adds its own quotation marks, then leaving stray characters in the value.
Frequently asked questions
Is p=none the same as p=0?
No. p=none is valid and means monitoring only. p=0 is not part of the standard.
Is pct=0 valid?
Yes. It is a valid value, meaning the policy applies to none of the failing mail. Use p=none instead if you only want to watch.
Will fixing the record change where my mail goes?
Correcting p=0 to p=none changes nothing for delivery, since both mean no action is requested. Moving to quarantine or reject can change what happens to failing mail, so read your reports first.
Related guides
- Set Up DMARC: From p=none to Quarantine and Reject
- DMARC p=none vs p=quarantine vs p=reject
- What does a correct DMARC record look like?
- How do I check my DMARC record?
Want to see how your domain looks right now? Try the free website sample.