The MailMessage class is at the core of the product. It is created when an encoded message is decoded, or when it is "built-up" in code by setting properties and adding MIME entities (parts). The former usage is typical when using the Pop and Imap components to decode messages. The latter usage is typical when composing email prior to sending it using the Smtp component.
The PowerTCP MailMessage class is more capable than the MailMessage class included with the .NET framework:
MailMessage represents a decoded MIME, Secure MIME (S/MIME), or non-MIME Internet email message. MailMessage.GetEncodingStream() returns a Stream that performs encoding and decoding of the message. Writing to this Stream incrementally populates the MailMessage with decoded content. Reading from this Stream fills the user's buffer with the next segment of encoded bytes.
MailMessage is used by the Smtp component to encode email and by the Pop and Imap components to decode received email. MailMessage can also be used independently as a general purpose S/MIME encoder/decoder. Supported transfer encoding types are Base64, Quoted Printable and UUEncode. Unicode encoding takes advantage of all encoders installed on the system. Every MIME attachment, MIME part, and label element is represented as an object, giving you unsurpassed processing convenience.
The MessageEditor Control, included in Dart.Mail.Controls.dll, can be used as a (read-only) message viewer or as a (read-write) message editor. Source code is provided.