API Reference

Class

EmailStoreSession

Namespace OfficeIMO.Email.Store
Assembly OfficeIMO.Email
Implements
IDisposable
Modifiers sealed

Keeps an email-store source open for bounded folder discovery, lightweight item enumeration, and explicit item reads. Sessions are not thread-safe.

Inheritance

  • Object
  • EmailStoreSession

Usage

This type appears in these public API surfaces even when no hand-authored example is attached directly to the page.

Methods

public EmailConversationGraph BuildConversationGraph(EmailConversationGraphOptions options = null, CancellationToken cancellationToken = null) #
Returns: EmailConversationGraph

Builds a bounded cross-folder conversation graph from Internet threading fields, Outlook conversation identities, and meeting/task lifecycle identifiers. Subject-only links remain explicitly heuristic.

Parameters

options OfficeIMO.Email.Store.EmailConversationGraphOptions = null optionalposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public EmailStorePstCompactionReport CompactToPst(String destinationPath, EmailStorePstCompactionOptions options = null, CancellationToken cancellationToken = null) #
Returns: EmailStorePstCompactionReport

Rewrites the selected live PST data to a distinct destination, reopens it, compares every written item, and commits only after verification. This method never replaces the open source PST.

Parameters

destinationPath System.String requiredposition: 0
options OfficeIMO.Email.Store.EmailStorePstCompactionOptions = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public EmailStoreRecoveryReport DiscoverRecoverableItems(EmailStoreRecoveryOptions options = null, CancellationToken cancellationToken = null) #
Returns: EmailStoreRecoveryReport

Discovers indexed items absent from normal folder contents tables without modifying the source.

Parameters

options OfficeIMO.Email.Store.EmailStoreRecoveryOptions = null optionalposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public virtual Void Dispose() #
Returns: Void

Closes owned sources or restores the position of a caller-owned stream.

EnumerateItems 2 overloads
public IEnumerable<EmailStoreItemReference> EnumerateItems(EmailStoreEnumerationOptions options = null, CancellationToken cancellationToken = null) #
Returns: IEnumerable<EmailStoreItemReference>

Streams lightweight item references according to the requested folder and recovery scope.

Parameters

options OfficeIMO.Email.Store.EmailStoreEnumerationOptions = null optionalposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public IEnumerable<EmailStoreItemReference> EnumerateItems(EmailStoreFolderId folderId, Boolean includeDescendants = false, Boolean includeAssociatedItems = false, Int32 maxItems = 2147483647, CancellationToken cancellationToken = null) #
Returns: IEnumerable<EmailStoreItemReference>

Streams lightweight references from one typed folder scope.

Parameters

folderId OfficeIMO.Email.Store.EmailStoreFolderId requiredposition: 0
includeDescendants System.Boolean = false optionalposition: 1
includeAssociatedItems System.Boolean = false optionalposition: 2
maxItems System.Int32 = 2147483647 optionalposition: 3
cancellationToken System.Threading.CancellationToken = null optionalposition: 4
public EmailStoreAsyncEnumerable<EmailStoreItemReference> EnumerateItemsAsync(EmailStoreEnumerationOptions options = null, CancellationToken cancellationToken = null) #
Returns: EmailStoreAsyncEnumerable<EmailStoreItemReference>

Asynchronously streams lightweight references without adding an async-interface compatibility dependency. The returned concrete type supports C# await foreach on every package target.

Parameters

options OfficeIMO.Email.Store.EmailStoreEnumerationOptions = null optionalposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public EmailStorePstSplitReport ExecutePstSplit(EmailStorePstSplitPlan plan, CancellationToken cancellationToken = null) #
Returns: EmailStorePstSplitReport

Executes a dry-run plan by staging every part, reopening and semantically verifying every written item, then committing the complete output set with rollback protection for replaced destinations.

Parameters

plan OfficeIMO.Email.Store.EmailStorePstSplitPlan requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public EmailStoreRecoveryExportReport ExportRecoverableItemsToDirectory(String destinationDirectory, EmailStoreRecoveryExportOptions options = null, CancellationToken cancellationToken = null) #
Returns: EmailStoreRecoveryExportReport

Discovers source-index orphans, exports each readable item independently, and records original item/folder evidence in a manifest. An isolated corrupt item does not invalidate successful artifacts when continuation is enabled. The source store is never modified.

Parameters

