Wikiwand AI

MHTML

Web page archive (file) format From Wikipedia, the free encyclopedia

MHTML, an initialism of "MIME encapsulation of aggregate HTML documents", is a web archiving file format used to combine, in a single computer file, the HTML code and its companion resources (such as images) that are represented by external hyperlinks in the web page's HTML code.[1] The content of an MHTML file is encoded using the same techniques that were first developed for HTML email messages, using the MIME content type multipart/related.[2] MHTML files use an .mhtml or .mht filename extension.

Filename extension
.mht, .mhtml
Internet mediatype
  • multipart/related
  • application/x-mimearchive
  • message/rfc822
Type of formatMarkup language
ExtendedfromHTML
Quick facts Filename extension, Internet media type ...
MHTML
Filename extension
.mht, .mhtml
Internet media type
  • multipart/related
  • application/x-mimearchive
  • message/rfc822
Type of formatMarkup language
Extended fromHTML
StandardRFC 2557 (proposed 1999)
Close

The first part of the file is an e-mail header. The second part is normally HTML code. Subsequent parts are additional resources identified by their original uniform resource locators (URLs) and encoded in Base64 binary-to-text encoding. MHTML was proposed as an open standard, then circulated in a revised edition in 1999 as RFC 2557.

The .mhtml and .eml filename extensions are interchangeable: either filename extension can be changed from one to the other. An .eml message can be sent by e-mail, and it can be displayed by an email client. An email message can be saved using a .mhtml or .mht filename extension and then opened for display in a web browser or for editing other programs, including word processors and text editors.

Layout

The header of an MHTML file contains metadata such as a date and time stamp, page title, the source URL, and a unique randomized boundary string for separating resources contained within the file. The boundary string is defined at the beginning and used throughout the file.

From: <Saved by Blink>
Snapshot-Content-Location: https://en.wikipedia.org/wiki/Smartphone
Subject: Smartphone - Wikipedia
Date: Sat, 24 Sep 2022 00:34:32 -0000
MIME-Version: 1.0
Content-Type: multipart/related;
        type="text/html";
        boundary="----MultipartBoundary--GsIBda0vjy2AKIAIliwl7JMwezXDRjDAsLje9khd5l----"

Then, the page resources are contained sequentially, starting with the page's rendered HTML source code. Each resource has its own metadata header which specifies its MIME type and the original location.

------MultipartBoundary--GsIBda0vjy2AKIAIliwl7JMwezXDRjDAsLje9khd5l----
Content-Type: text/html
Content-ID: <frame-D968CEC8BB7E60A1859261A8CA5DFB4D@mhtml.blink>
Content-Transfer-Encoding: binary
Content-Location: https://en.wikipedia.org/wiki/Smartphone

<!DOCTYPE html>

The MHTML file ends with a boundary string that is not followed by any data.[3]

MIME type

MIME type for MHTML is not well agreed upon. Used MIME types include:

  • multipart/related
  • application/x-mimearchive
  • message/rfc822

Supporting apps

Web browsers

Some browsers support the MHTML format, either directly or through third-party browser extension.

  • Firefox does not support MHTML.[4] Until version 57 ("Firefox Quantum"), two browser extensions, Mozilla Archive Format or UnMHT, could read and write MHTML files. These extensions are incompatible with version 57 and later.
  • GNOME Web added support for read and save web pages in MHTML since version 3.14.1 released in September 2014.[5]
  • Google Chrome 86 and later can create MHTML files.
  • Internet Explorer 5 was the first browser to support reading and saving web pages and external resources to a single MHTML file.
  • Konqueror 3.5.7 and later terminated support for MHTML files. An extension project, mhtconv, can be used to allow saving and viewing of MHTML files.
  • Microsoft Edge, after switching to the Chromium source code, supports saving web pages as MHTML.
  • NetFront 3.4 (on devices such as the Sony Ericsson K850) can view and save MHTML files.
  • Opera: Support for saving web pages as MHTML files was made available in the Opera 9.0 web browser.[6] From Opera 9.50 through the rest of the Presto-based Opera product line (version 12.16 as of 19 July 2013), the default format for saving pages is MHTML. The initial release of the new Webkit/Blink-based Opera (version 15) did not support MHTML, but subsequent releases (16 and later) do. MHTML can be enabled by typing "opera://flags#save-page-as-mhtml" at the address bar.
  • Pale Moon requires an extension to be installed to read and write MHT files. One extension is freely available, MozArchiver, a fork of Mozilla Archive Format extension.[7]
  • Safari 3.1.1 and later terminated native support for the MHTML format. Instead, the browser supports the Web Archive format. The macOS version includes a print-to-PDF feature. As with most other modern web browsers, support for MHTML files can be added to Safari via various third-party extensions.
  • Vivaldi 2.3 and later can create MHTML files.[8] It supports both reading and writing MHTML files by toggling the "vivaldi://flags/#save-page-as-mhtml" option.
  • Yandex Browser 22.7.4.960 (July 2022) and later can create MHTML (multipart/related) files.

Other apps

  • Problem Steps Recorder for Windows can save its output to MHT format.
  • The "Save to Google Drive" extension for Google Chrome can save as MHTML as one of its outputs.
  • Microsoft OneNote 2010 and later can email individual pages as .mht files.
  • Evernote for Windows can export notes as MHT format, as an alternative to HTML or its own native .enex format.

Exploits

In May 2015, a researcher noted that attackers could build malicious documents by creating an MHT file, appending an MSO object at the end (MSO is a file format used by the Microsoft Outlook e-mail application), and renaming the resulting file with a .doc extension.[9] The delivery method would be by spam emails.[10]

In April 2019, a security researcher published details about an XML external entity (XXE) vulnerability that could be exploited when a user opens an MHT file. Since the Windows operating system is set to automatically open all MHT files, by default, in Internet Explorer, the exploit could be triggered when a user double-clicked on a file that they received via email, instant messaging, or another vector, including a different browser.[11]

Alternatives

Self-contained HTML files

Contemporary HTML files support storing images, style-sheets and scripts in-line using the data URI scheme. Like the embedded content within MHTML, data URIs use Base64 encoding of the external resources. All modern web browsers can open self-contained HTML files.[12] However, As of February 2026, creating self-contained HTML pages requires browser extensions (such as SingleFile) or third-party app (such as pandoc).[13]

Mozilla Archive Format

The Mozilla Archive Format (MAFF) is a legacy Web archive file format that was supported by Firefox from 2004 to 2018 through an add-on.[14] Unlike both MHTML and data URIs, MAFF uses a ZIP container to preserve both the HTML file and its external elements. In October 2017 the add-on developer announced the format would no longer be supported in future versions of Firefox.[15]

See also

References

Related Articles

Timelines

Top Qs

Fact Checks