OfficeIMO.Mhtml
3.3.0
Prefix Reserved
dotnet add package OfficeIMO.Mhtml --version 3.3.0
NuGet\Install-Package OfficeIMO.Mhtml -Version 3.3.0
<PackageReference Include="OfficeIMO.Mhtml" Version="3.3.0" />
<PackageVersion Include="OfficeIMO.Mhtml" Version="3.3.0" />
<PackageReference Include="OfficeIMO.Mhtml" />
paket add OfficeIMO.Mhtml --version 3.3.0
#r "nuget: OfficeIMO.Mhtml, 3.3.0"
#:package OfficeIMO.Mhtml@3.3.0
#addin nuget:?package=OfficeIMO.Mhtml&version=3.3.0
#tool nuget:?package=OfficeIMO.Mhtml&version=3.3.0
OfficeIMO.Mhtml
OfficeIMO.Mhtml loads and saves MHT/MHTML web archives while preserving the root HTML document, MIME resources, base URI, and diagnostics.
dotnet add package OfficeIMO.Mhtml
using OfficeIMO.Html;
using OfficeIMO.Mhtml;
MhtmlDocument archive = MhtmlDocument.Load("snapshot.mhtml");
Console.WriteLine(archive.HtmlDocument.NormalizedHtml);
var renderOptions = new HtmlRenderOptions();
archive.ConfigureRenderOptions(renderOptions);
byte[] png = archive.HtmlDocument.ToPng(renderOptions);
archive.Save("copy.mht");
ConfigureRenderOptions resolves cid: and Content-Location references first. Its default policy is offline and never invokes a caller resolver for missing network resources. Remote retrieval is explicit, same-origin by default, redirect-bounded, and still subject to the shared HTML count, byte, timeout, and URL policies:
var renderOptions = new HtmlRenderOptions();
MhtmlRemoteResourcePolicy remote = MhtmlRemoteResourcePolicy.CreateSameOriginProfile(maximumRedirects: 2);
remote.ResourceFetcher = async (request, cancellationToken) => {
// Fetch exactly one response with automatic redirects disabled.
// Return MhtmlRemoteResourceResponse.Redirect(location) for a 3xx response.
return await applicationOneHopFetcher(request, cancellationToken);
};
archive.ConfigureRenderOptions(renderOptions, remote);
The one-hop fetcher must not automatically follow redirects. OfficeIMO resolves each returned redirect location, enforces scheme, origin, and redirect-count policy, and only then invokes the fetcher for the next hop. This prevents disallowed redirect targets from being contacted before policy evaluation. Duplicate Content-ID and resolved Content-Location values are deterministic first-wins conditions reported through MimeDiagnostics; malformed MIME recovery and legacy charset diagnostics come from the shared bounded Email reader. Script execution remains unsupported.
MHTML intentionally connects the HTML engine to the Email MIME engine. Plain HTML and plain Email packages do not depend on this bridge.
Dependency footprint: OfficeIMO.Core, OfficeIMO.Html, and OfficeIMO.Email.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 is compatible. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.7.2
- OfficeIMO.Core (>= 3.3.0)
- OfficeIMO.Email (>= 3.3.0)
- OfficeIMO.Html (>= 3.3.0)
-
.NETStandard 2.0
- OfficeIMO.Core (>= 3.3.0)
- OfficeIMO.Email (>= 3.3.0)
- OfficeIMO.Html (>= 3.3.0)
-
net10.0
- OfficeIMO.Core (>= 3.3.0)
- OfficeIMO.Email (>= 3.3.0)
- OfficeIMO.Html (>= 3.3.0)
-
net8.0
- OfficeIMO.Core (>= 3.3.0)
- OfficeIMO.Email (>= 3.3.0)
- OfficeIMO.Html (>= 3.3.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on OfficeIMO.Mhtml:
| Package | Downloads |
|---|---|
|
OfficeIMO.Reader.Email
Unified email, MHTML, Outlook store, and Offline Address Book adapter for OfficeIMO.Reader.Core. |
|
|
OfficeIMO.Mhtml.Pdf
Direct MHTML-to-PDF conversion for OfficeIMO. |
GitHub repositories
This package is not used by any popular GitHub repositories.