RFC 7489: DMARC: Domain-based Message Authentication, Reporting, and Conformance

Ties SPF and DKIM together into a single policy record that instructs receivers how to handle failing messages.
Alaa
By Alaa
SMTPedia documents email infrastructure end to end: SMTP standards from the RFC archive, delivera...
10 min read Updated Aug 27, 2026 148 views
RFC 7489
DMARC: Domain-based Message Authentication, Reporting, and Conformance
Current standard
Domain
Authentication
Published
March 2015
Supersedes
First in series
SMTP relevance
foundational
↗ Read on rfc-editor.org

What this RFC defines

RFC 7489 defines DMARC (Domain-based Message Authentication, Reporting, and Conformance), a policy framework that ties SPF and DKIM together. A domain owner publishes a DMARC record in DNS specifying what receiving servers should do with messages that fail authentication, and where to send aggregate and forensic reports.

Where you see it in practice

The _dmarc.yourdomain.com TXT record (p=reject; rua=mailto:reports@yourdomain.com) is defined by this RFC. When Gmail sends you a daily aggregate report showing which IPs sent email claiming to be from your domain, that report format and delivery mechanism come from RFC 7489. A DMARC policy of p=reject is the strongest protection against domain spoofing.

How it connects to other RFCs

RFC 7489 builds on RFC 7208 (SPF) and RFC 6376 (DKIM) as its two alignment sources. RFC 8601 defines the Authentication-Results header that carries DMARC outcomes. RFC 8617 (ARC) solves the problem of DMARC breaking legitimate forwarding scenarios. Together these four RFCs form the modern email authentication stack.

Current status

RFC 7489 is the current DMARC standard, published March 2015. It has been required for bulk senders to Gmail and Yahoo since February 2024. A successor standard (DMARCbis) has been in IETF development to address known gaps but RFC 7489 remains the deployed reference.

The DMARC framework

RFC 7489 defined DMARC (Domain-based Message Authentication, Reporting, and Conformance) in March 2015. DMARC ties together SPF and DKIM by requiring alignment: for a DMARC pass, either SPF must pass with the MAIL FROM domain aligned to the RFC 5322 From header domain, OR DKIM must pass with the signing domain aligned to the From header domain. A domain publishes a DMARC policy in DNS at _dmarc.example.com specifying what receivers should do with unauthenticated mail: none (monitor only), quarantine (spam folder), or reject.

The aggregate report ecosystem

DMARC introduced aggregate reports (RUA) and forensic reports (RUF). Aggregate reports are XML documents that receivers send to the domain owner daily, summarizing authentication results for messages claiming to be from that domain. This visibility allows domain owners to detect unauthorized senders and configure legitimate ones correctly. Services like dmarcian, Valimail, EasyDMARC, and PowerDMARC parse and visualize aggregate reports because the raw XML is difficult to interpret at scale.

Adoption in 2026

Since Google and Yahoo announced sender requirements in February 2024, DMARC has been mandatory for bulk senders sending 5,000 or more messages per day to Gmail or Yahoo. This drove rapid adoption: DMARC coverage of Alexa top-1M domains jumped from about 33% in late 2023 to over 70% in 2025. Small senders still often lack DMARC, but every professional sender either has DMARC configured or faces significant deliverability disadvantage. RFC 7489 remains the current standard; a DMARCbis update is in development but not yet published.

Quick Reference

RFC 7489 (March 2015) defines DMARC (Domain-based Message Authentication, Reporting, and Conformance): a policy layer that requires SPF or DKIM to align with the From header domain per RFC 5322. Publishes policy via DNS TXT at _dmarc.[domain]. Policies: none (monitor), quarantine (mark spam), reject (block). Sends aggregate (rua) and forensic (ruf) reports to specified addresses. Since Gmail-Yahoo bulk sender rules (2024), effectively mandatory for high-volume commercial senders. DMARCbis update in development but not yet published as of 2026.

RFC 7489 at a glance

AspectDetail
PurposeAnti-spoofing policy over SPF and DKIM; require alignment with From domain
StorageDNS TXT at _dmarc.[domain]
Policies (p)none, quarantine, reject
Alignment modesrelaxed (subdomains OK) or strict (exact match) for SPF and DKIM independently
ReportingAggregate (rua) and forensic (ruf) XML reports
Percentage rolloutpct=N applies policy to N% of failing mail
Bulk sender rules impactGmail-Yahoo (Feb 2024) require p=none minimum for 5000+ msg/day
PublishedMarch 2015

