Tiny Online Tools logoTiny Online ToolssearchSearch tools…grid_viewAll Tools
Homechevron_rightDocument Toolschevron_rightMHTML / MHT ViewerMHTML / MHT Viewer

MHTML / MHT Viewer

Open a web page archived as a single MHT or MHTML file and see it rendered with its own images and stylesheets.

upload_file

Click to browse or drag & drop files here

MHT, MHTML or EML

Accepted: .mht,.mhtml,.eml

Similar Tools

MHTML Extractor

MHTML Extractor

Take an MHT archive apart into HTML, images, stylesheets and assets, and download it as a folder that still opens in a browser.

CHM Viewer

CHM Viewer

Open a legacy Microsoft Compiled HTML Help file, browse its contents tree and read its pages in your browser.

XPS / OXPS Viewer

XPS / OXPS Viewer

Open Microsoft's XPS and OXPS fixed-layout documents and read them page by page, with no Windows components needed.

CAD Viewer

CAD Viewer

Open STEP, STP, IGES, IGS and BREP files directly in your browser with a free online CAD viewer that needs no install and no upload.

3D Animation Editor

3D Animation Editor

Edit the animation clips inside a GLB, GLTF or FBX model directly in your browser.

SVG ViewBox Generator

SVG ViewBox Generator

Generate and adjust SVG viewBox values with live preview. Add padding and fine-tune coordinates.

Add Text to GIF

Add Text to GIF

Overlay custom text on every frame of an animated GIF. Adjustable font size, color, outline, and position. Perfect for memes and captions.

apps

More Tools

Browse our full collection of free online tools.

What an MHT file is

When Internet Explorer, Word or Chrome's Save as MHTML wrote a page to a single file, it produced an RFC 2557 email message. One multipart/related body holds the HTML plus every image, stylesheet and script the page referenced, each part tagged with the URL it came from. It is a perfectly reasonable format that almost nothing opens any more.

How it is rendered

The parts are separated, each one is decoded from its transfer encoding (usually quoted-printable for text, base64 for images), and then the root HTML's references are rewritten. That last step is the whole job: every src, href and CSS url() still points at the original absolute address, so without rewriting them the page renders bare. Each one is matched to the part that was saved for it — by Content-Location, or by Content-ID for cid: references — and pointed at that part's bytes instead.

Nothing is fetched, nothing runs

The rebuilt page goes into an iframe with sandbox="allow-same-origin" and nothing else. There is no allow-scripts, so no script in the archive can run.

A Content-Security-Policy of default-src 'none' is injected into the page as well. This matters more than it sounds: any reference the archive did not save stays an absolute http URL after rewriting, and a browser rendering it would quietly fetch it. The policy stops that. Only blob: and data: URLs — the parts that are inside the file — are allowed to load.

Incomplete archives

Web archives are saved incompletely all the time: a background image declared in a stylesheet the saver did not follow, a lazily loaded picture, a font on another domain. Those references are counted and listed. If the page looks wrong, that list usually explains why, and it is a far better answer than a broken image icon.

Also shown

The subject, the date the page was saved, and the original URL — the root part's Content-Location, which is where the page actually came from. Plus every part with its MIME type, transfer encoding, declared charset and decoded size, and a toggle to read the root HTML source.

Privacy

The archive is opened in your browser. It is not uploaded, and neither it nor the tool contacts the network.