This chapter helps you understand a DMARC record, distinguish message failures from DNS findings and choose a policy suited to your sending operation.
What DMARC does
Domain-based Message Authentication, Reporting and Conformance adds three related functions to SPF and DKIM:
On narrow screens, scroll the table sideways.
| Function | Meaning |
|---|---|
| Alignment | The successfully authenticated domain is connected with the visible sender domain. |
| Policy | The domain owner publishes the requested treatment of DMARC failures. The recipient determines the actual treatment. |
| Reporting | Participating recipients can send reports of their observations to specified destinations. |
Without DMARC, SPF can pass for an unrelated SMTP sender domain and DKIM can be valid for an unrelated signing domain without confirming the visible From: domain. Both checks and other filters remain possible without DMARC. What is missing is this published connection, including the DMARC policy and requested reports.
DMARC concerns the authorised use of a domain. It does not confirm a person's identity or their authority to request a bank transfer. Lookalike domains, freely chosen display names, misused legitimate accounts and harmful content remain separate problems. A DMARC pass is neither a general security assessment nor a promise of inbox delivery.
The current basis is RFC 9989, published in May 2026 as a Proposed Standard. It replaces RFC 7489 and RFC 9091. Aggregate reports are described in RFC 9990, failure reports in RFC 9991. Older guides and recipients may still use different details.
Alignment: which domain comparison matters?
The starting point is the domain in the visible From: header, called the Author Domain in the standard. It is compared with a successfully authenticated domain:
- For SPF, the checked
MAIL FROMidentity counts. A separate HELO check is insufficient. For an empty SMTP reverse path, SPF defines a substitute identity usingpostmasterand the HELO domain. - For DKIM,
d=from a valid signature counts. A message may have several DKIM signatures; one successful aligned signature suffices for the DKIM path.
The Return-Path header can show the SMTP return address recorded at delivery. But the SPF identity originates in the SMTP transaction. An arbitrary header field is no substitute for trusted receiving data. The section on header findings explains this boundary.
Schematic comparison · not measured results
Same domain or same organisational domain
Relaxed alignment, using aspf=r or adkim=r, is the default. It requires the same organisational domain. Strict alignment, using aspf=s or adkim=s, requires identical domains. The organisational domain is determined under the DMARC rules; keeping only the last two labels does not identify it correctly for every domain.
The following table shows schematic domain comparisons only. Each SPF row assumes an actual SPF pass; each DKIM row assumes a valid signature. The visible address is always From: info@example.com; the organisational domains are assumed here to be example.com and example.net.
On narrow screens, scroll the table sideways.
| Path and authenticated identity | Relaxed | Strict |
|---|---|---|
SPF: MAIL FROM:<bounce@example.com> | Aligned | Aligned |
SPF: MAIL FROM:<bounce@sender.example.net> | Not aligned | Not aligned |
DKIM: d=example.com | Aligned | Aligned |
DKIM: d=sender.example.net | Not aligned | Not aligned |
SPF: MAIL FROM:<bounce@mail.example.com> | Aligned | Not aligned |
DKIM: d=mail.example.com | Aligned | Not aligned |
Where DMARC applies, its pass criterion can be expressed as:
DMARC PASS = (SPF pass AND SPF aligned) OR (DKIM pass AND DKIM aligned)The OR is crucial. A message can pass DMARC despite SPF failure if a valid DKIM signature is aligned. Conversely, an aligned SPF pass satisfies the general pass criterion. This differs from additional operational requirements for p=reject. RFC 9989, sections 3.2.4 and 4.4
Forwarding can cause SPF to fail because of the new connecting IP address. DKIM may survive as long as the covered message parts are not invalidly changed under the chosen canonicalisation. ARC can pass on earlier verification results; trust in the intermediaries and the recipient's rules determine their treatment. ARC does not repair a signature.
An alias strategy separates addresses for different services; it is an independent measure. BIMI has further prerequisites, including an enforced DMARC policy. Such a policy alone does not guarantee logo display; the BIMI Group points to additional recipient criteria.
DMARC records: current tags and historical parameters
For example.com, an explicit DMARC TXT record is sought at _dmarc.example.com. The version identifier v=DMARC1 must come first. An explicit p= policy is recommended. If it is absent from an otherwise valid record, RFC 9989 applies p=none. The following example also requests aggregate reports; the address is a placeholder and must be set up for actual use:
v=DMARC1; p=none; rua=mailto:dmarc@example.comOn narrow screens, scroll the table sideways.
| Tag | Values or example | Meaning under RFC 9989 |
|---|---|---|
v | v=DMARC1 | Required version identifier; first tag. |
p | none, quarantine, reject | Recommended explicit policy for failures. Without this tag, an otherwise valid record uses none. |
sp | none, quarantine, reject | Policy for existing subdomains when the corresponding parent policy applies. Without an applicable special value, p applies; a subdomain's own policy may take precedence. |
np | none, quarantine, reject | Policy for non-existent subdomains. Without np, the applicable sp is used, otherwise p. |
rua | mailto:adresse@example.com | Optional destination for requested aggregate reports. Useful when introducing DMARC with report analysis, but not a prerequisite for a DMARC policy. |
ruf | mailto:adresse@example.com | Optional destination for failure reports concerning individual failures. |
aspf | r or s | SPF alignment: relaxed is the default; strict requires identical domains. |
adkim | r or s | The corresponding mode for DKIM alignment. |
fo | 0, 1, d, s | Failure report options; ignored without ruf. 0 is the default. |
psd | y, n, u | Identifies a domain's role in policy and organisational domain discovery. y identifies a Public Suffix Domain, n an organisational domain; u is the default without either designation. |
t | y or n | Testing signal. Default n; y requests policy treatment one level less strict for failures. |
fo=0 requests a failure report when neither method produces an aligned pass. fo=1 requests one when at least one method does not produce an aligned pass, even if the message passes DMARC through the other path. fo=d and fo=s concern DKIM and SPF failures respectively, regardless of alignment. Separate multiple permitted values with colons; 0 and 1 must not be combined. Recipients are not obliged to fulfil every report request.
On narrow screens, scroll the table sideways.
| Historical tag | Former meaning | Current limit |
|---|---|---|
pct | Proportion from 0 to 100 for the former policy application | Removed in RFC 9989 or registered as historical. For recipients following this standard, pct does not limit the policy. |
rf | Format selection for failure reports | Removed in RFC 9989; RFC 9991 provides the relevant description. |
ri | Requested reporting interval in seconds | Removed in RFC 9989; not a reliable schedule for current reports. |
t=y is not a universal rollback switch. Under the new standard, it treats reject as quarantine and quarantine as none; none remains unchanged. It does not turn off report generation. Older recipients may ignore the tag, and DNS caches can delay changes. The definitions are in RFC 9989, section 4.7 and Appendix C.5.
The three policy values
p=none: observe without requesting special DMARC treatment. Other filters may still reject messages or treat them as spam. A suitable rua destination lets you request reports.
p=quarantine: treat failures as suspicious. At the recipient, this may mean quarantine or a spam folder. It does not guarantee a particular folder or a particular form of access to the message.
p=reject: request rejection. This can also affect legitimate indirect sending routes. It is not a universal target for every domain. RFC 9989 advises against this policy for domains used for general-purpose email whose users may post to mailing lists.
A domain that neither sends nor receives
A domain that neither sends nor receives is a different use case from one with user mailboxes. The following schematic zone example documents this intended non-use:
_dmarc.parked.example. TXT "v=DMARC1; p=reject; sp=reject"
parked.example. TXT "v=spf1 -all"
parked.example. MX 0 .The trailing dots identify fully qualified DNS names here. DNS interfaces may expect other input formats. This example has not been published or tested in practice.
Distinguish aggregate reports from failure reports
Aggregate reports: sending patterns observed by recipients
Aggregate reports under RFC 9990 summarise a reporting recipient's observations for a period in XML. The period is often one day. They include source IP addresses, message counts, published policy, authentication, alignment and treatment. rua= specifies the requested recipients of these reports.
The following XML is an invented, incomplete illustration with two groups, not a received report or a complete valid report file. It omits report metadata, the reporting period, the published policy and other record fields, among other things.
<record>
<row>
<source_ip>203.0.113.1</source_ip>
<count>1524</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>pass</spf>
</policy_evaluated>
</row>
</record>
<record>
<row>
<source_ip>198.51.100.42</source_ip>
<count>3</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>fail</dkim>
<spf>fail</spf>
</policy_evaluated>
</row>
</record>The first group represents 1524 messages with successful aligned authentication paths. This does not establish that their content is legitimate or harmless. The second group shows three failures; these could be abusive messages, a forgotten legitimate service or an indirect sending route. Here, disposition=none reports no special DMARC policy action; it proves neither inbox placement nor the recipient's approval of the content.
For real reports, always consider the source, period, reported policy, count and possible policy overrides together. Distinguish separate raw results under auth_results from the DMARC evaluation under policy_evaluated. Reports cover only reporting recipients and their observations. Missing reports therefore prove neither an absence of sending nor error-free authentication. RFC 9990, section 3.1
External reporting destinations need authorisation
If a reporting destination lies outside the relevant organisational domain, DMARC provides for DNS authorisation on the report recipient's side. The domain from which the policy actually originates also matters; with inherited policies, it need not be the visible sender domain. Adding someone else's address to rua is not enough to establish an authorised external destination under the protocol. The procedure is described in RFC 9990, section 4 and is also used for ruf.
Failure reports: targeted diagnosis with more content
Failure reports under RFC 9991, often called forensic reports, may contain details of individual failures. Depending on the report, these may include header fields, addresses and message content. They are not a complete raw email archive and are not supplied by every recipient.
Aggregate reports also contain operational data and must fit the chosen processing purpose. The technical possibility of reporting establishes neither blanket legal permission nor a blanket prohibition.
Which tool answers which question?
On narrow screens, scroll the table sideways.
| Tool type and existing example | Purpose | Limit |
|---|---|---|
| XML analysis, such as dmarcian | Make existing aggregate reports readable for analysis. | Needs the corresponding reports; does not provide complete visibility across all recipients. |
| Report summaries, such as Postmark DMARC | Summarise incoming reports. | The summaries shown depend on individual evidence and product scope. |
| Google Postmaster Tools | Provider-specific information on authentication, reputation and errors. | Concerns mail sent to personal Gmail accounts; data may be absent at low volumes. |
| Wolf-Agents Email Security Check | Examine publicly accessible DNS configuration. | Does not accept DMARC XML reports or actual messages for examination here. |
These examples describe different tasks. A DNS snapshot is not a DMARC report archive, and a DMARC aggregate report is not a domain report produced by Wolf-Agents.
Introduce a policy based on actual sending operations
First establish your sending operation: which services may send? Which domains do they actually use in MAIL FROM, d= and From:? Which forwarding routes and mailing lists matter? Only then can you determine a policy suited to the operation.
Operational decisions · no automatic tightening
Choose the policy based on sending routes
Observe and identify sending routes
Step 1 · example record with p=nonev=DMARC1; p=none; rua=mailto:dmarc@example.comSet up the intended reporting address and match the observed sources to your applications. Configure and check SPF and DKIM for legitimate services; this is an operational recommendation, not a change to the general OR criterion for a message. Account for all relevant sending cycles, including infrequent mailings. A particular pass rate or a universally fixed number of weeks cannot replace this investigation.
Examine the effects of
quarantineStep 2 · example record with p=quarantinev=DMARC1; p=quarantine; rua=mailto:dmarc@example.comIf the checks so far support a stricter policy, monitor reports and feedback from affected recipients after the change. Investigate remaining failures. A DNS record alone does not show whether every legitimate application continues to send correctly.
Choose
rejectonly where the use case supports itStep 3 · example record with p=rejectv=DMARC1; p=reject; rua=mailto:dmarc@example.comThis policy may suit appropriate domains after investigating all relevant routes. Under RFC 9989, domains using
p=rejectmust not rely solely on SPF for a DMARC pass and must add valid DKIM signatures to their messages. For the DKIM path to DMARC, a successful signature must also be aligned.For domains with users who might participate in internet mailing lists, RFC 9989 section 7.4 advises against
p=reject. If it is nevertheless considered in this case, the RFC recommends at least one month ofp=none, followed by an equally long period ofp=quarantine, and comparison of the effects. This recommendation for the stated case does not provide general approval after two months. Relevant infrequent sending routes and remaining problems still need to be resolved.Maintain the chosen policy and sending routes
Step 4 · example record for the chosen ongoing policyv=DMARC1; p=quarantine; rua=mailto:dmarc@example.comThis is an example of a deliberately chosen ongoing policy, not a mandatory step backwards after
reject. New sending services, changed domains and key changes need reassessment. Both relaxed and strict conform to the standard; strict is not a universal final target. Plan rollback and its DNS cache limits when making changes. The enforcement guide covers reports, subdomains and rollback in more depth.
Investigate common DMARC errors
On narrow screens, scroll the table sideways.
| Finding | What to check |
|---|---|
No rua | No aggregate reports are requested. This does not remove the policy or message checks. For missing reports, also check reachability and, where necessary, external authorisation. |
Changed directly to p=reject | Legitimate third parties or indirect sending routes may fail. Investigate affected messages, reports and the identities used. |
| Subdomain policy misinterpreted | Without sp, the determined organisational domain's p may apply unless a subdomain's own policy takes precedence or an applicable np is used. With p=reject, the absence of sp=reject alone is not an additional gap. |
| Several DMARC records at the same name | RFC 9989 discards the records at this query point; policy discovery may continue. The behaviour is defined, but the intended record is lost. Character strings within a single TXT record are not multiple records. |
| SPF or DKIM passes, DMARC does not | Also check alignment. A custom bounce domain for SPF or custom DKIM with an aligned d= may help if the service supports the respective route. An authentication pass for an unaligned domain is insufficient by itself. |
Record at dmarc.example.com instead of _dmarc.example.com | The underscore is part of the name. Distinguish the missing explicit record from DNS timeouts; an inherited policy may also apply. |
RFC 9989, section 4.10 governs policy and organisational domain discovery. A subdomain policy does not prevent misuse of an already legitimately authorised or compromised sending service.
The Email Security Check can show a snapshot of publicly queryable configuration. That may suffice for an initial DNS question. It does not confirm an actual message, a complete sender list, report delivery or uniform adoption of the new standard by all recipients.
Technical and legal limits
Document the chosen policy, its rationale, the sending routes examined and responsibility for reports. A DMARC record or high pass rate does not establish comprehensive security or compliance.
The following legal references concern Germany and the EU:
- Section 30 BSIG requires appropriate and proportionate risk management measures for entities in scope, not a blanket requirement for a particular DMARC policy on every domain.
- BSI TR-03182 covers email authentication; TR-03108 complements it for transport. A DNS check does not replace examination of a whole guideline and its operational requirements.
- Article 32 GDPR concerns technical and organisational measures appropriate to the risk. DMARC does not encrypt communication. For reports, purpose, included data, recipients and access need separate assessment.
A guide for your sending service
Use the available guide for your actual service. The DMARC policy is published through DNS; the identities and signatures needed for a pass must also match the respective sending route.
Frequently asked questions
What is DMARC and why do I need it?
DMARC connects the visible sender domain with a successful aligned SPF or DKIM path. It adds a published policy for failures and optional reports. Since May 2026, RFC 9989 has been the governing DMARC specification; RFC 9990 and RFC 9991 cover reporting. The actual treatment of a message remains the recipient's decision.
What is DMARC alignment?
Alignment compares the authenticated SMTP MAIL FROM domain or d= of a valid DKIM signature with the visible From: domain. Relaxed requires the same organisational domain; strict requires identical domains. One successful aligned path satisfies the general DMARC pass criterion; a DNS record alone does not prove it.
How do none, quarantine and reject differ?
p=none requests no special treatment of DMARC failures, p=quarantine requests treating them as suspicious, and p=reject requests rejection. Other filters and the recipient's rules remain relevant. No particular folder or delivery outcome is guaranteed.
How long should I use p=none?
Until the relevant sending cycles, services and indirect routes have been sufficiently examined. There is no universal pass rate or number of weeks for all domains. For possible mailing list use, RFC 9989 advises against p=reject and specifies separate observation periods if it is nevertheless considered. These do not replace investigating your operation.
What are DMARC aggregate reports?
They are XML summaries from reporting recipients for a specified period. They may include source IP addresses, counts, authentication, alignment and treatment. rua requests them. They are neither a complete sending log nor a Wolf-Agents domain report; the DNS check does not accept these XML files for analysis.
How does DMARC work with third parties?
Examine each actual sending route. An SPF pass with an aligned MAIL FROM domain or a valid DKIM signature with an aligned d= can satisfy the pass criterion. A custom bounce domain or custom DKIM may enable this. Forwarding can change results; DNS alone does not confirm the message path.
Do I need SPF and DKIM before publishing DMARC?
One successful aligned path is enough for a message's general pass criterion. Configuring both appropriately can improve resilience. With p=reject, RFC 9989 additionally requires valid DKIM signatures and prohibits relying solely on SPF. A non-sending domain, however, can publish a DMARC policy without active DKIM signing. Check real sending routes before tightening a sending domain's policy.
Sources and next steps
Sources checked: 12 September 2026. The RFC 9989 status page, RFC 9990 and RFC 9991, together with their errata, were checked specifically. Verified erratum 9150 for RFC 9989 corrects the reference for external reporting destination authorisation to section 4 of RFC 9990. An erratum that has only been reported is not an accepted change to the standard.
Previous chapter: DKIM. Next chapter: DMARC enforcement. For context: email security overview.