How this analyzer works
Paste the headers of one message and the analyzer does three things:
- Delivery path. It reads every
Received:header, oldest first, and shows each hop's sender, receiver, protocol and the delay since the previous hop.ESMTPSand similar markers show that a hop used TLS. - What the receiver recorded. It reads the topmost
Authentication-Resultsheader: the verdict the final receiving server reached for SPF, DKIM and DMARC when the message arrived. It also notes ARC sets added by forwarders or mailing lists. - A re-check against today's DNS. It finds the connecting IP and envelope domain and re-runs SPF. It fetches each DKIM signature's public key and verifies the header signature, and it compares every domain with the From: domain to work out DMARC alignment.
How to read the results
The recorded vs. today table is the key view:
- Recorded fail, today pass: something has been fixed since the message was sent, or the failure was caused in transit (a forwarder, a gateway rewriting the message).
- Recorded pass, today fail: something changed in DNS since. A DKIM key was removed, an SPF include was dropped, or the record is now over the lookup limit. Messages sent today would fail.
- Aligned? fail: the check passed, but for a different domain than the From: address. This is the most common cause of "SPF passes but DMARC fails"; see DMARC alignment, explained.
DKIM "unverified" means the key exists, but the signature couldn't be confirmed from the pasted text. Copying headers often changes whitespace, which breaks "simple" canonicalisation, and we verify header signatures only (RSA-SHA256, and Ed25519 where your browser supports it), never the body hash. The receiver's recorded result is the authoritative one for that message.
Privacy
Headers contain names, email addresses and internal server names. The analyzer runs entirely in your browser: the headers are never sent to our server, stored or logged. The only outbound queries are DNS lookups, sent from your browser to public resolvers, for the domains and selectors in the headers. If you'd rather not paste real addresses, replace the local part (before the @) with anything you like. The analysis only needs the domains.
Which headers to paste
Copy them from the receiving mailbox, where the problem showed up, not from the sender's Sent folder: only the receiver's copy has the Authentication-Results you need. The guide to reading email headers covers where to find them in each mail client and what every line means.
Updated 26 October 2026