destinationDirectory System.String requiredposition: 0
options OfficeIMO.Email.Store.EmailStoreRecoveryExportOptions = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public EmailStoreExportReport ExportToDirectory(String destinationDirectory, EmailStoreExportOptions options = null, CancellationToken cancellationToken = null) #
Returns: EmailStoreExportReport

Exports selected items one at a time through OfficeIMO.Email writers and records preservation diagnostics. The source store is never modified.

Parameters

destinationDirectory System.String requiredposition: 0
options OfficeIMO.Email.Store.EmailStoreExportOptions = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public EmailStoreMboxExportReport ExportToMbox(String destinationPath, EmailStoreMboxExportOptions options = null, CancellationToken cancellationToken = null) #
Returns: EmailStoreMboxExportReport

Streams selected messages through the OfficeIMO.Email mbox writer into a same-directory temporary file, then commits the completed mailbox. The source store is never modified.

Parameters

destinationPath System.String requiredposition: 0
options OfficeIMO.Email.Store.EmailStoreMboxExportOptions = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public EmailStoreExportReport ExportToNativeDirectory(String destinationDirectory, EmailStoreNativeDirectoryExportOptions options, CancellationToken cancellationToken = null) #
Returns: EmailStoreExportReport

Exports selected items to a Maildir or EMLX directory tree without modifying the source.

Parameters

destinationDirectory System.String requiredposition: 0
options OfficeIMO.Email.Store.EmailStoreNativeDirectoryExportOptions requiredposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public EmailStorePstConversionReport ExportToPst(String destinationPath, EmailStorePstConversionOptions options = null, CancellationToken cancellationToken = null) #
Returns: EmailStorePstConversionReport

Streams this open store into a newly created Unicode PST. The source is read-only and is never mutated.

Parameters

destinationPath System.String requiredposition: 0
options OfficeIMO.Email.Store.EmailStorePstConversionOptions = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public EmailStoreReminderQueue GetReminders(EmailStoreReminderQueryOptions options = null, CancellationToken cancellationToken = null) #
Returns: EmailStoreReminderQueue

Builds a bounded reminder queue from item properties, respecting Outlook's excluded-folder domain by default.

Parameters

options OfficeIMO.Email.Store.EmailStoreReminderQueryOptions = null optionalposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public EmailStoreInspectionReport Inspect() #
Returns: EmailStoreInspectionReport

Returns the constant-memory catalog snapshot built while opening this session.

Open 2 overloads
public static EmailStoreSession Open(String path, EmailStoreReaderOptions options = null, CancellationToken cancellationToken = null) #
Returns: EmailStoreSession

Opens a file with random-access sharing suitable for large PST/OST sources.

Parameters

path System.String requiredposition: 0
options OfficeIMO.Email.Store.EmailStoreReaderOptions = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public static EmailStoreSession Open(Stream stream, String sourceName = null, EmailStoreReaderOptions options = null, Boolean leaveOpen = true, CancellationToken cancellationToken = null) #
Returns: EmailStoreSession

Opens a readable, seekable caller stream. Its original position is restored when the session is disposed.

Parameters

stream System.IO.Stream requiredposition: 0
sourceName System.String = null optionalposition: 1
options OfficeIMO.Email.Store.EmailStoreReaderOptions = null optionalposition: 2
leaveOpen System.Boolean = true optionalposition: 3
cancellationToken System.Threading.CancellationToken = null optionalposition: 4
public EmailStorePstCompactionPlan PlanPstCompaction(String destinationPath, EmailStorePstCompactionOptions options = null, CancellationToken cancellationToken = null) #
Returns: EmailStorePstCompactionPlan

Scans lightweight summaries and produces a no-write capacity/selection plan for a distinct compacted PST.

Parameters

destinationPath System.String requiredposition: 0
options OfficeIMO.Email.Store.EmailStorePstCompactionOptions = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public EmailStorePstSplitPlan PlanPstSplit(String outputBasePath, EmailStorePstSplitOptions options = null, CancellationToken cancellationToken = null) #
Returns: EmailStorePstSplitPlan

Builds a read-only query/size partition plan. No item payloads are read and no files are written.

Parameters

outputBasePath System.String requiredposition: 0
options OfficeIMO.Email.Store.EmailStorePstSplitOptions = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public EmailStoreReadResult ReadAll(CancellationToken cancellationToken = null) #
Returns: EmailStoreReadResult

