Bodu.Formats.Outlook.Msg
0.7.1
dotnet add package Bodu.Formats.Outlook.Msg --version 0.7.1
NuGet\Install-Package Bodu.Formats.Outlook.Msg -Version 0.7.1
<PackageReference Include="Bodu.Formats.Outlook.Msg" Version="0.7.1" />
<PackageVersion Include="Bodu.Formats.Outlook.Msg" Version="0.7.1" />
<PackageReference Include="Bodu.Formats.Outlook.Msg" />
paket add Bodu.Formats.Outlook.Msg --version 0.7.1
#r "nuget: Bodu.Formats.Outlook.Msg, 0.7.1"
#:package Bodu.Formats.Outlook.Msg@0.7.1
#addin nuget:?package=Bodu.Formats.Outlook.Msg&version=0.7.1
#tool nuget:?package=Bodu.Formats.Outlook.Msg&version=0.7.1
Bodu.Formats.Outlook.Msg
API stability — Preview. The public API surface is largely settled but is still being finalized ahead of the 1.0 release and may change; breaking changes can land in a minor version until then.
A read-only reader for the Outlook message format (.msg / MS-OXMSG), built on
Bodu.IO.Compound — a .msg file is an OLE2 compound file —
and the shared Bodu.Formats.Outlook MAPI value model.
A message is opened as a disposable session exposing every decoded MAPI property, the recipient and attachment tables, nested attached messages, named-property resolution, and the text, HTML, and compressed-RTF (MS-OXRTFCP) bodies. There is no MAPI session emulation and no message authoring.
using Bodu.Formats.Outlook;
using var message = OutlookMessage.OpenRead("invoice.msg");
Console.WriteLine(message.Subject);
Console.WriteLine(message.SenderEmailAddress);
foreach (OutlookRecipient recipient in message.Recipients)
Console.WriteLine($" {recipient.RecipientType}: {recipient.EmailAddress}");
foreach (OutlookAttachment attachment in message.Attachments)
Console.WriteLine($" attachment: {attachment.FileName} ({attachment.Size} bytes)");
What is read
- The message property stream (
__properties_version1.0) and every__substg1.0_…value stream — fixed, variable-length, and multi-valued properties, Unicode and code-page (ANSI) strings alike. - Recipient and attachment storages, including attachment payload streams and
nested attached messages (recursively). A payload larger than
OutlookMessageReaderOptions.MaxInlineAttachmentBytes(1 MiB by default) is not decoded into the property collection;OpenContentStreamreads it from the container on demand. - The named-property mapping (
__nameid_version1.0), resolved bidirectionally. - The message bodies: plain text, HTML, and RTF (decompressed per MS-OXRTFCP).
Out of scope
- Writing or editing
.msgfiles. - MAPI session semantics (
IMessageemulation, store behaviour). - RTF→HTML/Text de-encapsulation (MS-OXRTFEX) — consumers receive the RTF verbatim.
- TNEF (
winmail.dat), S/MIME decryption, and OLE-attachment rendering.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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. |
-
net10.0
- Bodu.Core (>= 1.0.0)
- Bodu.Formats.Outlook (>= 0.7.1)
- Bodu.IO.Compound (>= 1.0.0)
-
net8.0
- Bodu.Core (>= 1.0.0)
- Bodu.Formats.Outlook (>= 0.7.1)
- Bodu.IO.Compound (>= 1.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.