Email Header Analyzer

The free ProofSnap Email Header Analyzer, last updated in October 2026, reads the raw headers or the .eml file of any message and shows the route it took through each mail server, the delay at every hop, the SPF, DKIM, DMARC and ARC results, and the attachment hashes. It runs in your browser, so nothing is uploaded.

By Radim Motycka, Founder and Lead Engineer, ProofSnap, 10+ years in cryptographic protocol design Updated

Analyze an email's headers

Runs entirely in your browser. Nothing is uploaded; you can check this in your browser's Network tab.

Paste the headers from Show original (Gmail), View message details (new Outlook), Internet headers (classic Outlook) or View raw message (Yahoo), or load a saved .eml file to also check the DKIM body hash and hash the attachments.

Certify your thread · from $59.99

Need it sealed for a dispute? We turn the thread into a numbered transcript with the full headers, hashed attachments and an eIDAS qualified timestamp, delivered in 48 hours.

How to get the full headers of an email

Your mail app hides the headers and shows only From, To, Subject and Date. The full set is a block of plain text above the message body. This is where to find it in the common mail apps:

  1. Gmail: Open the message, click the three dots next to Reply and choose Show original. Copy the full text, or click Download original to get an .eml file.
  2. Classic Outlook: Open the message in its own window, choose File > Properties and copy everything in the Internet headers box.
  3. New Outlook and Outlook on the web: Open the message, choose More actions > View > View message details and copy the text.
  4. Apple Mail: Select the message and choose View > Message > All Headers, then copy the headers shown above the message.
  5. Yahoo Mail: Open the message, click More (the three dots) and choose View raw message, then copy the text from the page that opens.
  6. Paste into the analyzer: Paste the text into the box above and click Analyze, or drop the saved .eml file onto the box.

Copy the whole block, not just a few lines: the analyzer needs the Received lines and the Authentication-Results headers, and both sit near the top.

How to save an email as an .eml or .msg file

To also check the DKIM body hash and hash the attachments, give the analyzer the whole message file instead of pasted headers. Save one file per message:

In Gmail

Gmail, one message at a time or all at once

  1. 1Open the message and click the three dots at its top right.
  2. 2Choose Download message. You get an .eml file with the headers and every attachment inside.
  3. 3For a whole thread, select the messages in the list, then More, Forward as attachment, and send them to yourself. Each travels inside the new message as a copy, headers included.

For a very long thread you can also apply a dedicated label to it and export just that label in Google Takeout, which gives you one .mbox file. An .mbox file keeps the headers just like an .eml.

In Outlook

Outlook, on the desktop and on the web

  1. 1Classic Outlook on Windows: select the messages in the thread with Ctrl and drag them straight into an empty folder on your desktop. Each is saved as a .msg file with its attachments. Selecting them and pressing Ctrl + Alt + F forwards them all as attachments instead.
  2. 2New Outlook: open the message, click More actions (the three dots) and choose Save as. In Outlook on the web choose Download, then Download as EML. Both give an .eml file.
  3. 3Whatever the route, do not choose Print or Save as PDF. Those outputs keep no headers.

Both .msg and .eml keep the full headers and the attachments. Open one file afterwards in our free EML and MSG Viewer to check that the headers are really there. To export a whole folder from classic Outlook, use File, Open & Export, Import/Export, Export to a file, Outlook Data File (.pst), the format e-discovery tools expect.

Thunderbird and Apple Mail

Thunderbird: select the messages, right-click and choose Save As. Each is written out as an .eml file. Dragging the selection into a folder does the same thing.

Apple Mail: select the messages and drag them from the message list into a folder in Finder. You get one .eml per message, attachments included.

The one mistake that costs you the evidence

Forward (the normal one): a new message is created, the original headers become body text, and the DKIM signature no longer covers them.

Forward as attachment: a copy of the original message, headers included, travels inside the new message, so it stays usable.

Saved files: the safest route.

Message size limits stop large threads from being forwarded. If the thread is larger than roughly 20 MB, save the files instead.

Certify your thread · from $59.99

Saved the files? Send them to us and get a certified thread within 48 hours.

How to read Received lines

Every mail server that accepts a message usually writes a Received line and puts it at the top of the headers. So the list is a stack: the topmost line is the last hop, written by the server that delivered the message to your mailbox, and the lowest line is the first hop, usually the sender's own outgoing server. The analyzer turns the stack around and numbers the hops in the order the message traveled.

A typical line reads from relay.example.com (relay.example.com [198.51.100.25]) by mx1.example.net with ESMTPS; Wed, 14 Oct 2026 09:13:19 -0700. The part after from is the name the sending server announced, followed by the IP address the receiving server actually saw. The part after by is the receiving server. The keyword after with names the protocol: ESMTPS means the hop was encrypted with TLS, ESMTPSA means it was encrypted and the sender logged in. The date after the semicolon is the time on the receiving server's clock when it accepted the message, which the analyzer converts to UTC so that time zones line up.

The trust boundary matters more than any single line. The lines your own provider wrote are reliable, because the sender cannot write them. Everything below the point where your provider first accepted the message was written before it reached you, and a sender can add invented Received lines there to suggest a different origin.