Materializes the configured store scope as a compatibility convenience. Attachment payloads are omitted when RetainAttachmentContent is false; use selective session reads for deferred attachment streams.

Parameters

cancellationToken System.Threading.CancellationToken = null optionalposition: 0
public EmailStoreAssociatedDataCatalog ReadAssociatedData(EmailStoreAssociatedDataOptions options = null, CancellationToken cancellationToken = null) #
Returns: EmailStoreAssociatedDataCatalog

Reads bounded folder-associated information and projects documented category, configuration, view, rule, search-folder, and folder-field envelopes. Message bodies, recipients, and attachments are not read.

Parameters

options OfficeIMO.Email.Store.EmailStoreAssociatedDataOptions = null optionalposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
ReadItem 2 overloads
public EmailStoreItem ReadItem(EmailStoreItemReference reference, CancellationToken cancellationToken = null) #
Returns: EmailStoreItem

Reads and projects one explicitly selected item.

Parameters

reference OfficeIMO.Email.Store.EmailStoreItemReference requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public EmailStoreItem ReadItem(EmailStoreItemReference reference, EmailStoreItemReadOptions options, CancellationToken cancellationToken = null) #
Returns: EmailStoreItem

Reads only the requested parts of one explicitly selected item when the backend supports it.

Parameters

reference OfficeIMO.Email.Store.EmailStoreItemReference requiredposition: 0
options OfficeIMO.Email.Store.EmailStoreItemReadOptions requiredposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public EmailStoreItemSummary ReadSummary(EmailStoreItemReference reference, CancellationToken cancellationToken = null) #
Returns: EmailStoreItemSummary

Reads only the small set of source properties needed for browsing and search when the format supports it. A summary already carried by reference is returned without another source read.

Parameters

reference OfficeIMO.Email.Store.EmailStoreItemReference requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public IEnumerable<EmailStoreSearchResult> Search(EmailStoreQuery query, CancellationToken cancellationToken = null) #
Returns: IEnumerable<EmailStoreSearchResult>

Searches bounded lightweight summaries without materializing message bodies, recipients, or attachments.

Parameters

query OfficeIMO.Email.Store.EmailStoreQuery requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public EmailStoreContentSearchReport SearchContent(EmailStoreContentQuery query, IProgress<EmailStoreContentSearchProgress> progress = null, CancellationToken cancellationToken = null) #
Returns: EmailStoreContentSearchReport

Searches selected semantic fields with explicit scan, decode, character, result, progress, and resume bounds.

Parameters

query OfficeIMO.Email.Store.EmailStoreContentQuery requiredposition: 0
progress System.IProgress{OfficeIMO.Email.Store.EmailStoreContentSearchProgress} = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public EmailStoreTablePage SearchPage(EmailStoreTableQuery query, CancellationToken cancellationToken = null) #
Returns: EmailStoreTablePage

Executes a bounded typed table query using lightweight summaries only. Complete item payloads are not read.

Parameters

query OfficeIMO.Email.Store.EmailStoreTableQuery requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public EmailStorePstSplitReport SplitToPst(String outputBasePath, EmailStorePstSplitOptions options = null, CancellationToken cancellationToken = null) #
Returns: EmailStorePstSplitReport

Plans and executes a verified split in one call.

Parameters

outputBasePath System.String requiredposition: 0
options OfficeIMO.Email.Store.EmailStorePstSplitOptions = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public EmailStoreValidationReport Validate(EmailStoreValidationOptions options = null, CancellationToken cancellationToken = null) #
Returns: EmailStoreValidationReport

Validates a bounded store scope at structural, summary, or fully projected depth.

Parameters

options OfficeIMO.Email.Store.EmailStoreValidationOptions = null optionalposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1

Properties

public EmailStoreFormat Format { get; } #

Detected store format.

public String DisplayName { get; } #

Display name declared by the source when available.

public Int64 SourceLength { get; } #

Validated source length.

public IReadOnlyList<EmailStoreFolderInfo> Folders { get; } #

Lightweight folder catalog. PST/OST item payloads are not read to build it.

public EmailStoreFolderCatalog FolderCatalog { get; } #

Indexed folder navigation for this session.

public IReadOnlyList<EmailStoreDiagnostic> Diagnostics { get; } #

Structured diagnostics emitted while opening or reading the session.