DMARC record syntax

DMARC record at _dmarc.example.com _dmarc.example.com. IN TXT “v=DMARC1; p=reject; rua=mailto:dmarc-agg@example.com; ruf=mailto:dmarc-fo@example.com; adkim=r; aspf=r; fo=1; pct=100; sp=reject”Tag reference: v Version (always DMARC1); MUST be first p Policy: none, quarantine, reject sp Subdomain policy (defaults to p if omitted) rua Aggregate report destination (mailto: URI list) ruf Forensic report destination (mailto: URI list) adkim DKIM alignment: r (relaxed, default) or s (strict) aspf SPF alignment: r (relaxed, default) or s (strict) pct Percentage of failing mail to apply policy to (0-100) fo Forensic report options: 0/1/d/s combinations ri Reporting interval in seconds (default 86400 = 24h)

The alignment concept (central to DMARC)

DMARC does not add a new authentication mechanism. It requires that SPF or DKIM authenticate an identity that aligns with the visible From header domain. Alignment can be relaxed (organizational domain match) or strict (exact domain match).

MechanismAuthenticated identityAlignment targetRelaxed example (aligned)Strict example (aligned)
SPFMAIL FROM (envelope sender)From header domainMAIL FROM: bounces.example.com, From: example.comMAIL FROM: example.com, From: example.com
DKIMDKIM d= tagFrom header domaind=mail.example.com, From: example.comd=example.com, From: example.com
DMARC passes if at least one of SPF or DKIM aligns and passes. A message can SPF-fail but DMARC-pass when DKIM is aligned and passes. This is why DKIM is often more robust across forwarding paths that break SPF (traditional forwarding, mailing lists).

The three policy values

PolicyReceiver action on failing mailWhen to use
p=noneTake no action; still emit reportsMonitoring phase: gather data before enforcing
p=quarantineDeliver to spam folder (or apply spam-like scoring)Rollout phase: catch spoofing while accepting business risk
p=rejectReject at SMTP (5xx) so mail bounces to senderSteady state: prevent spoofing entirely

The recommended DMARC rollout

Standard progression: monitor, then enforce. Deploy p=none first, gather aggregate reports for 4 to 12 weeks to identify all legitimate senders. Fix authentication gaps. Move to p=quarantine with low pct (e.g., pct=10), watch for damage, gradually increase to pct=100. Finally move to p=reject. Total timeline for a typical enterprise: 6 to 9 months from p=none to p=reject.

Common DMARC deployment mistakes

Publishing p=reject without a monitoring phase. Legitimate mail streams almost always exist that the domain owner does not know about (invoice systems, transactional platforms, HR tools). Deploying p=reject cold blocks these silently. Always start p=none, review reports, fix authentication, then progress.
Not publishing rua for aggregate reports. Aggregate reports are the primary signal for DMARC health. Without rua, you cannot see which senders are failing, why, or from which sources. Set up a mailbox (or use a DMARC report processor like dmarcian, Postmark DMARC Monitoring, EasyDMARC, Valimail) and monitor daily.
Confusing organizational domain with exact domain. Relaxed alignment matches the organizational domain, computed via the Public Suffix List. mail.example.com aligns with example.com in relaxed mode. Strict alignment requires exact match. Most deployments should use relaxed (the default) because subdomain sending is common; strict is only appropriate for security-critical domains with tightly controlled sending.
Ignoring the sp tag for subdomains. By default, the DMARC policy at the organizational domain applies to all subdomains. If you want subdomains to have a different policy (e.g., you send transactional mail from mail.example.com with strong authentication but marketing has weaker setup on a separate subdomain), set sp= explicitly. Otherwise, you inherit the parent policy which may be too strict for a subdomain still in monitoring.
Not accounting for forwarders and mailing lists. Traditional forwarding breaks SPF alignment; mailing lists often break DKIM by modifying content. Even at p=reject, some legitimate mail will fail. Solutions: adopt ARC to preserve verdicts across forwarders, work with mailing list operators to sign with their own domain, or accept the small legitimate loss as the security cost.

Aggregate report format

