You set up DMARC. Your business is still fully exposed.
You set up DMARC. Your business is still fully exposed.
Thousands of businesses rushed to add a DMARC record when Google and Yahoo demanded it. Most set it to p=none
, and now they think they're protected. They're not.
In early 2024, Google and Yahoo dropped a bombshell on the email world: if you're sending bulk email, you need SPF, DKIM, and DMARC or your messages go straight to spam. Overnight, "DMARC" went from an obscure DNS record to a household name in every marketing department and IT office.
What followed was a gold rush. Hosting providers, domain registrars, and web agencies all started offering to "set up your DMARC record." IT teams scrambled to get something, anything, in place before the deadline.
And in the rush, almost everyone made the same critical mistake.
What is DMARC, and what is it actually supposed to do?
DMARC stands for Domain-based Message Authentication, Reporting & Conformance. It's a DNS record that tells receiving mail servers what to do when an email claiming to be from your domain fails authentication checks (i.e., when it's likely a fake).
DMARC works alongside two other records: SPF (which lists servers allowed to send from your domain) and DKIM (which digitally signs your emails). Together, they create a chain of trust. DMARC is the enforcement layer: the piece that says "if this message fails, do something about it."
The key word there is enforcement. And that's exactly what most people skipped.
The p=none problem: a false sense of security
The DMARC p=
tag is the policy tag. It controls what happens to email that fails authentication. There are three options:
When someone told you to "add a DMARC record," they were right. When they handed you a record with p=none
and called it done, they left you exposed in exactly the same way you were before. You just can't see it happening now.
Here's the blunt truth: p=none does not stop a single phishing email. It does not protect your customers. It does not protect your brand. It tells receiving mail servers to deliver suspicious email anyway, and just send you a report. That's it.
The only legitimate use of p=none
is as a temporary first step
: a monitoring phase before you've audited all your legitimate sending sources. It should never be where you stay.
What a real (bad) DMARC record looks like
_dmarc.yourdomain.com IN TXT "v=DMARC1; p=none
; rua=mailto:dmarc@yourdomain.com"
Millions of businesses have exactly this record. The rua
tag means you'll get reports (that probably nobody reads). The p=none
means none of it matters. This record technically satisfies Google and Yahoo's requirements, but it does nothing to prevent spoofing of your domain.
Here's what a properly configured, enforcing record looks like:
_dmarc.yourdomain.com IN TXT "v=DMARC1; p=reject
; pct=100; rua=mailto:dmarc@yourdomain.com; ruf=mailto:dmarc@yourdomain.com; aspf=s; adkim=s"
The difference? Everything. p=reject
means servers receiving spoofed emails from your domain will silently discard them. Attackers can't impersonate your business. Your customers are protected.
The real risks of staying at p=none
"We had a DMARC record. I checked. But our domain was still being used to phish our clients. Turns out p=none means nothing is enforced. We had the record and zero protection."
Why did everyone end up at p=none?
There's a legitimate technical reason p=none
exists: before you enforce DMARC, you should audit what's sending email on behalf of your domain. Marketing platforms, CRMs, helpdesk software, transactional email services: all of these may send email as your domain, and you need to make sure they're properly authenticated (via SPF/DKIM) before you start rejecting failures.
The problem is that this audit phase became the permanent state. Tools that auto-generate DMARC records default to p=none
because it's "safe." Agencies set it and forget it. Nobody schedules the follow-up to move to enforcement. And so businesses sit indefinitely in monitoring mode, accumulating DMARC reports that nobody reads, while their domain remains wide open.
How to actually fix this
p=quarantine; pct=25
to test with a fraction of traffic, increase gradually, then move to p=reject; pct=100
for full enforcement.The bottom line
DMARC is not a checkbox. Adding a record with p=none
is like installing a home alarm system that monitors for break-ins but has no siren and doesn't call the police. You'll know after the fact that something happened. Nothing is actually prevented.
The good news? Getting to p=reject
is achievable for nearly every business. It requires some upfront work: auditing your senders, fixing authentication. But once it's done, your domain is genuinely protected. Attackers can't impersonate you. Your customers can trust that email from your domain really came from you.
That's what DMARC was designed to do. That's what it does when it's set up properly.
If your DMARC record says p=none
right now, you haven't finished the job.
Not sure where your DMARC stands?
We'll audit your email authentication setup and build a clear path to full enforcement, without breaking your deliverability.
Book a free consultation