Table of Contents

OutlookMailStoreReaderOptions Class

Definition

Namespace
Bodu.Formats.Outlook
Assembly
Bodu.Formats.Outlook.Pst.dll
Package
Bodu.Formats.Outlook.Pst 0.7.1
Source
OutlookMailStoreReaderOptions.cs

Controls how an OutlookMailStore reads its PST container and decodes message content.

public sealed class OutlookMailStoreReaderOptions
Inheritance
OutlookMailStoreReaderOptions
Inherited Members
Extension Methods

Constructors

OutlookMailStoreReaderOptions()

public OutlookMailStoreReaderOptions()

Properties

BlockCacheSize

Gets the decoded page/block cache budget of the underlying container session, in entries.

public int BlockCacheSize { get; init; }

Property Value

int

The cache entry budget; 256 by default. 0 disables caching entirely.

Exceptions

ArgumentOutOfRangeException

The value is negative.

DecompressRtf

Gets a value indicating whether the compressed RTF body (PidTagRtfCompressed) is decompressed when read through the body conveniences.

public bool DecompressRtf { get; init; }

Property Value

bool

true by default; when disabled the RTF body convenience returns null.

MaxDecompressedRtfBytes

Gets the largest decompressed RTF body, in bytes, the reader produces.

public int MaxDecompressedRtfBytes { get; init; }

Property Value

int

The ceiling; 64 MiB by default.

Remarks

A compressed payload whose declared or produced size exceeds the ceiling is rejected with OutlookPstFormatException at every validation level.

Exceptions

ArgumentOutOfRangeException

The value is zero or negative.

MaxEmbeddedMessageDepth

Gets the deepest embedded-message nesting the reader opens: a folder-level message is depth zero, a message opened from one of its attachments is depth one, and so on.

public int MaxEmbeddedMessageDepth { get; init; }

Property Value

int

The nesting limit; 16 by default.

Remarks

Opening an embedded message past the limit throws OutlookPstFormatException at every validation level, so a crafted subnode graph cannot drive a recursive consumer off its stack.

Exceptions

ArgumentOutOfRangeException

The value is zero or negative.

MaxInlineAttachmentBytes

Gets the largest by-value attachment payload, in bytes, that is decoded into the attachment's Properties; a larger PidTagAttachDataBinary is left in the store and served only through OpenContentStream().

public int MaxInlineAttachmentBytes { get; init; }

Property Value

int

The inline payload limit; 1 MiB by default.

Remarks

Above the limit the property is still present in the collection, with a null value, so Contains(MapiPropertyTag) and Method are unaffected; GetBinary(ushort) returns null and the content streams from the container without being materialized. This is an inline-decoding threshold, not a validation rule: it does not vary with ValidationLevel.

Exceptions

ArgumentOutOfRangeException

The value is zero or negative.

MaxNodeDataLength

Gets the largest node payload, in bytes, the underlying container materializes in memory - the ceiling on any single property value, attachment payload, or table the store decodes at once.

public long MaxNodeDataLength { get; init; }

Property Value

long

The materialization limit; 256 MiB by default (see MaxNodeDataLength).

Exceptions

ArgumentOutOfRangeException

The value is zero or negative.

ValidationLevel

Gets how strictly the container's structures and checksums are validated.

public PstValidationLevel ValidationLevel { get; init; }

Property Value

PstValidationLevel

The validation level; Compatible by default.

Applies to

ProductVersions
.NET8, 10