VerifyEmail
Free tool

Free Email Header Analyzer

Paste raw message headers and get a plain-English readout: SPF, DKIM and DMARC verdicts, alignment, the delivery path, and red flags. Sign up free and the product runs the analysis on your 250 free credits — no credit card required.

Analysis runs inside the product with your free credits — every new account starts with 250. No credit card required. You’ll paste your headers again after signing up.

How to get the raw headers
  • Gmail: open the message → the menu (top right of the message) → Show original → copy everything.
  • Outlook (web): open the message → ViewView message source. Desktop Outlook: FilePropertiesInternet headers.
  • Apple Mail: ViewMessageAll Headers (or Raw Source).
  • Yahoo Mail: open the message → View raw message.

Diagnosing a wider deliverability problem? See deliverability testing →

What this analyzer reads

Everything a receiving mail server stamped onto one message, decoded inside the product on your free credits. Preventing the next bad send is the full product's job too.

  1. 1 Authentication

    SPF, DKIM & DMARC verdicts from Authentication-Results

    Covered by free credits
  2. 2 Alignment

    Do the authenticated domains match the From domain?

    Covered by free credits
  3. 3 Delivery path

    Every Received hop, with per-hop delays flagged

    Covered by free credits
  4. 4 Key fields & red flags

    Reply-To, Return-Path, Message-ID, List-Unsubscribe, spam verdicts

    Covered by free credits
  5. 5 Pre-send verification

    Which addresses will bounce before you send

    In the full product
  6. 6 Ongoing monitoring

    Deliverability health across sends, not one message

    In the full product

What are email headers?

Every email carries a hidden log of its own journey. Before the subject line and body you read, there are dozens of header fields: who the message claims to be from, which servers handled it, when each handoff happened, and — most usefully — the results of the authentication checks the receiving server ran the moment it accepted the message. Mail clients hide all of this by default, but it's plain text, and once you can read it, a header answers questions nothing else can: was this message really sent by the domain it claims? Where did it slow down? Why did DMARC fail?

Headers are written newest-first: each server that handles the message prepends its own Received: line and any verdicts to the top. So the top of the header block describes the final delivery, and the bottom describes the origin. The analysis unfolds the wrapped lines, indexes every field, and reads the story back in order.

How to read Authentication-Results

The single most valuable header is Authentication-Results, stamped by the receiving server. A typical Gmail example reads: Authentication-Results: mx.google.com; dkim=pass header.i=@example.com header.s=mail2026; spf=pass smtp.mailfrom=bounces@mail.example.com; dmarc=pass (p=QUARANTINE) header.from=example.com. Reading it piece by piece: mx.google.com is the server that ran the checks. dkim=pass means the cryptographic signature verified — the message wasn't altered, and the domain in header.i (with the DNS selector in header.s) vouches for it. spf=pass means the sending IP was authorized by the SPF record of the envelope domain in smtp.mailfrom — note that it's mail.example.com, not the From address. And dmarc=pass is the summary judgment: at least one of the two passed and aligned with the visible From domain, whose published policy (p=QUARANTINE) would otherwise have sent the message to spam.

One caveat before you trust a verdict: these results are stamped by the receiver. A message copied from your own Sent folder has no Authentication-Results at all, because no receiving server has judged it yet. To test your own sending, mail yourself at Gmail or another major provider and analyze the received copy.

Alignment: why spf=pass can still fail DMARC

This is the misunderstanding behind most DMARC failures. SPF and DKIM each authenticate a domain — but not necessarily your domain. DMARC's extra demand is alignment: the domain that passed must match the domain in the From header that your recipient actually sees. Under the default relaxed mode, a match means sharing the same registrable domain — bounces@mail.example.com aligns with updates@example.com because both boil down to example.com. Under strict mode the domains must be identical.

Now consider a typical ESP setup: your campaigns go out with an envelope sender on the ESP's own domain. SPF checks that domain, passes — and contributes nothing to your DMARC, because esp-provider.com doesn't align with yourbrand.com. If your DKIM signature is also the ESP's default (d=esp-provider.com) rather than your own domain, DMARC fails on a message where both SPF and DKIM show pass. It's the #1 silent DMARC killer, and it's invisible until you read the headers. The fix: a custom return-path domain, an aligned DKIM key, or both. Check what your domain publishes with the free SPF checker, DKIM checker and DMARC checker.

Reading the Received chain

Each Received: line records one handoff — which server passed the message to which, from what IP, at what time. Read bottom-up, the chain traces the message from the sender's infrastructure to the recipient's inbox. Two things are worth looking for. First, the route itself: an unexpected relay in the middle can reveal a forwarder, a security gateway, or (in a phishing sample) infrastructure that has nothing to do with the claimed sender. Second, the timestamps: the gap between consecutive hops is how long the earlier server sat on the message. Healthy hops take a second or two; a gap of minutes points to greylisting, throttling by the receiver, or an overloaded queue — the usual suspects when someone says "your email arrived three hours late." The analysis computes every gap and flags unusually slow hops.

