API Reference

Class

EmailDocument

Namespace OfficeIMO.Email
Assembly OfficeIMO.Email
Modifiers sealed

Format-neutral representation of an email or Outlook item.

Inheritance

  • Object
  • EmailDocument

Usage

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

Accepted by parameters

Constructors

Methods

Load 3 overloads
public static EmailDocument Load(String filePath, EmailReaderOptions options = null, CancellationToken cancellationToken = null) #
Returns: EmailDocument

Loads one EML, MSG, OFT, or TNEF artifact with the default bounded policy. Use EmailDocumentReader when the caller also needs structured diagnostics.

Parameters

filePath System.String requiredposition: 0
options OfficeIMO.Email.EmailReaderOptions = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public static EmailDocument Load(Byte[] data, EmailReaderOptions options = null, CancellationToken cancellationToken = null) #
Returns: EmailDocument

Loads one EML, MSG, or TNEF artifact from memory. Use a source-name reader overload when bytes represent OFT. Use EmailDocumentReader when the caller also needs structured diagnostics.

Parameters

data System.Byte[] requiredposition: 0
options OfficeIMO.Email.EmailReaderOptions = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public static EmailDocument Load(Stream stream, EmailReaderOptions options = null, CancellationToken cancellationToken = null) #
Returns: EmailDocument

Loads one EML, MSG, or TNEF artifact without closing the stream. Seekable streams are read from the beginning and restored to their original position; non-seekable streams are read forward from their current position. Use EmailDocumentReader when the caller also needs structured diagnostics.

Parameters

stream System.IO.Stream requiredposition: 0
options OfficeIMO.Email.EmailReaderOptions = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
LoadAsync 2 overloads
public static async Task<EmailDocument> LoadAsync(String filePath, EmailReaderOptions options = null, CancellationToken cancellationToken = null) #
Returns: Task<EmailDocument>

Asynchronously loads one EML, MSG, or TNEF artifact with the default bounded policy.

Parameters

filePath System.String requiredposition: 0
options OfficeIMO.Email.EmailReaderOptions = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public static async Task<EmailDocument> LoadAsync(Stream stream, EmailReaderOptions options = null, CancellationToken cancellationToken = null) #
Returns: Task<EmailDocument>

Asynchronously loads an artifact without closing the stream. Seekable streams are read from the beginning and restored to their original position; non-seekable streams are read forward.

Parameters

stream System.IO.Stream requiredposition: 0
options OfficeIMO.Email.EmailReaderOptions = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
Save 3 overloads
public EmailWriteResult Save(String filePath, EmailWriterOptions options = null) #
Returns: EmailWriteResult

Saves the document as EML, MSG, OFT, or TNEF, inferred from the destination filename.

Parameters

filePath System.String requiredposition: 0
options OfficeIMO.Email.EmailWriterOptions = null optionalposition: 1
public EmailWriteResult Save(String filePath, EmailFileFormat format, EmailWriterOptions options = null) #
Returns: EmailWriteResult

Saves the document in the explicitly selected artifact format.

Parameters

filePath System.String requiredposition: 0
format OfficeIMO.Email.EmailFileFormat requiredposition: 1
options OfficeIMO.Email.EmailWriterOptions = null optionalposition: 2
public EmailWriteResult Save(Stream stream, EmailFileFormat format = Eml, EmailWriterOptions options = null) #
Returns: EmailWriteResult

Saves the document to a stream without closing it.

Parameters

stream System.IO.Stream requiredposition: 0
format OfficeIMO.Email.EmailFileFormat = Eml optionalposition: 1
options OfficeIMO.Email.EmailWriterOptions = null optionalposition: 2
SaveAsync 3 overloads
public Task<EmailWriteResult> SaveAsync(String filePath, EmailWriterOptions options = null, CancellationToken cancellationToken = null) #
Returns: Task<EmailWriteResult>

Asynchronously saves the document, inferring the format from the destination filename.

Parameters

filePath System.String requiredposition: 0
options OfficeIMO.Email.EmailWriterOptions = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public async Task<EmailWriteResult> SaveAsync(String filePath, EmailFileFormat format, EmailWriterOptions options = null, CancellationToken cancellationToken = null) #
Returns: Task<EmailWriteResult>

Asynchronously saves the document in the explicitly selected artifact format.

Parameters

filePath System.String requiredposition: 0
format OfficeIMO.Email.EmailFileFormat requiredposition: 1
options OfficeIMO.Email.EmailWriterOptions = null optionalposition: 2
cancellationToken System.Threading.CancellationToken = null optionalposition: 3
public async Task<EmailWriteResult> SaveAsync(Stream stream, EmailFileFormat format = Eml, EmailWriterOptions options = null, CancellationToken cancellationToken = null) #
Returns: Task<EmailWriteResult>