DMARC aggregate report XML structure <feedback> <report_metadata> <org_name>google.com</org_name> <email>noreply-dmarc-support@google.com</email> <report_id>12345678901234567890</report_id> <date_range> <begin>1721606400</begin> <end>1721692799</end> </date_range> </report_metadata> <policy_published> <domain>example.com</domain> <adkim>r</adkim> <aspf>r</aspf> <p>reject</p> <pct>100</pct> </policy_published> <record> <row> <source_ip>192.0.2.10</source_ip> <count>42</count> <policy_evaluated> <disposition>none</disposition> <dkim>pass</dkim> <spf>pass</spf> </policy_evaluated> </row> <identifiers> <header_from>example.com</header_from> </identifiers> <auth_results> <dkim> <domain>example.com</domain> <result>pass</result> <selector>mail-2026</selector> </dkim> <spf> <domain>example.com</domain> <result>pass</result> </spf> </auth_results> </record> </feedback>
Authentication stack RFCs
  • RFC 7208: SPF (Sender Policy Framework)
  • RFC 6376: DKIM (DomainKeys Identified Mail)
  • RFC 8601: Authentication-Results header
  • RFC 8617: ARC (preserves verdicts across intermediaries)
  • RFC 5322: Internet Message Format (the From header DMARC aligns against)
  • RFC 5321: SMTP (MAIL FROM identity SPF authenticates)
SMTPedia companion guides

Frequently asked questions

What is the difference between DMARC and DKIM+SPF?

SPF and DKIM are authentication mechanisms: they prove that an email was sent from an authorized IP (SPF) or signed by a legitimate key (DKIM). DMARC is a policy layer on top: it says which identity (MAIL FROM or DKIM d=) must align with the From header the recipient sees, and what the receiver should do when neither aligns. Without DMARC, an attacker can pass SPF and DKIM with their own domain while forging your brand in From; DMARC’s alignment requirement closes this gap.

Should I start with p=reject or p=none?

Always p=none. Deploying p=reject cold blocks legitimate mail streams the domain owner does not know about (invoice systems, HR tools, transactional platforms). p=none gathers aggregate reports without blocking, letting you identify and authenticate all legitimate senders. Once reports show near-100% alignment for legitimate mail, progress to p=quarantine with low pct, then p=quarantine pct=100, then p=reject. Typical enterprise timeline is 6 to 9 months.

What are Gmail and Yahoo’s 2024 bulk sender rules and how does DMARC fit?

Since February 2024, senders shipping 5000 or more messages per day to Gmail or Yahoo must publish a DMARC record with p=none minimum. Higher-reputation senders are effectively required to enforce (p=quarantine or p=reject). Non-compliant senders face rate limiting, mass rejection, and reputation damage. This transformed DMARC from best practice to operational requirement for commercial email.

Do I need both aggregate (rua) and forensic (ruf) reports?

Aggregate reports (rua) are essential; they show which senders are failing, at what volume, from which IPs, with what alignment issues. Forensic reports (ruf) contain the actual failing message headers and are useful for investigating specific incidents, but they include partial user content and many receivers do not send them (privacy concerns). Start with rua only; add ruf later if you need per-message investigation capability.

Why does DMARC fail even though SPF and DKIM pass?

The most common cause: passing SPF or DKIM with an unaligned identity. Example: your marketing platform sends via MAIL FROM: bounces@platform.com which passes SPF for platform.com, and signs with d=platform.com. Both authenticate but neither aligns with your From: @yourbrand.com. Fix: configure the ESP for authenticated sending on your domain (custom Return-Path subdomain for SPF alignment, CNAME-delegated DKIM selector for d= alignment).


About the Author

Alaa - SMTPedia author

Alaa · LinkedIn

Email infrastructure specialist with 8+ years of hands-on experience in SMTP, deliverability, and email verification. I’ve configured and troubleshot mail systems across Postfix, Exchange, and cloud relays, managed IP reputation and warmup campaigns, and built verification pipelines processing millions of addresses. My work spans DNS authentication (SPF, DKIM, DMARC, BIMI), bounce handling, blocklist monitoring, and compliance frameworks including CAN-SPAM and GDPR. I write every article on SMTPedia to give email professionals, developers, and marketers the accurate, RFC-grounded reference they need.


About SMTPedia

SMTPedia is an independent email industry reference covering SMTP, IMAP, POP3, email deliverability, marketing platforms, DNS authentication, and email verification. Every article is researched from official provider documentation, IETF RFCs, and industry best practices. Settings and configurations are verified quarterly.

We are cited as a source by ChatGPT, Microsoft Copilot, and thousands of email professionals worldwide. Learn more about our editorial process.