Scrubkit.Email
1.8.0
Prefix Reserved
dotnet add package Scrubkit.Email --version 1.8.0
NuGet\Install-Package Scrubkit.Email -Version 1.8.0
<PackageReference Include="Scrubkit.Email" Version="1.8.0" />
<PackageVersion Include="Scrubkit.Email" Version="1.8.0" />
<PackageReference Include="Scrubkit.Email" />
paket add Scrubkit.Email --version 1.8.0
#r "nuget: Scrubkit.Email, 1.8.0"
#:package Scrubkit.Email@1.8.0
#addin nuget:?package=Scrubkit.Email&version=1.8.0
#tool nuget:?package=Scrubkit.Email&version=1.8.0
Scrubkit.Email
Add-on IFileExtractors for
Scrubkit that read .eml (MIME email)
and .msg (Outlook / OLE2) files — fully offline, with no dependencies beyond
Scrubkit.Abstractions.
- Fields → metadata —
From,To,Cc,Subject,Date. - Body → text — for
.eml, prefers thetext/plainpart, falls back totext/html; for.msg, reads the message body property. - Understands real email —
.eml: multipart messages,base64andquoted-printabletransfer encodings, common charsets, and RFC 2047 encoded-word headers..msg: a built-in compound-file reader that pulls the MAPI property streams (Unicode, with ANSI fallback). - Skips noise — attachments and non-text parts are ignored.
Install
dotnet add package Scrubkit.Email
Use it
Register the extractors via ReadOptions.Extractors. Registered extractors are tried before
the built-ins, so .eml and .msg files are routed here:
using Scrubkit;
var options = new ReadOptions();
options.Extractors.Add(new EmailExtractor()); // .eml
options.Extractors.Add(new MsgExtractor()); // .msg
var scrubber = new FolderScrubber(options);
foreach (var r in await scrubber.ReadAsync(@"C:\Mail"))
Console.WriteLine($"{r.Name} — {r.Metadata.GetValueOrDefault("Subject")} — {r.Text.Length} chars");
Each email row comes back with the message's Subject/From/… in Metadata and the
body in Text, ready for indexing or redaction (supply an IRedactor if you want the
body and headers scrubbed).
Scope
Reads .eml and .msg. Parsing is best-effort, consistent with Scrubkit's
other extractors — it favors resilience over strict conformance and never throws to the
batch (per-file problems surface as Warnings on the row). For .msg the body and the
From/To/Cc/Subject/Date properties are read; attachments and embedded objects are
skipped.
License
| 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 was computed. 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 was computed. 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. |
-
.NETStandard 2.0
- Scrubkit.Abstractions (>= 1.8.0)
-
net8.0
- Scrubkit.Abstractions (>= 1.8.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Scrubkit.Email:
| Package | Downloads |
|---|---|
|
Scrubkit.All
Convenience meta-package that references the entire Scrubkit family: the core (PDF/Office/text/image EXIF + CSV/JSON output), the extractor add-ons (.eml, OpenDocument, .epub), the AddScrubkit dependency-injection integration, and — on net8.0 — Parquet output. Install this to read everything out of the box; install the individual packages instead if you want a lean footprint. No code of its own. |
GitHub repositories
This package is not used by any popular GitHub repositories.
1.7.0 — Custom redaction rules. StandardRedactorOptions.CustomRules takes caller-defined CustomRedactionRules (category/pattern/token/ignoreCase), matched before the built-ins so a domain rule wins an overlap; patterns compile with a match timeout (ReDoS-safe) and an invalid pattern throws at construction. CLI: --rules <file> loads custom rules plus allow/deny/disable lists from JSON and implies redaction. Full changelog: https://github.com/jjopensoftworks-blip/Scrubkit/blob/main/CHANGELOG.md