Using EASendMail ActiveX Object


Add Reference of EASendMailObj ActiveX Object to Visual Basic 6 Project

To use EASendMail ActiveX Object in your project, the first step is "Add reference of EASendMail ActiveX Object to your project". Please create/open your project with Visual Basic 6, then choose menu->"Project"->"References"->"EASendMailObj ActiveX Object", and click "Open"->"OK", the reference of EASendMail ActiveX Object will be added to your project, and you can start to use EASendMail SMTP ActiveX Object in your Visual Basic 6 Project.

send email in vb6

Add Reference of EASendMail ActiveX Object to Visual C++ Project

To use EASendMail SMTP ActiveX Object in your C++ project, the first step is "Add header files of EASendMail to your project". Please go to "C:\Program Files\EASendMail\Include\tlh" or "C:\Program Files (x86)\EASendMail\Include\tlh" folder, find "easendmailobj.tlh" and "easendmailobj.tli", and then copy these files to your project folder.

send email in c++
        
// include the following header files to your C++ project.
#include "easendmailobj.tlh"
using namespace EASendMailObjLib;

Then you can start to use EASendMail SMTP ActiveX Object in your Visual C++ Project.


Add Reference of EASendMail ActiveX Object to VBScript/ASP/JScript/WSH/MS SQL Stored Procedure Project

You just need to install EASendMail ActiveX Object on your machine, then you can use it directly.


Add Reference of EASendMail SMTP ActiveX Object to Delphi Project

To use EASendMail SMTP ActiveX Object in your Delphi project, the first step is "Add Unit file of EASendMail to your project". Please go to "C:\Program Files\EASendMail\Include\delphi" or "C:\Program Files (x86)\EASendMail\Include\delphi" folder, find "EASendMailObjLib_TLB.pas", and then copy this file to your project folder.

// include EASendMailObjLib_TLB unit to your Delphi Project
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, EASendMailObjLib_TLB, StdCtrls;
    

Then you can start to use EASendMail SMTP ActiveX Object in your Delphi Project.

You can also create EASendMailObjLib_TLB.pas manually by Delphi like this:


Deploying EASendMail with Application

EASendMail ActiveX Object is a COM object, you need to copy it to your target machine and run Regsvr32 "c:\my folder\easendmailobj.dll" to register it as a COM object. Download EASendMail installer and run it on your machine, the dll will be registered automatically.

regsvr32 activex

In windows vista/7/8 or later version, you MUST open DOS command by "run as administrator", otherwise, regsvr32 will be failed.

To start a command prompt as an administrator

Click Start, click All Programs, and then click Accessories.
Right-click Command prompt, and then click Run as administrator.
If the User Account Control dialog box appears, confirm that the action it displays is what you want, and then click Continue.


To start a command prompt as an administrator (alternative method)

Click Start.
In the Start Search box, type cmd, and then press CTRL+SHIFT+ENTER.
If the User Account Control dialog box appears, confirm that the action it displays is what you want, and then click Continue.
    
If you want to distribute/deploy without EASendMail installer.
1. copy easendmailobj.dll to destination machine. (run-time file of EASendMail ActiveX Object)
2. run "Regsvr32 [path]\easendmailobj.dll" under dos prompt. (register EASendMail ActiveX Object as com object)

Windows x64(AMD64)

For VBScript/ASP application on Windows x64 platform.
For Visual C++, Delphi application compiled to x64 native code.
Please use the dll in EASendMail installation path\Lib\native\x64\easendmailobj.dll (easendmailobj.dll for x64). 
For Visual Basic 6.0 application, because it is always 32bit application, so it can work fine without EASendMail ActiveX Object X64 File. 

Seperate builds of run-time dll for 32 and x64 platform

File Platform
Lib\native\x86\EASendMailObj.dll 32 bit
Lib\native\x64\EASendMailObj.dll 64 bit

Distribute EASendMail ActiveX Object by Manifest file

For VB6, C++, DELPHI or other standard exe application, you can distribute EASendMailObj.dll with your application to target machine without COM-registration. To learn more detail, please have a look at Registration-free COM with Manifest File.

Example

[Visual Basic 6.0, C++, JScript, Delphi] The following example demonstrates how to send email with EASendMail SMTP Component, but it doesn't demonstrates the events usage. To get the full samples of EASendMail, please refer to Samples section.

