Define how to handle emails that fail authentication.
DMARC (Domain-based Message Authentication, Reporting and Conformance) is the policy layer that unifies SPF and DKIM. It allows defining what receiving servers should do with emails that fail authentication: accept them, quarantine them (spam), or reject them.
Without DMARC, even with SPF and DKIM configured, receiving servers decide for themselves how to handle suspicious emails. DMARC lets you express your policy and receive reports on spoofing attempts against your domain.
DMARC also solves the alignment problem: it verifies that the visible domain in the From header matches the domain authenticated by SPF or DKIM, closing a vulnerability that attackers exploited.
DMARC adds a policy layer to email authentication:
DMARC completes the email authentication trilogy:
Deploy DMARC gradually:
Here are DMARC policy examples:
; DMARC monitoring only (starting)
_dmarc.example.com. IN TXT "v=DMARC1; p=none; rua=mailto:[email protected]"
; DMARC quarantine (intermediate)
_dmarc.example.com. IN TXT "v=DMARC1; p=quarantine; rua=mailto:[email protected]; pct=25"
; DMARC reject (maximum protection)
_dmarc.example.com. IN TXT "v=DMARC1; p=reject; rua=mailto:[email protected]; ruf=mailto:[email protected]"
; DMARC with complete options
_dmarc.example.com. IN TXT "v=DMARC1; p=reject; sp=quarantine; adkim=s; aspf=s; rua=mailto:[email protected]; ri=86400"
; Verification
$ dig _dmarc.example.com TXT +short
"v=DMARC1; p=reject; rua=mailto:[email protected]"
v=DMARC1 is mandatory. p= defines policy (none/quarantine/reject). rua= receives aggregate reports. sp= defines subdomain policy. adkim/aspf define strict or relaxed alignment.
Deploy DMARC effectively:
Technically yes, but DMARC will always fail because it requires SPF OR DKIM to pass AND align. Without either, DMARC makes no sense.
Aggregate reports (rua) list all IPs that sent emails for your domain with SPF/DKIM/DMARC results. Forensic reports (ruf) contain samples of failed emails.
Only if you forgot sources in SPF or DKIM isn't configured for a service. Hence the importance of starting with p=none and analyzing reports.
By default, subdomains inherit the parent domain policy. Use sp= for a different policy, or create specific DMARC records for each subdomain.
Typically 2-3 months minimum. Move from p=none to p=quarantine after verifying reports, then to p=reject when confident all sources are covered.
Use a DMARC analysis service that aggregates and visualizes reports. ri=86400 (1 per day) instead of ri=3600 also reduces volume.
DMARC is the final piece of the email authentication puzzle. It transforms SPF and DKIM from simple checks into an actionable policy, and gives you visibility on all attempts to use your domain.
Deploy DMARC gradually, analyze your reports, and aim for p=reject for maximum protection. Monitor your DNS records with MoniTao to ensure your policy stays active.
Start free, no credit card required.