Free online tool

Strip hidden headers from a saved email before you share it

Drop a saved .eml file and strip the hidden headers before you forward or publish it: the full Received chain, the sender's IP address, and internal hostnames. The Email File Scrubber rewrites only the header block in your browser — the body and attachments pass through byte-identical — and nothing is uploaded.

Quick answer

Quick answer

Drop a .eml file of up to 25 MB and this tool strips the hidden header data before you forward or publish it: the full Received chain, the sender's IP address and internal hostnames. Only the header block is rewritten, so the body and attachments pass through byte-identical. The cleaned file is re-parsed and refused if any target header survives.

Open the interactive Email File Scrubber

The interactive tool loads in the page. Enable JavaScript to enter data, process content, and download results.

About this tool

About the Email File Scrubber

Drop a saved .eml file and strip the hidden headers before you forward or publish it: the full Received chain, the sender's IP address, and internal hostnames. The Email File Scrubber rewrites only the header block in your browser — the body and attachments pass through byte-identical — and nothing is uploaded.

Detailed guide

How to get useful results from Email File Scrubber

What hides in an email's headers

A saved email carries more than its message. Every Received line in the header records one hop of the journey: the sending server's hostname and IP address, the receiving server, and the exact time. Headers like X-Originating-IP add the sender's own address, X-Mailer names the mail client, and internal Exchange headers can expose a company's server names. None of this is visible while reading the mail — the message body shows no trace of it — but anyone with basic tools can read it.

That is why forwarding an original email can share more than the words: a location, a device, a schedule, an employer's infrastructure. The standard Forward button in most mail clients includes the whole chain. The scrubber exists for the moment before sharing — when the message itself is fine to send, but the hidden data wrapped around it is not.

How the scrubber cleans a .eml without touching the body

The scrubber splits the file at the header/body boundary at the byte level, then parses only the header block as ASCII text, unfolding continuation lines into complete headers. The strip list removes the full Received chain, X-Originating-IP, X-Mailer, X-Original-* headers, and internal Exchange headers. IP addresses in the headers that remain are scrubbed when the toggle is on, listed internal hostnames become [internal], and a Message-ID is replaced only if you ask for it. Modified headers are re-folded to 78 columns, and the file's original line endings are preserved.

The body is never decoded. After the header block is rewritten, the original body bytes are spliced back untouched — attachments included. The cleaned file is then re-parsed in your browser: the download appears only if no target header survives, no IP remains in the kept headers, and the body is byte-identical to the original. If any check fails, that file gets an error instead of a download link.

What the cleaned file is (and is not) for

DKIM signs header values, so removing or changing a signed header invalidates the signature. The cleaned file is therefore for forwarding as a new message, for evidence, or for publication — never for re-delivering as if it were the original. The Message-ID is kept by default so mail threading survives; replace it only when the ID itself must go.

The body is never scrubbed: if the message text itself contains sensitive data, remove it before scrubbing. This version handles one .eml file at a time, up to 25 MB, and does not parse MIME parts, .msg files, or .mbox archives. Attachments pass through untouched, which is the point — the file stays a valid, openable email.

Quick guide

How to use this tool

  1. 01Drop a saved .eml file onto the upload area, or browse to choose one.
  2. 02Review the detected headers and choose the scrub options.
  3. 03Select Scrub headers and read the report: which headers were removed, and how many IPs were scrubbed.
  4. 04Download the cleaned .eml file.
  5. 05Forward it as a new message, or share it as evidence — the original stays untouched on your device.

Capabilities

Features and supported formats

  • Strips the full Received chain, X-Originating-IP, X-Mailer, and internal Exchange headers from a saved .eml file.
  • Scrubs IP addresses from the headers that remain, and removes internal hostnames you list.
  • Rewrites only the header block — the body and attachments pass through byte-identical.
  • Re-parses the cleaned file before download and refuses it if any target header survives.
  • Shows a report of header names and counts removed — never the removed values themselves.
  • Runs 100% in your browser; nothing is uploaded or stored.

Supported formats

Input: one .eml file, up to 25 MB. Output: a cleaned .eml file with the same body and attachments, downloadable as <name>-clean.eml.

Answers

Frequently asked questions

Does the Email File Scrubber upload my email?

No. The file is read with the File API and rewritten only in your browser tab. Nothing is sent to a server, and the email never leaves your device.

Will the cleaned .eml still open in my mail app?

Yes. It is a valid .eml file with the same body and attachments; only headers are removed, and mail apps do not need the removed headers to display a message.

Why does scrubbing break DKIM?

DKIM signs header values, so removing or changing a signed header invalidates the signature. Use the cleaned file for forwarding as a new message, evidence, or publication — not for re-delivering it as if it were the original.

Does it clean the message body too?

No. The body and attachments pass through byte-identical by design. If the body itself contains sensitive data, remove it before scrubbing.

What headers are removed?

The full Received chain, X-Originating-IP, X-Mailer, X-Original-* headers, and internal Exchange headers. IP addresses in the headers that remain are scrubbed when the toggle is on. Date and Message-ID are kept unless you choose to replace the Message-ID.