[VB6, VBA - Send Email]
Private Sub SendEmail()
  Dim oSmtp As EASendMailObjLib.Mail
  Set oSmtp = New EASendMailObjLib.Mail
  
  'The license code for EASendMail ActiveX Object, 
  'for evaluation usage, please use "TryIt" as the license code.
  oSmtp.LicenseCode = "TryIt"
 
  oSmtp.ServerAddr = "mail.adminsystem.com"
  'If you don't have SMTP server, use the following code 
  'send email via DNS lookup, EASendMail lookups SMTP server automatically. 
  'oSmtp.ServerAddr = ""   
  
  ' User and password for ESMTP authentication, if your server doesn't require
  ' user authentication, please remove the following codes
  oSmtp.UserName = "test@adminsystem.com"
  oSmtp.Password = "test"
  
  'If your server requires SSL connection 
  'oSmtp.SSL_init 
  'oSmtp.SSL_starttls = 0 
  'oSmtp.ServerPort = 465
  
  ''If your server requires TLS connection 
  'oSmtp.SSL_init 
  'oSmtp.SSL_starttls = 1 
  'oSmtp.ServerPort = 25
  
  oSmtp.FromAddr = "test@adminsystem.com"
  oSmtp.AddRecipient "Support Team", "support@adminsystem.com", 0
 
  oSmtp.Subject = "Test"
  oSmtp.BodyText = "Hello, this is a test...."
 
  If oSmtp.SendMail() = 0 Then
    MsgBox "Message delivered!"
  Else
    MsgBox oSmtp.GetLastErrDescription()
  End If
End Sub


[ASP, VBScript - Send Email]
  Dim oSmtp
  Set oSmtp = Server.CreateObject("EASendMailObj.Mail")
  
  'The license code for EASendMail ActiveX Object, 
  'for evaluation usage, please use "TryIt" as the license code.
  oSmtp.LicenseCode = "TryIt"
 
  oSmtp.ServerAddr = "mail.adminsystem.com" 
  
  ' User and password for ESMTP authentication, if your server doesn't require
  ' user authentication, please remove the following codes
  oSmtp.UserName = "test@adminsystem.com"
  oSmtp.Password = "test"
  
  'If your server requires SSL connection 
  'oSmtp.SSL_init 
  'oSmtp.SSL_starttls = 0 
  'oSmtp.ServerPort = 465
  
  ''If your server requires TLS connection 
  'oSmtp.SSL_init 
  'oSmtp.SSL_starttls = 1 
  'oSmtp.ServerPort = 25
  
  oSmtp.FromAddr = "test@adminsystem.com"
  oSmtp.AddRecipient "Support Team", "support@adminsystem.com", 0
 
  oSmtp.Subject = "Test email sent from VB6, VBA"
  oSmtp.BodyText = "Hello, this is a test...."
 
  If oSmtp.SendMail() = 0 Then
    Response.Write "Message delivered!"
  Else
    Response.Write oSmtp.GetLastErrDescription()
  End If


[JScript/WSH - Send Email]
function SendEmail()
{
  var oSmtp = new ActiveXObject("EASendMailObj.Mail");
  //The license code for EASendMail ActiveX Object, 
  //for evaluation usage, please use "TryIt" as the license code.
  oSmtp.LicenseCode = "TryIt";  
  
  oSmtp.ServerAddr = "mail.adminsystem.com";
  
  // User and password for ESMTP authentication, if your server doesn't require
  // user authentication, please remove the following codes
  oSmtp.UserName = "test@adminsystem.com"; 
  oSmtp.Password = "test";
  
  //If your server requires SSL connection 
  //oSmtp.SSL_init(); 
  //oSmtp.SSL_starttls = 0; 
  //oSmtp.ServerPort = 465;
  
  //If your server requires TLS connection 
  //oSmtp.SSL_init(); 
  //oSmtp.SSL_starttls = 1; 
  //oSmtp.ServerPort = 25;
    
  oSmtp.FromAddr = "test@adminsystem.com";
  oSmtp.AddRecipient( "Support Team", "support@adminsystem.com", 0 );
 
  oSmtp.Subject = "Test email sent from ASP, VBScript";
  oSmtp.BodyText = "Hello, this is a test ....";
  
  if( oSmtp.SendMail() == 0 )
    WScript.Echo( "Message delivered!" );
  else
    WScript.Echo( oSmtp.GetLastErrDescription());
}