What SPF, DKIM, DMARC and ARC results mean

The receiving server records its checks in an Authentication-Results header. Its first word is the authserv-id, the name of the server that ran the checks. Then come the verdicts:

  • SPF checks whether the IP address that handed over the message is allowed to send for the domain in the envelope sender (smtp.mailfrom), which is the bounce address and not the visible From.
  • DKIM checks a cryptographic signature from the domain in header.d over selected headers and the body. A pass means those parts were not changed after signing, apart from the whitespace changes the relaxed canonicalization allows.
  • DMARC passes when SPF or DKIM passed for a domain aligned with the visible From domain (header.from), either the same domain or, in relaxed mode, a subdomain of it. It is the check that ties the result to the address a reader actually sees.
  • ARC lets a forwarder, such as a mailing list, record the results it saw before it changed the message, so the final receiver can still judge the original checks, if it trusts that forwarder.

Pass means the check held. Fail means it did not. Softfail and neutral are weaker SPF results: the domain owner chose not to make the rule strict. None means the domain publishes no SPF or DMARC record, or, for DKIM, that the message was not signed, and temperror or permerror mean the check could not be completed. Trust the verdicts in the topmost Authentication-Results header written by your own provider; a header lower down, or one with an authserv-id you do not recognize, may have been added before the message reached you.

What headers can and cannot prove

Headers are good at two things: the route a message took after it reached your provider, and whether its signed parts changed on the way. The Received lines written by your provider and its Authentication-Results cannot be forged by the sender, and a DKIM signature that still verifies shows the signed parts are unchanged.

Headers are weak on everything the sender's own software writes. From, Date, Subject and Message-ID are filled in by the sending program and can say anything. Received lines below your provider's first hop can be invented. And no header shows who sat at the keyboard: a DKIM pass for example.com shows that the message was signed with a key that example.com publishes, not which person typed it.

When a dispute needs more than an analyzer

An analyzer tells you what the headers say today, on your screen. When an email matters in a dispute, the other side may ask whether your copy is complete and unchanged, and a screenshot of an analysis does not answer that.

Have the thread certified

Send ProofSnap the saved message files and receive a certified thread within 48 hours: a numbered transcript with the full headers, every attachment hashed, and an eIDAS qualified timestamp on the package. From $59.99.

Frequently asked questions

How do I view email headers in Gmail or Outlook?

In Gmail, open the message, click the three dots next to Reply and choose Show original. In classic Outlook, open the message, go to File, then Properties, and copy the Internet headers box. In new Outlook and Outlook on the web, open the message and choose More actions, then View, then View message details. Paste the text into the analyzer on this page.

How do I read Received headers?

Read them from the bottom up. Every mail server that accepts the message adds a Received line at the top, so the lowest line is the first hop, usually the sender's own server, and the topmost line was added last by your provider. Each line names the server the message came from, the IP address it was seen from, the server that took it, the protocol and a timestamp.

What do SPF, DKIM and DMARC pass and fail mean?

SPF pass means the IP address that handed over the message is allowed to send for the domain in the envelope sender. DKIM pass means a signature from the named domain matched the headers and body it covers. DMARC pass means SPF or DKIM passed for a domain that matches the visible From address. Fail means the check did not hold; softfail and neutral are weaker SPF results, and none means the domain publishes no SPF or DMARC record, or, for DKIM, that the message was not signed.

Can email headers be faked?

Partly. The sender's software writes the From, Date, Subject and Message-ID lines and can put anything there, and it can add invented Received lines below the real ones. What a sender cannot fake are the lines added after the message left their hands: the Received lines and the Authentication-Results written at the top by your own provider.

Can I find the sender's IP address?

Often, but not always. The Received line where your provider first accepted the message names the IP address of the server that handed it over. Large webmail services usually record only their own servers, so you see the provider's address rather than the sender's own connection. Any address in a line below that point may be invented.

Why is there a delay between hops?

Most hops take a second or two. Longer gaps come from spam and virus filtering, greylisting, a queue on a busy server or a retry after a failed delivery attempt. A negative delay means the clocks of two servers disagree, which is common and usually harmless, so the analyzer marks it as clock skew instead of a delay.

What is ARC?

ARC, the Authenticated Received Chain, lets a forwarder such as a mailing list record the SPF, DKIM and DMARC results it saw before it changed the message. Each forwarder adds a numbered set of three headers and signs its own set and every set before it. The cv value in each ARC-Seal records whether the earlier chain was intact when that forwarder checked it.

Is my email uploaded?

No. The analyzer runs entirely in your browser: the headers, the .eml file and its attachments are read and hashed on your device, and none of it is sent to ProofSnap or anyone else. You can confirm this in your browser's Network tab, or disconnect from the internet after the page has loaded and run it again.

Certify your thread · from $59.99

Numbered transcript, full headers, every attachment hashed, eIDAS qualified timestamp. Delivered in 48 hours.

This tool reads headers and shows what they state. It does not verify the DKIM signature itself. This page is general information, not legal advice.

Certify an email thread