MHTML
This article needs more citations. (April 2014) |
| MHTML | |
|---|---|
| Filename extension |
.mht, .mhtml |
| Internet media type |
|
| Type of format | Markup language |
| Extended from | HTML |
| Standard | RFC 2557 (proposed 1999) |
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.
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
[edit source]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
[edit source]MIME type for MHTML is not well agreed upon. Used MIME types include:
multipart/relatedapplication/x-mimearchivemessage/rfc822
Supporting apps
[edit source]Web browsers
[edit source]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
[edit source]- 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
[edit source]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
[edit source]Self-contained HTML files
[edit source]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[update], creating self-contained HTML pages requires browser extensions (such as SingleFile) or third-party app (such as pandoc).[13]
Mozilla Archive Format
[edit source]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
[edit source]References
[edit source]- ↑ "Key Concepts of MHTML". Microsoft. 9 November 2009. Archived from the original on 21 February 2026. Retrieved 21 February 2026.
- ↑ Holden, Amanda. "Difference of HTML & MHTML". Archived from the original on 17 November 2017. Retrieved 17 November 2017.
- ↑ "2. The MHTML File Format - Hunchly Knowledge Base". support.hunch.ly. October 17, 2018. Retrieved 24 September 2022.
- ↑ "Bug 40873 - Save as rfc 2557 MHTML; complete webpage in one file".
- ↑ "NEWS · master · GNOME / Epiphany". 28 July 2023.
- ↑ Santambrogio, Claudio (10 March 2006). "…and one more weekly!". Opera Software. Archived from the original on 15 January 2010. Retrieved 2009-05-15.
- ↑ "Pale Moon Add-ons - MozArchiver". addons.palemoon.org. Retrieved 3 December 2025.
- ↑ février 6, Publié sur; Tetzchner, 2019-Par Jon von (2019-02-06). "Vivaldi Update | Auto-Stacking Tabs". Vivaldi (in French). Retrieved 2019-05-16.
{{cite web}}: CS1 maint: numeric names: authors list (link) - ↑ Kovacs, Eduard (May 11, 2015). "Attackers Hide Malicious Macros in MHTML Documents". SecurityWeek.Com. Retrieved April 19, 2019.
- ↑ Mosuela, Lordian (July 10, 2015). "New Tricks of Macro Malware". Cyren. Archived from the original on September 8, 2024. Retrieved April 19, 2019.
- ↑ Cimpanu, Catalin (April 12, 2019). "Internet Explorer zero-day lets hackers steal files from Windows PCs". ZDNet. Retrieved April 19, 2019.
- ↑ "data: URLs". MDN Web Docs. Mozilla Foundation. 31 October 2025. Browser compatibility.
- ↑ Brinkmann, Martin (2 February 2026). "Save any webpage as a single file in Chrome or Firefox". gHacks Tech News. gHacks.
- ↑ "Mozilla Archive Format Add-on - File Format Overview". amadzone. Retrieved April 2, 2023.
- ↑ "Firefox Addon: MAF - Mozilla Archive Format". Archived from the original on 2 November 2017. Retrieved 2 April 2023.
External links
[edit source]- MHTML standard explained
- RFC 2557 (1999)—MIME Encapsulation of Aggregate Documents, such as HTML (MHTML)
- RFC 2110 (1997, Obsolete)—MIME E-mail Encapsulation of Aggregate Documents, such as HTML (MHTML)