[Visual C++ - Send Email]
#include "stdafx.h"
#include <comdef.h>
#include <iostream>

#include "easendmailobj.tlh"
using namespace EASendMailObjLib;

using namespace std;
 
void SendEmail()
{
  ::CoInitialize( NULL );
  IMailPtr oSmtp = NULL;
  oSmtp.CreateInstance(__uuidof(EASendMailObjLib::Mail));
	
  //The license code for EASendMail ActiveX Object,
  //for evaluation usage, please use "TryIt" as the license code.
  oSmtp->LicenseCode = _T("TryIt");
	
  oSmtp->ServerAddr = _T( "mail.adminsystem.com" );
  
  // User and password for ESMTP authentication, if your server doesn't require
  // user authentication, please remove the following codes
  oSmtp->UserName = _T("test@adminsystem.com"); 
  oSmtp->Password = _T("test");
  
  //If your server requires SSL connection 
  //oSmtp->SSL_init();
  //oSmtp->SSL_starttls = 0; 
  //oSmtp->ServerPort = 465;
  
  //If your server requires TLS connection 
  //oSmtp->SSL_init();
  //oSmtp->SSL_starttls = 1; 
  //oSmtp->ServerPort = 25;  
  
  oSmtp->FromAddr = _T( "test@adminsystem.com" );
  oSmtp->AddRecipient( _T("Support Team"), 
                          _T("support@adminsystem.com"), 0 );
 
  oSmtp->Subject = _T("Test");
  oSmtp->BodyText = _T("Hello, this is a test email from VC++ ....");
  
  if( oSmtp->SendMail() == 0 )
    cout << _T("Message delivered!") << endl;
  else
    cout << (const TCHAR*)(oSmtp->GetLastErrDescription()) << endl;
}

[Delphi - Send Email]
unit Unit1;

interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, EASendMailObjLib_TLB; // add EASendMail unit

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  oSmtp : TMail;
begin
  oSmtp := TMail.Create(Application);
  oSmtp.LicenseCode := 'TryIt';

  // Set your sender email address
  oSmtp.FromAddr := 'test@emailarchitect.net';

  // Add recipient email address
  oSmtp.AddRecipientEx( 'support@emailarchitect.net', 0);

  // Set email subject
  oSmtp.Subject := 'simple email from Delphi project';

  // Set email body
  oSmtp.BodyText := 'this is a test email sent from Delphi project, do not reply';

  // Your SMTP server address
  oSmtp.ServerAddr := 'smtp.emailarchitect.net';

  // User and password for ESMTP authentication, if your server doesn't require
  // user authentication, please remove the following codes
  oSmtp.UserName := 'test@emailarchitect.net';
  oSmtp.Password := 'testpassword';

  // If your SMTP server requires SSL connection, please add this line
  // oSmtp.SSL_init();

  ShowMessage( 'start to send email ...' );

  if oSmtp.SendMail() = 0 then
    ShowMessage( 'email was sent successfully!' )
  else
    ShowMessage( 'failed to send email with the following error: '
    + oSmtp.GetLastErrDescription());

end;

end.

See Also

Registration-free COM with Manifest
User Authentication and SSL Connection
From, ReplyTo, Sender and Return-Path
Digital Signature and Email Encryption - S/MIME
DomainKeys Signature and DKIM Signature
Send Email without SMTP server(DNS lookup)
Work with EASendMail Service(Mail Queuing)
Programming with Asynchronous Mode
Programming with FastSender
Mail vs. FastSender
Bulk Email Sender Guidelines
Process Bounced Email (Non-Delivery Report) and Email Tracking
Work with RTF and Word
EASendMail ActiveX Object References
EASendMail SMTP Component Samples

Online Tutorials

Send Email in VB 6.0 - Tutorial
Send Email in C# - Tutorial
Send Email in VB.NET - Tutorial
Send Email in Visual C++ - Tutorial
Send Email in Managed C++/CLI - Tutorial
Send Email in Delphi - Tutorial
Send Email in MS SQL stored procedure - Tutorial