Bitelio

What is DMARC? A Guide to Policies, Records & Reports

Discover what DMARC is, how it combines SPF and DKIM to shield your domain, what the none/quarantine/reject policies do, and how to publish a DMARC record and interpret its reports.

Updated July 14, 2026
9 min read

DMARC—short for Domain-based Message Authentication, Reporting, and Conformance—is the email authentication standard that sits above SPF and DKIM, shielding your domain from spoofed messages and phishing attacks.

SPF and DKIM perform the actual verification; DMARC's role is different. It defines what should happen to messages that fail those checks, and it delivers ongoing reports so you can see exactly how your domain is being used.

How DMARC Works

Think of DMARC as the enforcement and visibility layer built on SPF and DKIM. The flow looks like this:

1. Email Authentication

On arrival, the receiving server evaluates the message against SPF and DKIM. DMARC can only pass if at least one of those two checks succeeds.

2. Alignment Check

Next comes "identifier alignment": the server verifies that the domain shown in the visible "From" header matches the domain that actually passed SPF or DKIM.

3. Policy Application

When both authentication and alignment succeed, the message goes through normally. When they don't, the receiver applies whatever policy you published: none (observe only), quarantine (divert to spam), or reject (refuse delivery).

4. Reporting

Participating mailbox providers email you daily summaries covering every message that claimed your domain as its sender, along with how each one fared in authentication.

DMARC Requires SPF or DKIM

DMARC has no authentication mechanism of its own—it depends entirely on SPF and/or DKIM being in place. Its contribution is the policy enforcement and reporting built on top of them.

DMARC Record Syntax

You publish DMARC as a TXT record at _dmarc.yourdomain.com. A typical record looks like this:

Example DMARC Record
_dmarc.yourdomain.com  IN  TXT  "v=DMARC1; p=quarantine; rua=mailto:dmarc@yourdomain.com; ruf=mailto:forensic@yourdomain.com; pct=100; adkim=r; aspf=r"

# Breaking down the components:
# v=DMARC1                           -> DMARC version
# p=quarantine                       -> Policy (none, quarantine, or reject)
# rua=mailto:dmarc@yourdomain.com   -> Aggregate report email
# ruf=mailto:forensic@yourdomain.com -> Forensic report email
# pct=100                            -> Percentage of mail to apply policy (100%)
# adkim=r                            -> DKIM alignment mode (r=relaxed, s=strict)
# aspf=r                             -> SPF alignment mode (r=relaxed, s=strict)

DMARC Policy Tags

TagDescriptionRequired
vProtocol version (always DMARC1)Yes
pEnforcement policy: none, quarantine, or rejectYes
ruaWhere aggregate reports are deliveredRecommended
rufWhere forensic reports are deliveredOptional
pctShare of mail the policy applies to (0-100)Optional
spSeparate policy for subdomainsOptional
adkimDKIM alignment mode: r (relaxed) or s (strict)Optional
aspfSPF alignment mode: r (relaxed) or s (strict)Optional

Understanding DMARC Policies

There are three policy levels, and the safest approach is to move through them in order:

1

p=none (Monitor Mode)

Failing messages are delivered as usual—nothing is blocked. This mode exists purely to collect reporting data, making it the right starting point while you audit your authentication.

v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com

Best for: First deployments, data collection, validating your configuration

2

p=quarantine (Quarantine Failed Mail)

Messages that fail authentication get diverted into recipients' spam or junk folders. It's a sensible intermediate step—your domain gains real protection with limited risk to legitimate delivery.

v=DMARC1; p=quarantine; rua=mailto:dmarc@yourdomain.com; pct=100

Best for: Once monitoring shows your legitimate mail authenticates reliably

3

p=reject (Block Failed Mail)

Failing messages are refused at the door and never delivered. Nothing protects your domain more thoroughly—but it demands a flawless authentication setup across every mail stream.

v=DMARC1; p=reject; rua=mailto:dmarc@yourdomain.com; pct=100

Best for: Well-established setups where every sender authenticates correctly

Progressive Implementation

Begin every rollout at p=none and observe for a minimum of 2-4 weeks. Work through the reports, resolve any authentication gaps, and only then step up to p=quarantine and eventually p=reject.

How to Set Up DMARC

1

Ensure SPF and DKIM are Working

Since DMARC depends on SPF or DKIM (ideally both), confirm those records are published and passing before you go any further.

2

Create a Mailbox for Reports

Stand up a dedicated address such as dmarc@yourdomain.com to collect the reports—they arrive daily and can pile up quickly, so keep them out of your personal inbox.

3

Create Your DMARC Record

Begin in observation mode:

dns
v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com; pct=100
4

Add to DNS

Publish it as a TXT record under _dmarc.yourdomain.com

5

Monitor Reports

Spend 2-4 weeks reading the incoming reports. Hunt for authentication failures and flag any genuine sending sources that still need their SPF or DKIM set up.

6

Gradually Increase Policy

When the data looks clean, switch to p=quarantine, watch the reports again, and finish with p=reject if you want maximum protection.

Frequently asked questions

What is DMARC?

DMARC—Domain-based Message Authentication, Reporting, and Conformance—is an authentication layer that sits on top of SPF and DKIM to defend your domain against phishing and spoofing. It instructs receiving servers how to treat messages that fail authentication (none for monitoring, quarantine for the spam folder, or reject to block delivery) and sends you detailed reports revealing every source sending mail under your domain name.

What is a DMARC policy?

The policy—set with the "p=" tag—dictates what receivers should do with mail that fails DMARC checks. Under p=none nothing happens beyond monitoring; p=quarantine routes failing messages to spam; p=reject refuses them entirely. The recommended path is to begin at p=none while you collect data, then step up to quarantine and eventually reject once every legitimate sender authenticates cleanly.

What does p=reject mean in DMARC?

p=reject is DMARC at full strength: any message failing authentication is refused outright and never reaches the recipient. It offers the best defense against spoofing and phishing, but only enable it after confirming that every legitimate mail stream you operate—transactional systems, newsletters, CRM tools—passes SPF and DKIM correctly.

How do I add a DMARC record?

Publish a TXT record in DNS under the name _dmarc.yourdomain.com. Begin with a value that only observes: v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com. Delivery is unaffected while data accumulates. Spend 2-4 weeks studying the reports, fix any SPF or DKIM gaps you find, and then tighten the policy step by step—first p=quarantine, later p=reject.

Is DMARC required for email deliverability?

For high-volume senders, yes: as of February 2024, anyone delivering over 5,000 messages per day to Gmail or Yahoo mailboxes must have DMARC in place (p=none at minimum). Smaller senders face no hard mandate, but adopting DMARC is still strongly advised—it strengthens deliverability, blocks phishing attempts against your brand, and aligns you with industry standards.