About PowerTCP Mail for .NET

Add email, messaging, encoding and decoding to your desktop or Web applications.

PowerTCP Mail for .NET includes email components that seamlessly combine security, efficiency, and ease of use so you can quickly develop custom email handling applications. Includes classes for creating, sending and receiving email. C# and VB code snippets and sample applications will give your project a boost.

PowerTCP Mail for .NET Features

Manage email using standards-based protocols

  • Simple Mail Transfer Protocol (SMTP) and Post Office Protocol (POP3) components send and receive email, respectively
  • Internet Message Access Protocol (IMAP4) component manages email on IMAP4 servers (Office 365, Gmail, Yahoo, Exchange, etc.)
  • Multipurpose Internet Mail Extensions (MIME) enable the encoding and decoding of non-ASCII data like international UNICODE text and binary data
  • Secure/Multipurpose Internet Mail Extensions (S/MIME) version 3.0, 3.1, 3.2 enable message signing (authentication) and encryption (privacy)

SMTP, POP3, IMAP4 components interact with servers

  • Integrates .NET features, including generics, IPv6, dual-stack sockets and X509 certificates
  • Secure: Link-level encryption (SSL 2.0, SSL 3.0, PCT, TLS 1.0, 1.1, 1.2, 1.3) is controlled using simple session properties
  • Progress events report message upload/download activity
  • Log events report data for debugging and display purposes
  • Send any custom command using the exposed TCP connection

SMTP is for sending email

  • Secure
    • - Authentication support: OAuth 2.0 (XOAUTH2), CRAM-MD5, GSSAPI and NTLM (with single-sign-on), LOGIN, PLAIN
    • - Encrypt and/or sign outbound S/MIME messages
  • Messages can be sent via relay servers, intermediate mail servers, or directly to recipients' domain mail servers
  • Send simple email with a single line of code, or build a complex MailMessage and send it
  • Delivery Status Notification (DSN) fully supported
  • Fast
    • - On-the-fly message encoding eliminates intermediate files and delays by streaming encoded message data from the source MailMessage to the destination server
    • - Supports pipelining of commands without waiting for server acknowledgments

POP3 is for downloading email

  • Secure
    • - Authentication support: OAuth 2.0 (XOAUTH2), CRAM-MD5, GSSAPI and NTLM (with single-sign-on), LOGIN, PLAIN, clear-text, APOP
    • - Decrypt and/or verify signed S/MIME messages
  • Easy message management - default behavior populates message size and id without downloading message content
  • Dynamic message retrieval - populate selected messages with just the header, header plus a little content, or the entire message
  • Fast on-the-fly message decoding eliminates intermediate files and delays by streaming encoded message data from the source server to the destination MailMessage

IMAP4 downloads mail too, and adds remote mail management

  • Secure
    • - Authentication support: OAuth 2.0 (XOAUTH2), CRAM-MD5, GSSAPI and NTLM (with single-sign-on), LOGIN, PLAIN, clear-text
    • - Decrypt and/or verify signed S/MIME messages
  • Rich and capable object model
  • IMAP4 commands synchronize the local object model with the server (change the local model and the server is changed)
  • ImapMessage class represents a message in a mailbox - use to change server-side message flags and get a single message
  • Mailbox class represents a server-side mailbox that contains messages - use to alter mailbox properties, enumerate messages, get messages in bulk and append new messages
  • MailboxCollection class represents child mailboxes - use to manage nested mailboxes
  • Update event informs client of dynamic updates to the selected mailbox
  • Retrieve an entire message, headers only, attachments only, or any part desired
  • Fast on-the-fly message decoding eliminates intermediate files and delays by streaming encoded message data from the source server to the destination MailMessage

MailMessage class at the core of the system

  • Represents a decoded MIME, Secure MIME (S/MIME), or non-MIME (straight ASCII) Internet email message
  • Dynamic encoding occurs when the encoding stream is read from; dynamic decoding occurs when encoding stream is written to
  • Can be used independent of protocol components as a general-purpose MIME or S/MIME encoder/decoder
  • Rich object model represents each header, text, html, attachment, part, and resource element
  • Attachments are decoded and stored in temp files by default, but can optionally be stored in MemoryStreams if disk access is not desired

Integrated security protects data at 3 levels

  • Level 1: comprehensive login options authenticate the client to the server; OAuth 2.0 (XOAUTH2), GSSAPI, NTLM, LOGIN, and more!
  • Level 2: SSL2, SSL3, PCT, TLS 1.0, 1.1, 1.2, 1.3 implements end-to-end encryption between your application and the email server
  • Level 3: S/MIME encoding/decoding authenticates the integrity and author of the message and encrypts the content
  • Included X509 certificate management support is used to manage security at levels 2 and 3

Integrated Security

Level 1

  • The following login mechanisms are supported: OAuth 2.0 (XOAUTH2), GSSAPI, NTLM, APOP, CRAM-MD5, LOGIN, PLAIN, and clear-text
  • Servers usually require client authentication. PowerTCP supports all typical techniques, including GSSAPI and NTLM (that can be used in single-sign-on mode where the current user's credentials are used).
  • A username and password is required in all cases except single-sign-on.

Level 2

  • Secure Socket Layer (SSL) ensures link-level privacy.
  • SSL can be implicit, where a dedicated server port expects an immediate SSL negotiation upon connection establishment, or explicit, where SSL is negotiated on demand. PowerTCP supports both techniques using simple configuration properties.
  • SSL 2.0, SSL 3.0, PCT, TLS 1.0, 1.1, 1.2 is supported.

Level 3

  • S/MIME version 3.2 standards (backwards compatible to version 3.0) enforce message authentication and message privacy:
  • Message authentication is implemented by the sender performing a one-way hash on the message and his public key. The receiver duplicates this hash (using the sender's public key in the included X509 certificate), and a matching hash verifies the message is intact and was sent by the individual identified in the X509 certificate.
  • Message privacy is implemented by the sender encrypting the message using the recipients public key. Only the recipient can decrypt this message because only he has the necessary private key.
  • Typically, user1 will send a signed message to User2. User2 now has user1's public key. User2 can use that public key to encrypt a response to User1, and then User2 can also "sign" the encrypted message so that User1 gets his public key. From that point onward both users can send the other encrypted, signed messages.
  • MailMessage methods SecureSign(), SecureEncrypt() and SecureDecode() perform these functions.

X509 certificate management is automatic when possible, but included sample source code (VB and C#) is useful when user interaction is required.