Use the current DMARC specification, not an old article
As of 2026, the base DMARC specification is RFC 9989. Aggregate reporting is defined separately in RFC 9990, and failure reporting in RFC 9991; these documents obsolete the older RFC 7489-era specification set. For an operator, the practical lesson is simple: use current protocol references when validating syntax and behavior. Many blog posts still explain DMARC with older terminology or assumptions, so the site's own documentation should distinguish enduring concepts—alignment, policy, reporting—from advice that may have been tied to an older draft or provider implementation.
What p=none is for
A `p=none` policy asks receivers to evaluate DMARC and, where supported and configured, provide reporting without requesting quarantine or rejection solely because DMARC fails. That makes it a useful starting point when a domain has multiple legitimate senders and the operator is not yet certain which ones align. It is not a deliverability booster and it does not repair SPF or DKIM. Its operational value is visibility: the domain can discover authentication paths before asking receivers to enforce a stronger disposition.
Build the sender inventory before publishing enforcement
List every system that sends mail using the visible From domain: normal mailboxes, billing, password resets, support tools, forms, newsletters, and any legacy integration. Send a sample through each path and inspect whether SPF or DKIM passes with a domain that aligns with From. This is where small businesses often find forgotten systems. A contact form that sends through an old host may still reach customers even though nobody remembers its credentials. Moving directly to `p=reject` can turn that forgotten dependency into a production outage.
Publish one syntactically valid record and confirm it from DNS
A basic monitoring record lives at `_dmarc.example.com` and begins with `v=DMARC1`. Add only tags you understand and can operate. If aggregate reports are desired, the `rua` destination needs to be a mailbox or reporting endpoint you can actually monitor, and external destinations can require additional authorization. After publishing, query the authoritative DNS answer rather than assuming the control panel saved the value correctly. Keep the previous value in a change log so rollback is straightforward.
v=DMARC1; p=none; rua=mailto:dmarc-reports@example.comRead reports as an inventory tool, not a reputation score
Aggregate reports summarize authentication observations by source and disposition. They can reveal that a legitimate service is signing with a vendor domain, that a retired IP still appears, or that spoofed traffic exists. They do not tell you whether a cold email message was wanted, whether it reached the inbox, or whether your targeting is good. Separate authentication coverage from campaign performance. The question during `p=none` is: can we explain legitimate sources, and do they have an aligned authentication path?
Move to enforcement only after unknown legitimate traffic is resolved
Before changing policy, classify recurring sources. Legitimate but misaligned traffic should be repaired at the sending platform or moved to an appropriate domain. Clearly unauthorized traffic does not need to be “fixed” by adding it to SPF. Once normal production streams are explainable and aligned, increase enforcement deliberately according to current DMARC behavior and your tolerance for delivery risk. A small sender should schedule this like an infrastructure change, with test messages and rollback criteria, rather than flipping the policy immediately before a campaign launch.
Keep DMARC separate from legal or consent questions
DMARC authenticates domain use; it does not decide whether a recipient wanted a message or whether a campaign complies with a particular law. A domain can have flawless SPF, DKIM and DMARC and still produce complaints because targeting or frequency is poor. Conversely, a legitimate customer notification can fail authentication because of a broken provider migration. Maintaining that separation keeps the troubleshooting tree clean and prevents the operator from treating one green authentication metric as a blanket approval of outbound behavior.
Do not copy pct= from legacy DMARC examples in 2026
The current DMARC base specification is RFC 9989, published in May 2026, and it removed the old pct tag from RFC 7489. The specification explains that partial-percentage enforcement was applied inconsistently in practice. It replaces the special testing behavior associated with pct=0 with a t tag whose values indicate testing state. For an operator building a new record now, this is a strong reason to avoid copying a decade-old sample from a forum or old blog post. Start from the current tag set, keep the policy intentionally simple, and document the reason for every optional tag. A p=none rollout is already a monitoring posture; adding obsolete syntax makes later troubleshooting harder because receiver behavior may not match the article that supplied the example.
Treat aggregate reports as a sender inventory, not an inbox score
DMARC aggregate reporting answers questions about authentication and alignment observed by participating receivers. It is not an inbox-placement report and should not be read as a spam-folder percentage. Use the data to discover which IPs or services send using the domain, which streams pass or fail SPF and DKIM, and which identities align with the visible From domain. When an unknown source appears, identify it before moving policy toward enforcement. When a known source fails, correct that stream rather than weakening the whole domain policy. RFC 9989 separates the base protocol from the newer aggregate-reporting specification, RFC 9990; keeping those roles clear helps a small operator avoid turning a useful authentication inventory into a vague “deliverability score.”
Validate external rua destinations before relying on reports
If aggregate reports are sent to an address outside the domain being monitored, the reporting path has its own authorization rules. RFC 9989 points to RFC 9990 for the DNS-based mechanism used to approve external report destinations. That means an rua address can look syntactically correct yet still fail to receive reports if the external destination is not authorized properly. For a small sender, test the reporting mailbox directly, confirm the required DNS authorization when using an external service or separate domain, and record the expected report cadence before drawing conclusions from silence. Missing reports do not automatically mean there is no traffic or no DMARC failure; they may mean the reporting channel itself is misconfigured.
Field checklist
- Reference RFC 9989 for current DMARC base behavior; reporting is split into RFC 9990/9991.
- Inventory every legitimate From-domain sender before enforcement.
- Validate SPF/DKIM alignment from real messages, not just DNS presence.
- Publish and query the `_dmarc` record from authoritative DNS.
- Use aggregate reports to classify sources, not as an inbox-placement score.
- Move beyond `p=none` only after legitimate misalignment is understood and tested.
Primary sources
Standards and provider policies can change. These links are the reference points used for this field note.
- RFC 9989 — DMARCIETF / RFC Editor — Current DMARC base specification, published May 2026.
- RFC 9990 — DMARC Aggregate ReportingIETF / RFC Editor — Current aggregate reporting specification.
- Email sender guidelinesGoogle Gmail Help — Authentication, TLS, DNS, spam-rate and bulk-sender requirements.
