Version: 4.3.5.0
Send, receive, edit, sign/verify and encrypt/decrypt email messages in any .NET application or service. 

Ease-of-Use, Efficiency, Stability


Ease-of-Use is an attribute of class design

  • Class properties are used for several purposes, making the object model more concise and easier to learn:
    • Default (uninitialized) values will work for most applications, so research may be avoided
    • Configuration properties control behavior (like SSL security), so users are usually spared low-level detail programming
    • Configuration properties are grouped in classes that can be easily serialized for later use
    • Some properties are high-level shortcuts. MailMessage.Html will search MailMessage.Parts to return text from the first "text/html" part found.
  • Classes merge low-level detail (typically properties that can be read) with high-level methods (that use overloads to provide default parameters). This technique combines completeness with ease-of-use.
  • F1 help documentation is fully supported.
  • MessageEditor control (with source code) is provided to visualize and/or edit any MailMessage.
  • Reuse
    • Existing .NET Mail and Mime classes are reused (MailAddress, MailAddressCollection, ContentType, ContentDisposition, etc.), minimizing the product learning curve and enhancing stability.
    • Sample applications provide dialog boxes that can be quickly customized.
    • Class hierarchy is carefully designed to locate selected convenience properties and methods in base classes for re-use by derived classes.

System segmentation promotes efficiency

  • MailMessage (and other classes derived from Part) localize message creating, editing, and interpretation.
  • MailMessage.GetEncodingStream() returns a Stream that performs encoding and decoding.
    • Using Write(), the provided buffer is decoded and the MailMessage is incrementally populated.
    • Using Read(), the provided buffer is filled with the next encoded segment that can be streamed to the server.
    • Encoding/decoding is interleaved with socket operations, resulting in optimal performance.
  • Smtp, Pop, and Imap components are optimized for socket communications. Messages are transfered on demand. Worker thread efficiently sleeps while waiting for socket data.

Stability

  • Microsoft environment standards are used to maximum benefit: most character set encodings, IDN encoding, Base64 encoding, S/MIME encoding, SSL encryption, etc. use existing .NET classes. Components are fully managed (written in C#).
  • Integrates with Visual Studio 2005 onward (applications can target .NET 2.0+, including Client Profile).
  • 20 years of email library design experience was leveraged to produce highly maintainable class definitions:
    • Protocol code is localized in Smtp, Pop and Imap classes.
    • Encoding/decoding code is localized in streaming classes that are optimized for dynamic, on-demand use.
    • Provided public classes are minimalist in design, providing a complete product that helps lead the developer to a good application design.