Bodu.Formats.Outlook.Pst
0.7.1
dotnet add package Bodu.Formats.Outlook.Pst --version 0.7.1
NuGet\Install-Package Bodu.Formats.Outlook.Pst -Version 0.7.1
<PackageReference Include="Bodu.Formats.Outlook.Pst" Version="0.7.1" />
<PackageVersion Include="Bodu.Formats.Outlook.Pst" Version="0.7.1" />
<PackageReference Include="Bodu.Formats.Outlook.Pst" />
paket add Bodu.Formats.Outlook.Pst --version 0.7.1
#r "nuget: Bodu.Formats.Outlook.Pst, 0.7.1"
#:package Bodu.Formats.Outlook.Pst@0.7.1
#addin nuget:?package=Bodu.Formats.Outlook.Pst&version=0.7.1
#tool nuget:?package=Bodu.Formats.Outlook.Pst&version=0.7.1
Bodu.Formats.Outlook.Pst
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 personal-folders format (.pst / MS-PST,
Unicode and ANSI formats), built on Bodu.IO.Pst — the node-database
container reader — and the shared Bodu.Formats.Outlook
MAPI value model it has in common with the .msg reader.
A mail store is opened as a disposable session exposing the store properties, the folder hierarchy, and every message with its decoded MAPI properties, recipients, attachments (including nested embedded messages), store-wide named-property resolution, and the text, HTML, and compressed-RTF (MS-OXRTFCP) bodies. There is no MAPI session emulation and no store authoring.
using Bodu.Formats.Outlook;
using var store = OutlookMailStore.OpenRead("archive.pst");
foreach (OutlookMailFolder folder in store.RootFolder.EnumerateSubfolders())
{
Console.WriteLine(folder.DisplayName);
foreach (OutlookMailMessage message in folder.EnumerateMessages())
{
Console.WriteLine($" {message.Subject} — {message.SenderName}");
foreach (OutlookRecipient recipient in message.Recipients)
Console.WriteLine($" {recipient.RecipientType}: {recipient.EmailAddress}");
foreach (OutlookMailAttachment attachment in message.Attachments)
Console.WriteLine($" attachment: {attachment.FileName} ({attachment.Size} bytes)");
}
}
What is read
- The folder hierarchy from the root folder down — hierarchy, contents, and associated-contents tables, streamed row by row (search folders, which are Outlook runtime state, are excluded).
- Every object's property context — fixed, variable-length, and multi-valued properties, Unicode and code-page (ANSI) strings alike, with per-object code-page resolution inherited down the store → message → attachment chain.
- Recipient tables (row-resident properties) and attachment objects, including
by-value content payloads and nested embedded messages (recursively). A payload
larger than
OutlookMailStoreReaderOptions.MaxInlineAttachmentBytes(1 MiB by default) is not decoded into the property collection;OpenContentStreamstreams it from the store block by block. - The store-wide name-to-id map (node
0x61), resolved bidirectionally. - The message bodies: plain text, HTML, and RTF (decompressed per MS-OXRTFCP).
Out of scope
- Writing or editing
.pstfiles. - OST files (recognized and rejected).
- MAPI session semantics (
IMsgStoreemulation, search-folder population). - 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.Pst (>= 0.7.1)
-
net8.0
- Bodu.Core (>= 1.0.0)
- Bodu.Formats.Outlook (>= 0.7.1)
- Bodu.IO.Pst (>= 0.7.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.