Red flags worth acting on

  • Reply-To on a different domain than From — the recipient sees a trusted sender, but replies flow somewhere else entirely. It has legitimate uses, but it's also the single most common pattern in payment-fraud phishing.
  • Missing Message-ID — every real mail server generates one. Its absence suggests a crude script, and spam filters score it accordingly.
  • Failing or absent authenticationspf=fail with dkim=fail means the message has no verifiable connection to its claimed sender. On your own mail, it means your DNS setup needs fixing before mailbox providers lose patience.
  • Unaligned passes — everything says pass, DMARC still fails. See alignment above; fix the return-path or the DKIM d= domain.
  • No one-click List-Unsubscribe on bulk mail — since 2024, Gmail and Yahoo require RFC 8058 one-click unsubscribe from bulk senders. Missing it doesn't just annoy recipients; it costs you inbox placement.

What headers can't tell you

A header is a post-mortem of one message. It can't tell you how mailbox providers rate your sending domain this week, which of the 40,000 addresses on your list will hard-bounce tomorrow, or whether your next campaign lands in the inbox or the spam folder. Those answers need measurement before and across sends, not after one: verify addresses before they ever see a campaign, and use deliverability testing to watch placement over time. Reading headers is how you diagnose the last problem; verification and monitoring are how you avoid the next one.

Headers diagnose one email. Fix the next thousand.

Your 250 free credits cover the header analysis — and everything else: verifying the addresses that would have bounced, and testing where your next campaign actually lands. No card required.

Email header analyzer — FAQ

How do I get the raw headers in Gmail, Outlook or Apple Mail?
In Gmail, open the message, click the ⋮ menu at the top right of the message and choose Show original — copy everything on that page. In Outlook on the web, it's … → ViewView message source; in desktop Outlook, FilePropertiesInternet headers. In Apple Mail, use ViewMessageAll Headers or Raw Source. In Yahoo Mail, it's … → View raw message. You can paste the whole thing — the analysis only needs the header block, everything before the first blank line.
Where are my pasted headers analyzed?
Inside the product. Clicking Analyze headers takes you to the free signup — nothing you type on this page is submitted anywhere — and after you sign up, you paste your headers into the app, where they're analyzed to produce your report: SPF, DKIM and DMARC verdicts, alignment, the delivery path and red flags.
Is this free?
Yes — every new account starts with 250 free credits, no credit card required, and you can spend them on any check: header analysis, email verification, inbox placement tests.
What does spf=pass dkim=fail mean?
The sending server's IP was authorized by the envelope domain's SPF record, but the DKIM signature didn't verify — usually because the message was modified in transit (a forwarder or mailing list rewrote it) or the public key published in DNS doesn't match the signature. One passing mechanism can still carry DMARC if it aligns with the From domain. Check the domain's setup with the free SPF checker and DKIM checker.
Why did DMARC fail when SPF passed?
Alignment. DMARC doesn't just ask whether SPF passed — it asks whether SPF passed for a domain that matches the visible From domain. If your ESP sends with an envelope from bounces.esp-provider.com while your From is you@yourbrand.com, SPF passes for the ESP's domain and contributes nothing to your DMARC. The fix is a custom return-path (bounce) domain on your own registrable domain, or an aligned DKIM signature with d=yourbrand.com. The free DMARC checker shows what policy your domain publishes.
What is Return-Path vs From?
From is the address people see in their mail client. Return-Path (the envelope sender, or MAIL FROM) is where bounces go, and it's the address SPF is actually checked against. They routinely differ when an ESP handles your bounces — that's normal and healthy. It only becomes a problem for DMARC when the Return-Path domain doesn't share a registrable domain with From and you don't have an aligned DKIM signature to compensate.
What's a normal number of Received hops?
Most direct mail lands in 3–6 hops: the sender's internal handoff, the transfer to the receiving provider, and a couple of internal relays on the receiving side. Forwarding, mailing lists and security gateways add more; 10+ isn't automatically bad. What matters more than the count is the time between hops — a hop that took minutes points to greylisting, a throttled queue, or an overloaded relay, and the analysis flags unusually slow hops for you.
Why is there no Authentication-Results header in my message?
Authentication verdicts are stamped by the receiving server at delivery time. If you copied the message from your own Sent folder, or from a server that doesn't run authentication checks, there's nothing to record. To see real SPF/DKIM/DMARC verdicts, send the email to a mailbox you control at a major provider (Gmail stamps every message) and pull the raw headers from the received copy.
Can headers tell me why my email went to spam?
Partially. Failing authentication, a mismatched Reply-To, a missing Message-ID or a spam-filter verdict header all show up in the header report and are worth fixing. But headers describe one message, after the fact — they can't measure your sender reputation, list quality, or where the next campaign will land. That's what deliverability testing and pre-send email verification are for.

Know before you send.

A header tells you what went wrong after the fact. VerifyEmail catches bad addresses and placement problems before the send — starting with 250 free credits.

Includes 250 free credits · No credit card required