Features How it works Pricing About Contact
Sign in Start now
RFC 7489 · Email Authentication

What is DMARC, and why
does your domain need it?

Every day, billions of emails claim to be from domains they're not. DMARC is the protocol that tells receiving mail servers exactly what to do when that happens — and lets you see the full picture of who's sending on your behalf.

0B
phishing emails sent daily
0%
of orgs targeted by email fraud
p=reject
strongest DMARC policy level
The basics

The problem DMARC solves

Email's original design had a serious blind spot: anyone could send a message claiming to be from any address. Your domain name — the part after the @ — was just text. No proof required.

This made spoofing trivial. Attackers could send emails that look exactly like they came from your bank, your boss, or your business. DMARC closes this gap by giving domain owners a way to publish a policy that receiving servers can actually enforce.

01

Email is sent

Someone sends a message claiming to be from your domain.

02

Receiver checks DNS

The receiving server looks up your DMARC record in DNS.

03

Authentication runs

SPF and DKIM are checked against the From: header.

04

Policy is applied

Your DMARC policy tells the server what to do with failures.

The foundation

SPF and DKIM
DMARC's two pillars

DMARC doesn't work alone. It relies on two underlying protocols to do the actual authentication work.

SPF — Sender Policy Framework

Checks whether the mail server that actually sent the message is authorized to send on behalf of your domain. You publish a list of allowed IP addresses in DNS, and receiving servers verify against it.

DKIM — DomainKeys Identified Mail

Adds a cryptographic signature to your outgoing emails. The receiving server fetches your public key from DNS and verifies that the message wasn't tampered with in transit.

Key insight

You can have valid SPF and DKIM and still be spoofed. DMARC adds alignment — it checks that those authenticated domains actually match the From: address the human sees. Without DMARC, the two systems can be bypassed independently.

The record

Anatomy of a DMARC record

A DMARC record is a DNS TXT record published at _dmarc.yourdomain.com. It's human-readable once you know the tags.

_dmarc.example.com  TXT
v=DMARC1; p=quarantine; rua=mailto:reports@example.com; adkim=s; aspf=s; pct=100
v=DMARC1

Version identifier. Always this exact value. Required — omitting it means the record is ignored entirely.

p= (policy)

The action to take on failing messages. Options: none, quarantine, or reject. This is the most important tag.

rua= (reporting)

Where to send aggregate reports. Typically a mailto: URI. These daily reports reveal who's sending email using your domain.

adkim= / aspf=

Alignment mode. s (strict) requires an exact domain match. r (relaxed) allows subdomains to pass.

pct=

Percentage of failing messages to apply the policy to. Useful for gradual rollout. Default is 100 — applies to everything.

ruf= (forensic)

Forensic report destination. Receives message-level failure reports. Less commonly used due to privacy considerations at many receivers.

Policy levels

The three enforcement modes

Your p= value tells receiving mail servers how aggressive to be with failing messages.

01 p=none

Monitor

Take no action on failing messages. Delivers everything, but sends you reports. Best for observing your mail ecosystem before enforcing anything.

Observation only
02 p=quarantine

Quarantine

Failing messages go to the spam or junk folder. Recipients can still find them, but they're flagged. A middle ground for cautious enforcement.

Partial enforcement
03 p=reject

Reject

Failing messages are refused outright at the SMTP layer. They never reach the inbox. Maximum protection — but requires all legitimate senders configured first.

Full protection
Important

Don't jump straight to reject. If you have third-party services sending on your behalf — marketing tools, support platforms, CRMs — that aren't yet SPF/DKIM authenticated, a p=reject policy will block their emails too. Always start with p=none, analyze the reports, and move through quarantine before reaching reject.

Try it

Policy simulator

See how DMARC responds to different email scenarios depending on your policy setting.

DMARC policy evaluator
Select a scenario:
✓ DMARC pass — all policies
SPF passed and aligns with the From: domain. DKIM signature valid and aligns. The message is delivered normally regardless of your p= setting.
With p=none:
⚠ delivered — monitoring only
Message lands in inbox. You'll see it in your aggregate reports, but the recipient receives it normally.
With p=quarantine or p=reject:
✗ blocked / junked
With quarantine: message goes to spam. With reject: refused at SMTP — the attacker's mail server receives a 5xx error and the message is never delivered.
⚠ partial pass — check alignment
DKIM passes but SPF fails. DMARC passes on DKIM alignment alone (relaxed mode). However, with strict SPF alignment (aspf=s), this would fail. Review your SPF record to include all authorized senders.
Reporting

What DMARC reports tell you

One of DMARC's most underrated features is its reporting capability. Even before you enforce any policy, the reports give you a detailed map of everyone sending email that appears to come from your domain.

RUA — aggregate

Daily summary reports

Sent once per day by participating mail receivers. Contains counts of messages, SPF/DKIM results, source IP addresses, and which policy was applied. Delivered as XML, usually parsed by a reporting tool.

Aggregate Daily cadence XML format
RUF — forensic

Per-failure reports

Triggered by individual failures. Contains more detail — sometimes the full message headers. Privacy-sensitive and not sent by all receivers, but useful for diagnosing specific issues.

Forensic Per-message Less common

Reports are sent to a destination you specify. If that destination is outside your domain — for example, a third-party reporting service — DMARC requires a verification step. The receiving domain must publish a special DNS record confirming it accepts reports on your behalf. This prevents report flooding attacks where a bad actor publishes a DMARC record pointing reports at a victim address.

Implementation

Recommended rollout path

A phased approach ensures you never block legitimate email.

Phase 1 · Days 1–7

Audit your sending sources

List every service that sends email using your domain: CRM, marketing platform, helpdesk, transactional email provider. Each one needs to be SPF-authorized and DKIM-signed before you enforce anything.

Phase 2 · Week 2

Publish p=none with reporting

Deploy your DMARC record in monitor mode with rua= set. This is safe — nothing gets blocked. Collect at least 2–4 weeks of reports to see who's sending on your behalf.

Phase 3 · Weeks 3–6

Move to p=quarantine at pct=10

Begin enforcement at a low percentage. Increase pct gradually — 10 → 25 → 50 → 100 — watching reports at each step.

Phase 4 · Months 2–3

Reach p=reject

Full enforcement. Unauthenticated email from your domain is rejected at the SMTP level. Your domain is no longer usable as a spoofing vector.

Common questions

Frequently asked

No. DMARC only protects against spoofing of your specific domain. It doesn't prevent spam from other domains, compromised accounts, or lookalike domains. It's one layer of a multi-layer defense.

Only if you rush to reject before properly configuring all your senders. Starting with p=none gives you visibility with zero disruption risk. Never skip directly to p=reject on a live domain.

DMARC includes an sp= (subdomain policy) tag. If not specified, subdomains inherit the parent domain's policy. Subdomains you don't send from should generally be protected too.

Arguably more so. Low-volume domains are prime targets for spoofing precisely because they're less monitored. Publishing p=reject on a silent domain is low-risk and high-reward — you have nothing to break.

In early 2024, both Gmail and Yahoo Mail began requiring bulk senders (5,000+ messages/day) to have DMARC in place with at least p=none. This formalized what was previously a best practice into an effective deliverability requirement.

Get visibility into your domain today

Set up in minutes, and start understanding your email activity. First DMARC insights within 24–48 hours.

Serif
Blue