[ DMARC & policy ]

When a DMARC checker and a receiver disagree, collect the same evidence

Resolve conflicting results by matching the domain, lookup time, resolver path, message identities and implementation assumptions behind each observation.

By the EmailAuth research team · 6 min read

[ Key points ]

  • Match exact identities, times and implementation assumptions.
  • Current DNS does not reconstruct a receiver’s historical cache.
  • Repair the layer supported by the matched observations.
On this page

A green checker result and a failed message can both be accurate. The checker may have inspected a current DNS policy for one name, while the receiver evaluated a different From domain, used an earlier cached answer or received a message without the intended aligned signature.

Begin by making the two observations comparable. Preserve the original results before changing configuration. Then ask exactly what each system examined and when.

Write down what the checker actually checked

Record the entered domain, the exact query name, query type, timestamp, resolver and returned record set. Save the displayed explanation as well as the result colour. Determine whether the tool examined only DNS or actually evaluated a supplied message.

For a policy published at _dmarc.example.com, a positive lookup establishes an observed policy at that name. It does not establish the SPF or DKIM identities on an application's message. It also does not prove that the tool followed the same discovery rules as the receiver.

Keep the specification assumptions visible. Current RFC 9989 §4.10 uses DNS tree-walk rules for discovery and organisational domains. A legacy implementation can use different assumptions, particularly for relaxed alignment. Do not describe a disagreement as a DNS error until the comparison supports that conclusion.

Start the receiver investigation from the message

For a delivered example, retain the original received message and identify the trusted receiving system's Authentication-Results. Record the visible From domain, evaluated SPF identity, each DKIM d and s value, authentication results, alignment and applicable policy.

Under RFC 8601 §7.1, treat an untrusted authentication assertion as message content, not a substitute for the receiving system's work. A provider name in a header also does not establish that your organisation approved the account using it.

For a rejection, there may be no delivered message to inspect. Retain the full returned SMTP text, message or transaction reference, sending account, recipient domain and timestamp. Combine those with the sending system's event record and available original submitted message.

Collect a DNS comparison with context

An investigation packet should include:

  • Observation: Complete authoritative answer for the exact owner name; Why retain it: Shows the serving zone's data at collection time
  • Observation: Relevant recursive answer, including status and TTL; Why retain it: Shows a resolver view and possible cached state
  • Observation: Any alias or delegation path; Why retain it: Explains which authority and names were involved
  • Observation: Full TXT record boundaries; Why retain it: Distinguishes one multi-string record from multiple policy candidates
  • Observation: UTC collection time and recent change history; Why retain it: Relates current data to the message's evaluation time

Avoid retaining only +short output when response codes, authority information or absence matter. Use the missing-record guide to trace the name and authority.

A current authoritative answer is valuable evidence, but it cannot reconstruct a remote receiver's historical cache. State that gap rather than declaring that the receiver must have used today's answer.

Work through a synthetic mismatch

This fictional case shows why matching scope matters:

  • Item: Checker at 14:10 UTC; Captured observation: A valid policy for example.com
  • Item: Failed message at 14:04 UTC; Captured observation: From is alerts@notices.example.com
  • Item: Sender signature; Captured observation: d=mailer.example.net verifies
  • Item: Source policy evidence; Captured observation: The application uses a provider-controlled envelope domain
  • Item: Subdomain configuration; Captured observation: An explicit policy exists for notices.example.com

The root-domain checker has not established the policy or alignment for that message. The passing provider signature is also unrelated to the From domain in this example. Investigate the subdomain policy and the application's supported aligned configuration.

A different case might reveal that the correct identities aligned but the required policy lookup timed out; RFC 9989 §5.3.6 does not classify that incomplete check as pass or fail. The same checker colour would then lead to a different repair.

Keep DNS response categories distinct

A successful answer containing relevant data differs from NXDOMAIN, a complete no-data response, SERVFAIL, REFUSED and a timeout. These observations do not all mean “no DMARC record”. RFC 1035 §4.1.1 defines DNS response codes; RFC 2308 §2.1 and RFC 2308 §2.2 distinguish NXDOMAIN and NODATA.

Check the queried name before interpreting absence. NXDOMAIN for _dmarc.example.com, without an alias complication, describes that queried owner name; it does not by itself establish that example.com does not exist.

Under RFC 2308 §5, negative caching can preserve an earlier absence after a record is added. Positive caching can preserve an earlier value after an edit. Retain response context and collection time so the explanation can be assessed.

Choose the repair from the matched evidence

If the tool and receiver examined different names, correct the investigation scope. If the message lacks an aligned path, correct the supported sending configuration. If answers differ among authoritative servers, investigate zone consistency. If recursive resolution fails, inspect the resolver, delegation, validation and transport path.

