Paste the message source
Gmail: open the message → ⋮ menu → Show original → copy to clipboard. Outlook: File → Properties → Internet headers. Nothing you paste is uploaded — parsing happens on this page, with no network requests.
How it works
Bottom — origin
The first server the message touched. The IP here is as close to the sender as headers get.
Middle — relays
ESP outbounds, forwarders, scanning gateways. Long delays between stamps show up here.
Top — delivery
The recipient’s server. Its Authentication-Results header is the verdict that actually decided placement.
Grab the raw source
Show original in Gmail, Internet headers in Outlook, View raw message in Yahoo. Copy everything.
Paste and analyze
The parser unfolds the headers, orders the hops oldest-first and times each handoff.
Read the verdicts
SPF, DKIM and DMARC as the receiver judged them, plus whether your signing and bounce domains align.
Why headers beat DNS checks when a campaign is misbehaving
The SPF, DKIM and DMARC checkers on this site tell you what your DNS publishes. The Authentication-Results header tells you what a real receiving server actually decided about a real message. When placement drops on a domain that looks clean in DNS, the header of a delivered test message is the ground truth: it shows which identity SPF was evaluated against, which d= domain signed, and whether DMARC passed on alignment or squeaked through on one channel only.
The alignment trap most senders miss
A DKIM pass is worthless for DMARC if the signing domain does not match the From domain. Plenty of ESPs sign with their own domain by default, so the header shows dkim=pass and dmarc=fail in the same line. Same story on SPF: it is evaluated against the Return-Path, not the From address, so a bounce domain that differs from your From domain at the organizational level means SPF alone can never satisfy DMARC. This tool checks both alignments explicitly and tells you which leg your DMARC pass is standing on.
What the hop delays tell you
Each Received stamp carries a timestamp, so the gap between consecutive hops is measurable. A healthy transit is a few seconds end to end. A multi-minute wait before one specific hop usually means greylisting (a first-contact deferral), a scanning gateway holding the message, or queuing at a throttled relay. If your follow-ups land minutes late at one client while everything else is instant, this table shows exactly where the time went.
About tracing the sender
The bottom of the chain gets you the first public IP that handled the message. For anything sent through Gmail, Microsoft 365 or a commercial ESP, that IP belongs to the provider’s infrastructure, not the sender’s machine — webmail providers stopped exposing client IPs years ago. What the origin still reliably tells you is which platform sent the mail, which is usually the useful question when you are working out whether a message is legitimate.
How to get the raw headers out of your mail client
| Client | Where to look |
|---|---|
| Gmail (web) | Open the message → the three-dot menu → Show original. |
| Outlook (web) | Open the message → three dots → View → View message source. |
| Outlook (desktop) | Double-click to open the message → File → Properties → Internet headers. |
| Apple Mail | View → Message → Raw Source. |
| Thunderbird | View → Message Source, or Ctrl+U. |
| Superhuman / Spark / others | Look for "show original", "view source" or "raw message" in the message menu. |
You need the whole block from the top of the message down to the body, not just the visible From and Subject lines. The parts that matter — Authentication-Results, Received and DKIM-Signature — sit above anything a mail client normally shows you.
Reading the Authentication-Results line
| Verdict | What it means | What to do |
|---|---|---|
| spf=pass | The sending IP was authorised — but for the Return-Path domain, which the recipient never sees. | Check the domain listed beside it matches your From domain. |
| spf=fail | The IP is not in the record. Common on forwarded mail and unavoidable there. | If it is direct mail, your SPF record is missing the sender. |
| spf=softfail | Not authorised, record ends ~all. Accepted but marked. | Same fix as fail — the sender is not listed. |
| spf=none | No SPF record published at all. | Publish one. This is a bad look in 2026. |
| spf=permerror | The record is broken — two records, syntax error, or over ten lookups. | Run the lookup counter. |
| dkim=pass | A valid signature — but check the d= domain. | If d= is your ESP, it cannot satisfy DMARC. |
| dkim=fail | Signature did not verify. Often the body was modified in transit. | Check for disclaimer appenders and mailing lists. |
| dmarc=pass | SPF or DKIM passed and aligned with the From domain. | Nothing. This is the target state. |
| dmarc=fail | Neither mechanism aligned, even if both passed individually. | Alignment problem — see below. |
The three domains to compare
When DMARC fails while SPF and DKIM pass, the answer is always in the same three places. Pull them out of the headers and put them side by side:
- The From domain — in the
From:header. The only one your recipient sees. - The Return-Path domain — what SPF was actually checked against.
- The
d=domain — insideDKIM-Signature. What DKIM was checked against.
DMARC needs at least one of the second or third to match the first. If neither does, both checks pass on their own terms and DMARC fails anyway. The full explanation is in why DMARC fails when SPF and DKIM pass.
Google Workspace below Google's list price
I can sell licences at reseller price, under the public price you see above — and set the tenant up properly at the same time. Domains verified, DNS and authentication configured, users provisioned in bulk, sending limits and signatures set, OAuth connected to Instantly or Smartlead.
Sensible from a handful of seats upward, and the saving compounds with every seat you add. Tell me your seat count and I will send a price.
Frequently asked questions
Where do I find the full email headers?
In Gmail open the message, click the three-dot menu and choose Show original. In Outlook double-click the message, then File and Properties — the headers are in the Internet headers box. In Yahoo Mail use More and View raw message. In Apple Mail use View, Message, All Headers. Copy everything and paste it into the box above.
Can this tool find the exact person or location who sent an email?
No, and neither can any header analyzer. Messages sent through Gmail, Microsoft 365 or a commercial ESP show the provider's server IP, not the sender's device. The origin IP identifies the sending platform and sometimes the region of its data center. Only the sending provider, under legal process, can map a message to an account.
Why does the receiver's Authentication-Results header matter more than my DNS records?
DNS shows intent; Authentication-Results shows the outcome. It records the SPF, DKIM and DMARC evaluation the receiving server actually performed on that specific message, including which domains were checked. If DNS looks correct but real messages show a fail, the header tells you which identity broke — usually a Return-Path or signing domain that does not align with the From domain.
Is it safe to paste email headers here?
Yes. The parser runs entirely in your browser with no network requests — headers are never uploaded, stored or logged. If you are still cautious, strip the Subject and body before pasting; the routing and authentication analysis only needs the Received, Authentication-Results, DKIM-Signature, From and Return-Path lines.
How do I check if an email passed SPF, DKIM and DMARC?
Open the message, view its raw source, and paste the headers above. The Authentication-Results header written by the receiving server carries the verdicts — spf=, dkim= and dmarc= — along with the domain each was evaluated against. That last part matters most: a pass against the wrong domain does nothing for DMARC.
Where do I find email headers in Gmail?
Open the message, click the three-dot menu at the top right of the message itself rather than the toolbar, and choose Show original. That opens the full raw source in a new tab, which you can copy in one go. Outlook on the web calls the same thing View message source.
What does dkim=pass but dmarc=fail mean?
The signature was cryptographically valid, but the domain that signed it — the d= value — is not your From domain, so it cannot satisfy DMARC alignment. This is the default behaviour of many sending platforms, which sign with their own domain until you publish their keys under yours. Fixing it means publishing DKIM in your own DNS.
Why does SPF pass but DMARC fail?
SPF is evaluated against the Return-Path, which recipients never see and which your sending platform often sets to its own domain. DMARC requires the passing domain to align with the visible From domain. If the platform supplies the Return-Path, SPF passes for them and DMARC still fails for you — unless DKIM is aligned instead.
Can email headers tell me who really sent a message?
They tell you which platform, not which person. The first public IP in the chain belongs to Gmail, Microsoft or the ESP that handled the message — webmail providers stopped exposing the originating client's IP years ago. For judging whether a message is legitimate, the platform plus the authentication verdicts is usually the more useful answer anyway.
What causes long delays between hops?
Each Received line carries a timestamp, so the gap between two hops is measurable. A multi-minute pause at one specific hop usually means greylisting on first contact, a scanning gateway holding the message for inspection, or queuing at a throttled relay. Healthy end-to-end transit is a few seconds.
Is it safe to paste email headers into this tool?
Parsing happens entirely in your browser — the headers are not uploaded anywhere. That said, headers can contain recipient addresses and internal hostnames, so apply the same judgement you would to any tool handling client data.
Last reviewed
What to run next
The checks that most often follow this one.
More in this category
Guides that go deeper
When the tools tell you something is wrong
The diagnostics here are free and always will be. When the fix is bigger than a DNS record, this is the work I do.
Deliverability rescue
Mail landing in spam, replies gone quiet, or a domain suddenly blocked. I find the actual cause rather than guessing, and fix it.
- Authentication and alignment failures
- Blocklist delistings and reputation repair
- Gateway and filter-level blocks
- A written report on what broke and why
Email & sending infrastructure
Sending domains, inboxes, authentication and warmup, built to survive volume instead of burning down in a month.
- Domain and inbox fleets at any scale
- SPF, DKIM, DMARC and tracking domains
- Google Workspace and Microsoft 365 inboxes
- Handover documentation you actually own
Domain, DNS & migration
Changing registrar, mail provider or host without a day of downtime or a week of mail silently failing.
- Registrar and nameserver moves
- Workspace and Microsoft 365 migrations
- MX, SSL and subdomain cutover
- Staged rollout with rollback at every step
Monitoring & retainer
Infrastructure drifts. Records get edited, certificates expire, domains get listed. Ongoing eyes on the fleet.
- Scheduled checks across every domain
- Alerts before your clients notice
- Monthly reporting
- Priority response when something breaks
Start with a call
Bring a domain and the symptom. I will tell you what is actually wrong and whether you need me at all — plenty of people leave that call able to fix it themselves.
Thirty minutes, no pitch
We will run the checks together on your actual domains, and you will leave knowing what is broken, what it takes to fix, and what it should cost. If that is a job you can do in-house, I will say so.