Asynchronously saves the document to a stream without closing it.

Parameters

stream System.IO.Stream requiredposition: 0
format OfficeIMO.Email.EmailFileFormat = Eml optionalposition: 1
options OfficeIMO.Email.EmailWriterOptions = null optionalposition: 2
cancellationToken System.Threading.CancellationToken = null optionalposition: 3
public Byte[] ToBytes(EmailFileFormat format = Eml, EmailWriterOptions options = null) #
Returns: Byte[]

Serializes the document to memory.

Parameters

format OfficeIMO.Email.EmailFileFormat = Eml optionalposition: 0
options OfficeIMO.Email.EmailWriterOptions = null optionalposition: 1
public MemoryStream ToStream(EmailFileFormat format = Eml, EmailWriterOptions options = null) #
Returns: MemoryStream

Serializes the document to a new writable memory stream positioned at the beginning.

Parameters

format OfficeIMO.Email.EmailFileFormat = Eml optionalposition: 0
options OfficeIMO.Email.EmailWriterOptions = null optionalposition: 1

Properties

public EmailFileFormat Format { get; set; } #

Source format used to create the document.

public OutlookItemKind OutlookItemKind { get; set; } #

Typed Outlook item classification.

public String MessageClass { get; set; } #

Outlook message class, such as IPM.Note.

public Nullable<Int32> OutlookCodePage { get; set; } #

Primary MAPI code page used for legacy PT_STRING8 properties.

public String Subject { get; set; } #

Message subject.

public EmailAddress From { get; set; } #

Represented author/from address.

public EmailAddress Sender { get; set; } #

Actual sender address when different from From.

public EmailAddress ReceivedBy { get; set; } #

Recipient stamped by the message store as having received the message.

public EmailAddress ReceivedRepresenting { get; set; } #

Represented recipient stamped by the message store.

public String MessageId { get; set; } #

Message-ID value.

public Nullable<DateTimeOffset> Date { get; set; } #

Date declared by the message.

public Nullable<DateTimeOffset> ReceivedDate { get; set; } #

Delivery/received timestamp when available.

public EmailBody Body { get; } #

Body alternatives.

public EmailMessageMetadata MessageMetadata { get; } #

Common Outlook/MAPI message metadata.

public EmailProtectionInfo Protection { get; } #

Protected-message classification and cryptographic payload handoff.

public IList<EmailHeader> Headers { get; } #

Ordered, duplicate-preserving headers.

public IList<EmailRecipient> Recipients { get; } #

Typed recipient collection.

public IList<EmailAttachment> Attachments { get; } #

Attachment and embedded-item collection.

public IList<MapiProperty> MapiProperties { get; } #

Root MAPI properties, including properties not projected onto common fields.

public MapiPropertyBag Mapi { get; } #

Typed MAPI access backed by the exact MapiProperties collection.

public MapiPropertyPatch MapiWritePatch { get; } #

Exact property overrides applied after normal typed projection by MSG, TNEF, PST, and semantic writers. Empty by default; use this only when an advanced property-level patch must win over a typed projection.

public OutlookUserPropertyCollection UserProperties { get; } #

Outlook-compatible item user fields backed by the root MAPI property bag.

public IList<TnefAttribute> TnefAttributes { get; } #

Ordered raw TNEF attributes when the source format is TNEF.

public OutlookAppointment Appointment { get; set; } #

Typed appointment projection when OutlookItemKind is Appointment.

public OutlookMeetingCommunication MeetingCommunication { get; set; } #

Typed meeting request, update, cancellation, response, or forward-notification envelope.

public OutlookContact Contact { get; set; } #

Typed contact projection when OutlookItemKind is Contact.

public OutlookDistributionList DistributionList { get; set; } #

Typed personal distribution-list projection.

public OutlookTask Task { get; set; } #

Typed task projection when OutlookItemKind is Task.

public OutlookTaskCommunication TaskCommunication { get; set; } #

Typed task request, acceptance, rejection, or update envelope.

public OutlookJournal Journal { get; set; } #

Typed journal projection when OutlookItemKind is Journal.

public OutlookNote Note { get; set; } #

Typed note projection when OutlookItemKind is Note.

public IDictionary<String, Object> Properties { get; } #

Extensible source property bag for MAPI and format-specific metadata.

public Byte[] RawSource { get; set; } #

Original artifact bytes when raw preservation was requested.