A policy edit is not the automatic repair for every discrepancy. Change the smallest relevant configuration and retain the reason. Use the alignment guide when raw authentication passes for a domain that does not align.

Repeat a controlled test and close the comparison

After the repair, capture fresh DNS observations and a representative message through the same application account and route. Compare the new result with the earlier packet and explain the changed evidence.

One successful retry demonstrates that attempt. Continue the defined service-level checks when the incident involved several routes or receivers.

The useful conclusion is a matched account of the disagreement: what was checked, what the receiver evaluated, which difference mattered and which repair changed the outcome.

Make the next decision explicit

For the 14:10 checker and 14:04 message fixture, first align the queried Author Domain and reconstruct the message’s identities; do not attribute the six-minute difference to caching without evidence. Required DNS errors and lack of alignment are different findings. Qualifying stale answers can extend beyond TTL expiry under RFC 8767 §4. The illustrated observations are fictional, not captured logs.

[ Takeaway ]

Match exact identities, times and implementation assumptions. Current DNS does not reconstruct a receiver’s historical cache. Repair the layer supported by the matched observations.

[ By role ]

What this means for you

Choose your role for practical next steps.

IT / Mail Admin

Compare matching inputs and times.

DNS scope, cache state, message identities and implementation assumptions can diverge.

Next steps

  1. Save full lookup and returned-message evidence.
  2. Start from the actual From domain.
  3. Repeat the same route after the targeted correction.

CISO / SecOps

Keep conclusions within the evidence.

A disagreement should be explained rather than resolved by choosing the more reassuring result.

Next steps

  1. Require a trusted source for receiver assertions.
  2. Preserve historical gaps explicitly.
  3. Approve any policy change as its own decision.

Founder / Non-technical

Ask what the passing result actually demonstrated.

A domain badge cannot establish every customer-facing mail route.

Next steps

  1. Require an explanation tied to the affected workflow.
  2. Retain the service owner and sending account.
  3. Judge recovery from representative outcomes.

[ FAQs ]

Frequently asked questions

Can the checker be green while a real message fails DMARC?

Yes. DNS configuration and message authentication are different observations. Match the actual From domain, identities, route and evaluation time before comparing results.

RFC 9989 §5.3.5

What should I save from a DNS checker?

Retain the input domain, exact query name and type, timestamp, resolver, complete response and the tool's stated checks. The colour alone is insufficient.

Which Authentication-Results header should I trust?

Use assertions within the receiving system's assessed trust boundary. A sender-inserted or otherwise untrusted field is not proof of the receiver's evaluation.

RFC 8601 §7.1

What if the receiver rejected the message and there are no received headers?

Save the full SMTP response, sending-platform event, timestamp, message reference and available submitted message. Do not invent delivered-header evidence.

Does today's authoritative DNS answer prove what the receiver saw yesterday?

No. It shows the current serving data at collection time. Historical cache and lookup evidence must come from appropriate logs or retained observations.

Can two implementations disagree without either querying the wrong DNS server?

Yes. Compare their specification version and discovery or alignment assumptions, as well as their observation times and actual message input.

RFC 9989 §4.10

Should I weaken policy to make the two results agree?

First identify the consequential difference. A sender identity defect, wrong lookup scope or resolution failure needs its own repair; a policy change is a separate scoped decision.

What should the final incident record explain?

It should connect the tool observation, receiver evidence, relevant discrepancy, repair and controlled retest, while retaining any remaining coverage gap.

[ Sources ]

Sources

  1. RFC 9989

    Sections §4.5 · §4.10 · §4.10.1 · §4.10.2 · §5.3.5 · §5.3.6 · §3.2.2

  2. RFC 8601

    Sections §7.1

  3. RFC 1035

    Sections §4.1.1

  4. RFC 2308

    Sections §2.1 · §2.2 · §5

  5. RFC 8767

    Sections §4

[ Glossary ]

Glossary

Author Domain
The domain in the message From header field, used as the DMARC reference identity.

RFC 9989 §3.2.2

DNS TTL
Ordinary freshness interval, not a guaranteed global deletion deadline; qualifying stale-answer use may continue after expiration.

RFC 8767 §4

Enterprise provenance

Why top financial institutions and governments retired their email security dashboards.

Traditional email authentication platforms sell you a dashboard and ask your engineers to do the labour. In high-stakes environments, manual oversight means delayed enforcement, configuration drift and unmonitored shadow domains.

EmailAuth is the agentic email provenance platform. Our agents enforce p=reject, keep third-party senders aligned and move your domains to full RFC 9989 compliance, the new DMARC standard,, with human-in-the-loop auditability.

Governments Large enterprises Tier-1 financial institutions

SaaS · Dedicated tenancy · Air-gapped on-prem · BYOK encryption

Knowledge Base