Email Authentication Explained: SPF, DKIM, DMARC, BIMI, MTA-STS, TLS-RPT, CAA, and ARC (Complete RFC Reference)
The complete reference for email authentication. Covers the three core standards (SPF, DKIM, DMARC) and four auxiliary standards (BIMI, MTA-STS, TLS-RPT, CAA) plus ARC for forwarding survival. Explains how the seven standards interlock as layered defence-in-depth, the threat model (spoofing, phishing, BEC) they exist to address, the SMTP envelope vs visible From: header plumbing that makes DMARC alignment possible, the canonical deployment sequence (SPF first, then DKIM, then DMARC at p=none, then enforcement, then transport hardening, then BIMI), and an operator decision tree for where to start based on your current deployment state.
This reference is provided in English. Email authentication is specified in English-language RFCs and the canonical syntax (v=spf1, v=DKIM1, v=DMARC1, v=BIMI1, v=STSv1, v=TLSRPTv1) does not translate. We keep the body in the source language so technical terms remain consistent with the specifications.
TL;DR
- Email authentication is the set of DNS-published, cryptographically- anchored, RFC-defined mechanisms that let a receiving mail server verify a message claiming to be from a given domain was actually authorised to be sent.
- The three core standards: SPF (RFC 7208, IP authorisation), DKIM (RFC 6376, cryptographic signing), and DMARC (RFC 7489, policy + alignment + reporting).
- The four auxiliary standards: BIMI (logo display, draft), MTA-STS (RFC 8461, transport hardening), TLS-RPT (RFC 8460, transport reporting), and CAA (RFC 8659, cert-issuance authorisation).
- ARC (RFC 8617, Authenticated Received Chain) preserves authentication results across forwarding hops where SPF would otherwise break.
- The SPF / DKIM / DMARC trio depends on the distinction between the SMTP envelope MAIL FROM (RFC 5321) and the visible From: header (RFC 5322). SPF evaluates the envelope; DKIM signs the header; DMARC demands at least one aligns with the visible From:.
- The canonical deployment
sequence: SPF first, DKIM second,
DMARC
p=nonethird (reporting only), report-driven alignment fix-up over 2-6 weeks, DMARC enforcement, then layer MTA-STS / TLS-RPT / BIMI / CAA. Never skip fromp=nonetop=reject. - Every standard is a TXT record at a
well-known DNS location: SPF at the
apex, DKIM at
selector._domainkey, DMARC at_dmarc, BIMI atdefault._bimi, MTA-STS at_mta-sts, TLS-RPT at_smtp._tls, CAA at the apex with a special record type (RR 257). - DMARC Analyzer ingests
DMARC aggregate (RUA) and forensic (RUF)
reports via
includes/DmarcParser.phpandincludes/ForensicReportParser.php, renders per-sender / per-IP / per-day authentication breakdowns, and performs live DNS verification for every standard above throughincludes/DnsChecker.php.
1. What is email authentication?
Email authentication is the set
of DNS-published, cryptographically-anchored,
RFC-defined mechanisms that let a receiving mail
server verify that an inbound message claiming
to be from a given domain was actually
authorised to be sent from the IP it arrived
from, signed by the domain it claims, and
aligned with the visible From: header the
recipient sees. None of the underlying SMTP
protocol mechanics (RFC 5321) authenticate the
sender — SMTP was designed in 1982 as a trust-
by-default mesh of cooperating mail servers, with
no built-in mechanism to verify that a server
claiming to deliver bank.example's
mail is in fact authorised to do so. Email
authentication is the layer that closes that gap
decades after the fact.
The seven standards in the ecosystem split cleanly into three core (the authentication trio that every domain publishing mail needs), three auxiliary (transport hardening and consumer-facing brand display), and one intermediate (ARC, the standard that preserves authentication results across forwarding hops):
- SPF (RFC 7208) — IP-level authorisation. Publishes which IPs are allowed to send mail on behalf of a domain.
- DKIM (RFC 6376) — message-level cryptographic signing. Receiver verifies the signature against a published public key.
- DMARC (RFC 7489) — policy + alignment + reporting. Demands that at least one of SPF or DKIM passes AND aligns with the From: header, and tells the receiver what to do when it does not.
- BIMI (draft-brand-indicators-for-message-identification) — consumer-facing brand display. Renders the sender's logo in supporting mail clients once DMARC enforcement is in place.
- MTA-STS (RFC 8461) — transport encryption hardening. Demands receivers use STARTTLS with valid certificate validation when delivering to this domain.
- TLS-RPT (RFC 8460) — transport-layer reporting stream. Receivers send daily reports of every TLS failure they observed.
- CAA (RFC 8659) — certificate-issuance authorisation. Constrains which certificate authorities may issue certificates for the domain.
- ARC (RFC 8617) — Authenticated Received Chain. Preserves the original SPF/DKIM/DMARC result across forwarding hops where SPF would otherwise break (e.g. mailing lists, .forward redirects).
Most operator effort goes into the core three. The auxiliary four are layered defences and visibility streams that pay off once the core three are in enforcement.
2. Why email authentication exists: the threat model
Three categories of attack drive the entire ecosystem:
- Domain spoofing — an
attacker sends a message with a forged
From: ceo@your-company.exampleheader from arbitrary IP infrastructure they control. Without email authentication, the recipient mailbox displays the spoofed From: name and the message looks indistinguishable from legitimate internal mail. DMARC + SPF + DKIM together close this attack: SPF rejects the attacker's IP, DKIM rejects the missing or invalid signature, DMARC binds those results to the visible From: domain. - Phishing — a spoofed message tricks the recipient into clicking a link, entering credentials, or downloading malware. Phishing relies on sender impersonation to bypass the recipient's social trust filters. Email authentication does not eliminate phishing (lookalike domains and compromised legitimate accounts remain), but it eliminates the cheapest variant — direct domain impersonation.
- Business Email Compromise
(BEC) — the highest-value attack
variant, where an attacker impersonates an
executive to trick finance staff into
wiring funds or releasing data. The
FBI IC3
consistently reports BEC as one of the
most expensive single attack categories.
DMARC at
p=rejecton every sending domain in an organisation is the primary defence against the direct-spoof variant of BEC.
Two further problem categories drive the auxiliary standards:
- Transport downgrade attacks
— a man-in-the-middle strips
STARTTLSfrom the SMTP session, causing the message to deliver over plaintext where the attacker can read or modify content. MTA-STS + TLS-RPT close this: MTA-STS demands the receiver use STARTTLS with valid certificate validation, TLS-RPT delivers daily reports listing every failure. - Certificate misissuance — a compromised or careless certificate authority issues a TLS certificate for a domain to a party not authorised by the domain owner. The misissued certificate could be used in a transport-layer MITM or a phishing page. CAA constrains which CAs may issue certs for the domain, limiting the blast radius of any single compromised CA.
3. The SMTP envelope plumbing: MAIL FROM vs From: header
The single concept that makes email authentication possible — and the single source of operator confusion — is the distinction between the SMTP envelope MAIL FROM (RFC 5321 Reverse-Path) and the visible From: header (RFC 5322). They live at different layers of the protocol stack and different standards anchor against each.
A typical SMTP conversation:
S: 220 mx.recipient.example ESMTP
C: EHLO mail.sender.example
S: 250 OK
C: MAIL FROM:<bounces@sender.example> ← envelope sender (RFC 5321)
S: 250 OK
C: RCPT TO:<user@recipient.example> ← envelope recipient
S: 250 OK
C: DATA
S: 354 End data with <CR><LF>.<CR><LF>
C: From: "CEO" <ceo@your-company.example> ← visible From: header (RFC 5322)
C: To: user@recipient.example
C: Subject: ...
C: ... message body ...
C: .
S: 250 OK
Note the two distinct sender domains:
bounces@sender.exampleis the envelope MAIL FROM. The receiver uses this address for bounce delivery (RFC 5321 §3.7). SPF evaluates this domain — it asks "is the connecting IP authorised by sender.example's SPF record?".ceo@your-company.exampleis the visible From: header. The recipient sees this in their inbox. DMARC alignment evaluates this domain — it asks "does the SPF-passing or DKIM-signing domain match this header?".
Without identifier alignment, an attacker could
publish an SPF record at their own
attacker.example domain, set MAIL
FROM to bounces@attacker.example
(SPF passes), and use any From: header they
want — including ceo@your-company.example.
Alignment is the mechanism that bridges the
envelope-vs-header gap: DMARC demands the SPF
or DKIM domain match the From: domain (strict
or relaxed), eliminating the spoof.
Three further headers matter for authentication debugging:
Authentication-Results:(RFC 8601) — the receiver's per-message verdict, added on inbound delivery. Lists each check (spf, dkim, dmarc) with pass / fail / none and the domain evaluated. The canonical debugging artefact.DKIM-Signature:(RFC 6376) — present on every signed message, carries the signature, selector, signing domain (d=), and signed-header list.ARC-*:— three header fields (ARC-Authentication-Results,ARC-Message-Signature,ARC-Seal) added by a forwarding hop to preserve the original authentication result; see RFC 8617.
4. The seven standards at a glance
The keystone reference for this page. Every standard mapped to its RFC, the layer it operates at, and the DNS anchor where it publishes.
| Standard | RFC | Layer | DNS anchor |
|---|---|---|---|
| SPF (Sender Policy Framework) | RFC 7208 | SMTP envelope (MAIL FROM) | <domain>
(TXT, v=spf1 ... -all) |
| DKIM (DomainKeys Identified Mail) | RFC 6376, RFC 8301, RFC 8463 | Message (signed headers + body) | <selector>._domainkey.<domain>
(TXT, v=DKIM1; k=rsa; p=<pubkey>) |
| DMARC (Domain-based Message Authentication, Reporting & Conformance) | RFC 7489, RFC 9091, draft-dmarcbis | Policy / alignment / reporting | _dmarc.<domain>
(TXT, v=DMARC1; p=...; rua=...) |
| BIMI (Brand Indicators for Message Identification) | draft-brand-indicators | Mail-client logo display | default._bimi.<domain>
(TXT, v=BIMI1; l=<svg-url>; a=<vmc-url>) |
| MTA-STS (SMTP MTA Strict Transport Security) | RFC 8461 | SMTP transport (STARTTLS) | _mta-sts.<domain>
(TXT, v=STSv1; id=...)
+ HTTPS policy file at
https://mta-sts.<domain>/.well-known/mta-sts.txt |
| TLS-RPT (SMTP TLS Reporting) | RFC 8460 | SMTP transport (reporting) | _smtp._tls.<domain>
(TXT, v=TLSRPTv1; rua=...) |
| CAA (Certification Authority Authorization) | RFC 8659, RFC 8657 | TLS certificate issuance | <domain>
(CAA RR 257,
0 issue "letsencrypt.org") |
| ARC (Authenticated Received Chain) | RFC 8617 | Message (preserved auth results) | (per-message headers, no DNS record — receivers verify against the forwarder's DKIM key) |
5. How the standards interlock: layered defence-in-depth
The seven standards form a layered model where each layer addresses one specific failure mode and the layers compose to close the full attack surface:
- SPF closes the arbitrary-IP-spoof: an attacker cannot send from an IP not listed in the sender's SPF record (modulo forwarding edge cases, which is why DKIM exists).
- DKIM closes the in-transit-tampering and forwarding-survives gaps: the signature binds the message body and signed headers to the domain's public key regardless of which IP delivered the message.
- DMARC closes the alignment gap: SPF or DKIM passing on a domain the recipient never sees (e.g. envelope MAIL FROM at a SaaS provider's domain) is not enough — DMARC demands the passing identifier aligns with the visible From: header.
- ARC closes the forwarder-breaks-SPF gap: a mailing list or .forward redirect that modifies headers can preserve the original DMARC verdict for the downstream receiver to honour.
- MTA-STS closes the transport-downgrade gap: receivers cannot fall back to plaintext SMTP when the policy is in enforce mode.
- TLS-RPT closes the silent-transport-failure gap: operators learn about TLS failures via daily reports rather than discovering them weeks later when mail is missing.
- BIMI closes the recipient-cannot-tell-if-authenticated gap (partially): supporting clients display a sender logo that visually confirms the message passed DMARC.
- CAA closes the CA-misissuance gap: only the named CAs may issue certs for the domain, constraining the blast radius of any single compromised CA.
The model is defence-in-depth: removing any one layer weakens the overall posture, but no single layer is sufficient on its own. SPF without DMARC is bypassable by header spoofing; DMARC without SPF or DKIM has nothing to align; MTA-STS without TLS-RPT silently fails when receivers cannot fetch the policy file. Deploy the full stack.
6. The canonical deployment sequence
Decades of operator experience have converged on a single recommended sequence. Following it eliminates almost every self-inflicted email- outage class:
- Phase 1 — Publish SPF.
Inventory every legitimate sending source
(mail server, SaaS provider, marketing
platform). Publish a TXT record at the
domain apex:
v=spf1 include:_spf.google.com -all(example). Use-all(hard fail), not~all(soft fail) — the soft-fail option exists only for rollout testing. Keep the record under the 10-lookup limit; flatten if needed. - Phase 2 — Publish DKIM.
Enable signing in every sending platform.
Each platform generates a key pair and
gives you a public key to publish at
<selector>._domainkey.<domain>. Use RSA-2048 minimum (RFC 8301); avoid RSA-1024 which is cryptographically weak. Plan key rotation in advance — most platforms support dual-publication so the new key warms up before the old one is retired. - Phase 3 — Publish DMARC at
p=none. Add a TXT record at_dmarc.<domain>:v=DMARC1; p=none; rua=mailto:dmarc-reports@<domain>.p=nonetells receivers "do not change disposition based on DMARC, but send me daily aggregate reports". This is the zero-risk reporting-only phase. - Phase 4 — Alignment fix-up.
Read the aggregate reports for 2-6 weeks.
Every legitimate sender should appear with
SPF or DKIM (preferably both) passing AND
aligned with the From: header. Misaligned
senders need fixing: SaaS providers
typically support either a DKIM
delegation (you publish a CNAME at
<selector>._domainkey.<domain>pointing at their key) or a custom MAIL FROM domain (so SPF aligns). - Phase 5 — Advance to
p=quarantine. Once every legitimate sender is aligned, change the DMARC record top=quarantine. Receivers will deliver DMARC-failing mail to spam. Continue monitoring reports for unexpected failures. - Phase 6 — Advance to
p=reject. After 1-3 months atp=quarantinewithout unexpected failures, change top=reject. DMARC-failing mail is now bounced at the SMTP boundary. Spoofing on this domain is no longer possible against receivers that honour DMARC. - Phase 7 — Publish MTA-STS +
TLS-RPT. Add the MTA-STS DNS
record (
v=STSv1; id=...), publish the HTTPS policy file athttps://mta-sts.<domain>/.well-known/mta-sts.txtin testing mode, deploy TLS-RPT (v=TLSRPTv1; rua=mailto:...), wait for clean TLS-RPT reports, then advance MTA-STS to enforce mode. - Phase 8 — Publish BIMI (optional, brand-protection-conscious senders). Requires DMARC at p=quarantine or p=reject and an SVG Tiny PS logo. Yahoo / Gmail / Apple Mail require a VMC (Verified Mark Certificate) from DigiCert or Entrust.
- Phase 9 — Publish CAA
(security hardening). List the specific
CAs authorised to issue certs for the
domain (
0 issue "letsencrypt.org") plus an iodef contact for misissuance alerts.
Never skip from p=none to
p=reject — this is the
single most common self-inflicted email-outage
cause in DMARC rollouts. The p=quarantine
intermediate phase exists specifically to give
operators a recoverable middle state where
failed mail goes to spam rather than bouncing.
7. Operator decision tree
Where to start, depending on the current state of the domain:
- No SPF, no DKIM, no DMARC → start with the SPF pillar. Get SPF right before adding any other record. SPF alone is sufficient to stop the lowest-effort spoofing class.
- SPF in place, no DKIM → publish DKIM next. See the DKIM pillar. Most sending platforms have one-click DKIM key generation; the only work is publishing the resulting public key in DNS.
- SPF + DKIM in place, no DMARC
→ publish DMARC at
p=nonewithrua=mailto:.... See the DMARC rollout deep dive. The reports flowing in over the next 2-6 weeks tell you exactly which senders are misaligned. - DMARC at
p=nonewith reports flowing → use the DMARC aggregate reports deep dive to read the data, then follow the alignment deep dive to fix every misaligned sender. Advance throughp=quarantinetop=rejectper the rollout spoke. - DMARC at enforcement (p=quarantine or p=reject) → layer MTA-STS and TLS-RPT for transport hardening, then BIMI for brand display.
- Full stack deployed → layer CAA records to constrain certificate- issuance authorisation. Keep monitoring DMARC aggregate reports indefinitely — new senders are discovered as the organisation grows.
8. Ten best practices
- Inventory every sender before publishing any record. Marketing platforms, CRM systems, transactional relays, partner integrations, and shadow IT all need to appear in your SPF or DKIM config.
- Always use SPF
-all, not~all, in production. The soft-fail option exists for testing. Receivers honour-allconsistently;~allis largely ignored. - Use RSA-2048 minimum DKIM keys (RFC 8301). RSA-1024 was deprecated in 2018; ed25519 (RFC 8463) is acceptable where the sending platform and receivers both support it.
- Stage rollouts: SPF first, DKIM
second, DMARC third. Never
publish DMARC before SPF and DKIM are
verified working — DMARC at
p=rejecton a domain without SPF or DKIM is self-inflicted email suicide. - Always start DMARC at
p=none— the reporting-only phase. Even if you believe every sender is aligned, the daily reports almost always surface unknown senders the operator did not know existed. - Pre-DMARC rollout: audit
subdomains. Use
sp=andnp=(RFC 9091) to control subdomain policy independently. Unused subdomains should publish their ownp=rejectDMARC record to prevent abuse. - Deploy MTA-STS in testing mode first. Wait for clean TLS-RPT reports before advancing to enforce. Enforce-mode MTA-STS with a broken policy file blocks all inbound mail from MTA-STS-aware senders.
- Pin a stable DKIM selector rotation schedule — at least every 12 months for high-value domains, every 6 months for industries with regulatory pressure. Document the rotation procedure so on-call staff can rotate under pressure.
- Monitor DMARC aggregate reports indefinitely. The reports are the only visibility you have into who is sending mail claiming your domain. DMARC Analyzer surfaces per-sender trends; alert on new senders appearing.
- Document the full stack — every TXT record, every selector, every CA on the CAA record. Future on-call staff need to debug under pressure without rediscovering the config from scratch.
9. Ten common mistakes
- Jumping from
p=nonetop=rejectwithout thep=quarantineintermediate phase. The single most common self- inflicted email outage.p=quarantinesends failures to spam (recoverable);p=rejectbounces them at the SMTP boundary (unrecoverable). - Multiple SPF records on the same
domain. RFC 7208 §3.2 mandates
a single record; multiple records cause
a
permerror. Merge into one record usinginclude:directives. - Exceeding the SPF 10-lookup
limit. Every
include:,a:,mx:,exists:,redirect=counts as a DNS lookup. Over 10 → SPFpermerror. Flatten or remove unused providers. - DKIM signing with RSA-1024. Deprecated since RFC 8301 (2018). Modern receivers downgrade the result or refuse to verify entirely.
- DMARC
rua=mailbox on the same domain the DMARC protects, with no cross-domain authorisation. Receivers cannot deliver reports to a mailbox that fails DMARC. Use a different domain or publish a cross-domain authorisation record per RFC 7489 §7.1. - SPF
+all(allow any IP). This makes the record meaningless and actively harmful — receivers treat the domain as never having published SPF. - Publishing BIMI before DMARC is
at enforcement. BIMI requires
DMARC at
p=quarantineorp=reject; supporting clients will not render the logo otherwise. BIMI is the reward for completing the DMARC rollout, not a parallel project. - MTA-STS in enforce mode with a
wildcard mismatch. The policy
file's
mx:entries must match the domain's MX records. A renamed MX without an MTA-STS update silently breaks inbound from MTA-STS-aware senders. - CAA records without
iodef=. Theiodeftag tells CAs where to send misissuance reports. Without it, a misissuance event goes undetected until the cert is used. - Treating DMARC reports as one-time work. New senders appear constantly (a new SaaS deployment, a new partner integration, a new marketing platform). Indefinite monitoring is the ongoing cost of DMARC enforcement.
10. Troubleshooting
- "My message is being marked as spam despite DMARC pass". DMARC pass does not guarantee inbox delivery — receiver-side reputation systems (Gmail Postmaster, Microsoft SNDS) weigh content signals, sender reputation, recipient engagement, and many other factors. Use Gmail Postmaster Tools and Microsoft SNDS for the full picture.
- "DMARC reports show SPF pass + DKIM pass but DMARC fail". This is an alignment failure. The SPF envelope-domain or the DKIM signing domain does not match the From: header domain. See the alignment deep dive for the SaaS-sender root- cause walkthrough.
- "My SPF record is failing with permerror". Most likely cause: the 10-lookup limit. Run domain security checker or use the SPF pillar's flattening guidance.
- "DKIM signature fails on some receivers". Usually a canonicalization mismatch or a header modification by an intermediate relay. Use email header analyzer to inspect the signature against the actual headers.
- "No DMARC reports arriving". See the aggregate reports deep dive Q5 — most common causes: the rua mailbox itself fails DMARC, the records have not propagated (TTL + 24h), or the mailbox spam filter is flagging them.
- "MTA-STS reports show TLS failures". The TLS-RPT deep dive documents every result-type and the remediation for each.
- "Where do I start debugging?" Three tools complement each other: (1) DMARC reports for production reality, (2) email header analyzer for individual message diagnosis, (3) domain security checker for live DNS validation.
11. Frequently asked questions
- What is email authentication?
- Email authentication is the set of DNS- published, cryptographically-anchored, RFC-defined mechanisms that let a receiving mail server verify a message claiming to be from a given domain was actually authorised to be sent. The three core standards are SPF (RFC 7208, IP authorisation), DKIM (RFC 6376, cryptographic signing), and DMARC (RFC 7489, policy + alignment + reporting). Auxiliary standards (BIMI, MTA-STS, TLS-RPT, CAA) layer additional defences and reporting streams.
- Why do SPF, DKIM, and DMARC all exist if they overlap?
- They are complementary, not redundant. SPF authorises specific IPs, DKIM cryptographically signs the message body, and DMARC ties them together by demanding at least one passes AND aligns with the visible From: header — and tells the receiver what to do if not. SPF alone breaks under forwarding; DKIM alone says nothing about envelope IP authorisation; DMARC alone needs SPF and DKIM to evaluate.
- What is the difference between SPF, DKIM, and DMARC?
-
SPF (RFC 7208) is a TXT record listing
which IPs may send for the domain — it
evaluates the SMTP envelope MAIL FROM.
DKIM (RFC 6376) is a public key plus a
DKIM-Signature header — it cryptographically
verifies the From: header was not
tampered with. DMARC (RFC 7489) is a TXT
record at
_dmarcpublishing a policy and report destinations — it instructs the receiver what to do when SPF and DKIM both fail or fail to align with the visible From:. - In what order should I deploy email authentication?
-
SPF first, DKIM second, DMARC at
p=nonethird (reporting only), 2-6 weeks of report-driven alignment fix-up, DMARC atp=quarantine, DMARC atp=reject, then layer MTA-STS + TLS-RPT for transport hardening, BIMI for brand display, and CAA for certificate-issuance constraint. Never skip fromp=nonetop=reject. - What is the difference between the envelope MAIL FROM and the visible From: header?
- The envelope MAIL FROM (RFC 5321 Reverse-Path) is exchanged between mail servers during the SMTP session — SPF evaluates this. The visible From: header (RFC 5322) lives inside the message body — the recipient sees it in their client, and DMARC alignment anchors against it. The two domains can legitimately differ (a SaaS sender's MAIL FROM domain vs the customer's From: domain).
- Do I need MTA-STS and TLS-RPT if I already have DMARC?
-
Yes — they solve different problems.
DMARC authenticates the sender (stops
From: impersonation). MTA-STS and
TLS-RPT harden the transport (stop
STARTTLS downgrade attacks). A domain at
DMARC
p=rejectwithout MTA-STS still leaks content over plaintext SMTP when receivers fall back to unencrypted delivery. - What is the role of BIMI in email authentication?
- BIMI is the consumer-facing payoff of a successful DMARC deployment. Once DMARC is at enforcement (p=quarantine or p=reject), publishing a BIMI record pointing at an SVG Tiny PS logo causes supporting mailbox providers (Gmail, Yahoo, Apple Mail, Fastmail) to render the logo next to the sender name in the inbox.
- How do I know if my email authentication is working?
-
Four complementary checks: (1) DMARC
aggregate reports — daily XML
descriptions of every authentication
outcome (DMARC Analyzer's
includes/DmarcParser.phpingests these), (2) email header analysis — paste raw headers into the header analyzer for per-message diagnosis, (3) live DNS verification — domain security checker validates every record, (4) external reference services (mail-tester.com etc.). Use all four.
13. Get started with email authentication
DMARC Analyzer is the operator console for
the full email-authentication stack. The
dashboard ingests DMARC aggregate (RUA) and
forensic (RUF) reports via
includes/DmarcParser.php and
includes/ForensicReportParser.php,
surfacing per-sender / per-IP / per-day
authentication breakdowns; the domain security
checker runs live DNS lookups across all seven
standards through
includes/DnsChecker.php; the
email header analyser at
header_analyzer.php diagnoses
individual message failures; and the DNS
record generator at
dns_generator.php produces
syntactically-correct records for SPF, DKIM,
DMARC, BIMI, MTA-STS, TLS-RPT, and CAA.