All resources

Email security · 4 min read

DMARC in three steps: from p=none to reject without breaking email

Most organisations publish a DMARC record, feel protected, and block nothing. The move from monitoring to enforcement is a sequence, not a switch.

A DMARC record with p=none is a monitoring instruction. It asks receiving mail servers to report abuse and explicitly tells them not to act on it. That is a sensible first step and a poor final state.

Step one: publish, and read the reports

Start at p=none with a reporting address (rua). Aggregate reports arrive as XML and are unreadable without a parser — which is why so many organisations publish the record and never look again.

What you are looking for is the complete list of legitimate senders: your mail provider, your CRM, ticketing, payroll, any application that sends as your domain.

Step two: align the senders

The failures at this stage are almost always third-party senders who send as your domain without SPF or DKIM alignment. Options:

  • Add them to SPF, staying under the ten-DNS-lookup limit.
  • Have them DKIM-sign with a key on your domain.
  • Move them to a subdomain that carries its own policy.

A subdomain policy is often the cleanest fix. p=reject on mail.example.com stops abuse of that subdomain without endangering your primary domain.

Step three: move the policy, then move it again

Go to p=quarantine first and watch delivery of legitimate mail for a week or two. Then p=reject. If you need a staged rollout, use pct to apply the policy to a percentage of mail — but do not leave pct below 100 indefinitely, because it means part of your impersonation is still delivered.

The part people skip

Enforcement is not a project with an end date. New senders appear, marketing tools change, an acquired entity keeps sending from an old platform. The record stays correct only if someone is reading the reports.

That is the difference between a one-time configuration and monitoring — and the reason a check on its own is not protection.

Put a number on it.

RiskBite gives you a 0–100 posture score and an indicative annual loss range in about two minutes.

RiskBite — free risk check

Cookies on this site

Essential cookies keep the site working. Analytics and marketing cookies only run if you allow them. Read the cookie policy.