ExEMail 

A built from the ground up using 100% ATL-based code, The ExEMail can be dropped into any language that supports ActiveX thus enabling an application to support full mail and file attachment transfers. ExEmail is fully SMTP RFC-compliant and provides support for binary (MIME) attachments and HTML email.

What does ExEMail provide and other SMTP components doesn't?

The ExEMail is able to find the SMTP server where the email message should be sent, from the recipient's email address, by queering a DNS server. The ExEMail doesn't block your application while delivering a message. It provides a range of events to let you know how the email message is delivered. The object model is intuitive, rich and flexible.

How ExEMail component delivers a message?

Here are the steps that ExEMail component follows in order to deliver an email message:

  1. The component sends a query to the DNS server in order to get the SMTP hosts that are responsible for the domain recipient's email address.
  2. Based on the DNS's response, the component is trying each SMTP server found to deliver the email message.
  3. The component prepares and sends the information about the sender and recipients email addresses to the SMTP server.
  4. If the server accepts the sender and the recipients, it prepares the message's data and sends it.
  5. Once that message's data was sent, the component is going to close the connection.  
  6. The client is going to inform the server that wants to close the connection, by sending QUIT command
  7. The client is disconnected

Here's a sample how to send an email message using non-blocking mode:

Dim WithEvents e As EMail

Private Sub e_EndSend(ByVal Msg As EXEMAILLibCtl.IMessage)
    If Msg.LastError = 0 Then
        MsgBox "The message was succesfully delivered."
    End If
End Sub

Private Sub Form_Load()
    Set e = New EMail
    Dim m As New Message
    Set m.Notifier = e
    
    m.Send "myaccount@usermail.com", "sss@colam.com", "Test", "This is a test message", "c:\winnt\system32\setup.exe"
End Sub

The non-blocking mode does not block your application during delivering the messages, and your application can handle each message' notifications ( events ).

The following sample shows how to send an email message using blocking mode:

Private Sub Form_Load()
    Dim m As New Message
    If (0 = m.Send("myaccount@usermail.com", "sss@colam.com", "Test", "This is a test message", "c:\winnt\system32\setup.exe")) Then
        MsgBox "The message was succesfully delivered "
    End If
End Sub

The blocking mode blocks your application during delivering the message, and it doesn't fire any event. In order to create EMail and Message object for your application you have to use NewEmail and NewMessage properties that manages to license the objects at runtime.

® ExEMail is a trademark of Exontrol. All Rights Reserved.