Provides properties and methods for sending email messages and testing recipients.
System.Object
EASendMail.SmtpClient
[Visual Basic] Public Class SmtpClient
[C#] public class SmtpClient
[C++] public ref class SmtpClient
[JScript] public class SmtpClient
Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Public Constructors
SmtpClient Constructor | Initializes a new instance of the SmtpClient class. |
Public Properties
BindEndPoint | Gets or sets the local binded IP address for sending email. |
CurrentSmtpServer | Gets the latest smtp server that is used to send e-mail message. |
DnsServerIP | Gets or sets the dns server IP address for sending email directly. |
LogFileName | Gets or sets the log file name for smtp transaction. |
SaveCopy | Specifies if server should save a copy of message in sent folder. |
SmtpConversation | Gets the latest smtp conversation beween smtp server and smtp client. |
Tag |
Gets or sets an object that contains data to associate with the SmtpClient. |
Timeout |
Gets or sets the maximum time interval(seconds) the object will wait for a response from server before returning an error. |
UseSessionFileInGraphApi |
Gets or sets whether SmtpClient uses session file to send large email with Graph API protocol. |
Public Methods
BatchSendMail | Sends bulk e-mail messages with multiple threads. |
BeginSendMail | Sends the e-mail message asynchronously. |
BeginSendRawMail | Sends the e-mail message with raw content asynchronously. |
BeginTestRecipients | Tests the e-mail address asynchronously. |
Connect | Connects a smtp server. |
EndSendMail | Ends a pending asynchronous send. |
EndTestRecipients | Ends a pending asynchronous test. |
PostToRemoteQueue | Sends email message to remote EASendMail Service queue. |
Quit | Disconnects the smtp server. |
Reset | Sends a RSET command to smtp server. |
SendMail | Sends an e-mail message. |
SendRawMail | Sends an e-mail message with raw content. |
SendMailToQueue | Sends an e-mail message to EASendMail Service. |
SendMailToQueueEx | Sends an e-mail message to specified instance of EASendMail Service. |
TestRecipients | Tests an e-mail address. |
Public Events
OnAuthorized | Occurs when smtp server has authorized the user. |
OnBatchSendMail | Occurs when an email was sent by BatchSendMail method. |
OnConnected | Occurs when the client has connected to smtp server successfully. |
OnIdle | Occurs when the client is connecting server or waiting response from smtp server. |
OnQuit | Occurs when the client is disconnecting the smtp server. |
OnRcptToError | Occurs when the smtp server rejected a recipient. |
OnReceiveResponse | Occurs when the client has received a response from smtp server. |
OnSecuring | Occurs when the client is establishing the SSL connection. |
OnSendCommand | Occurs when the client has sent a command to the smtp server. |
OnSendingDataStream | Occurs when the client is sending the e-mail data to the smtp server. |
Example
[Visual Basic, C#, C++, JScript.NET] 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.
[VB - Send Email Example] Imports EASendMail Public Sub SendMail(sender As String, toRecipients As String, ccRecipients As String, subject As String, bodyText As String, server As String, user As String, password As String, useSsl As Boolean) Try ' From is a MailAddress object, it also supports implicit converting from string directly. ' The syntax is like this: "test@adminsystem.com" or "Tester <test@adminsystem.com>" ' oMail.From = New MailAddress("Tester", "test@adminsystem.com") ' oMail.From = New MailAddress("Tester <test@adminsystem.com>") ' oMail.From = New MailAddress("test@adminsystem.com") ' To, Cc and Bcc is a AddressCollection object, it also supports implicit converting from string directly. ' multiple addresses should be separated with (,;) ' The syntax is like this: "test@adminsystem.com, test1@adminsystem.com" ' oMail.To = New AddressCollection("test1@adminsystem.com, test2@adminsystem.com") ' oMail.To = New AddressCollection("Tester1 <test@adminsystem.com>, Tester2 <test2@adminsystem.com>") ' You can add more recipient by Add method ' oMail.To.Add(New MailAddress("tester", "test@adminsystem.com")) Dim oMail As SmtpMail = New SmtpMail("TryIt") oMail.From = New MailAddress(sender) oMail.To = New AddressCollection(toRecipients) oMail.Cc = New AddressCollection(ccRecipients) oMail.Subject = subject ' If bodyText contains html tags, please use ' oMail.HtmlBody = bodyText oMail.TextBody = bodyText ' Add attachment ' oMail.AddAttachment("c:\test.gif") ' Set server address Dim oServer As SmtpServer = New SmtpServer(server) If user.Length > 0 And password.Length > 0 Then ' Set user/password for ESMTP authentication oServer.User = user oServer.Password = password End If ' Most mordern SMTP servers require SSL/TLS connection now. ' ConnectTryTLS means if server supports SSL/TLS, SSL/TLS will be used automatically. oServer.ConnectType = If(useSsl, SmtpConnectType.ConnectSSLAuto, SmtpConnectType.ConnectTryTLS) Dim oSmtp As SmtpClient = New SmtpClient() ' To generate a log file for SMTP transaction, please use ' oSmtp.LogFileName = "c:\smtp.txt" oSmtp.SendMail(oServer, oMail) Console.WriteLine("The message has been submitted to server successfully!") Catch ex As Exception Console.WriteLine("Exception: {0}", ex.Message) End Try End Sub
[C# - Send Email Example] using System; using System.Collections; using EASendMail; public static void SendMail(string sender, string toRecipients, string ccRecipients, string subject, string bodyText, string server, string user, string password, bool useSsl) { try { // From is a MailAddress object, it also supports implicit converting from string. // The syntax is like this: "test@adminsystem.com" or "Tester <test@adminsystem.com>" // oMail.From = new MailAddress("Tester", "test@adminsystem.com"); // oMail.From = new MailAddress("Tester <test@adminsystem.com>"); // oMail.From = new MailAddress("test@adminsystem.com"); // To, Cc and Bcc is a AddressCollection object, it also supports implicit converting from string. // multiple addresses should be separated with (,;) // The syntax is like this: "test@adminsystem.com, test1@adminsystem.com" // oMail.To = new AddressCollection("test1@adminsystem.com, test2@adminsystem.com"); // oMail.To = new AddressCollection("Tester1<test@adminsystem.com>, Tester2<test2@adminsystem.com>"); // You can add more recipient by Add method // oMail.To.Add( new MailAddress( "tester", "test@adminsystem.com")); SmtpMail oMail = new SmtpMail("TryIt"); oMail.From = sender; oMail.To = toRecipients; oMail.Cc = ccRecipients; oMail.Subject = subject; // If bodyText contains the html tags, please use // oMail.HtmlBody = bodyText; oMail.TextBody = bodyText; // Add attachment // oMail.AddAttachment("c:\\test.gif"); // Set server address SmtpServer oServer = new SmtpServer(server); if (user.Length != 0 && password.Length != 0) { // Set user/password for ESMTP authentication oServer.User = user; oServer.Password = password; } // Most mordern SMTP servers require SSL/TLS connection now. // ConnectTryTLS means if server supports SSL/TLS, SSL/TLS will be used automatically. oServer.ConnectType = (useSsl) ? SmtpConnectType.ConnectSSLAuto : SmtpConnectType.ConnectTryTLS; SmtpClient oSmtp = new SmtpClient(); // To generate a log file for SMTP transaction, please use // oSmtp.LogFileName = "c:\\smtp.txt"; oSmtp.SendMail(oServer, oMail); Console.WriteLine("The message has been submitted to server successfully!"); } catch (Exception exp) { Console.WriteLine("Exception: {0}", exp.Message); } }
[C++/CLI - Send Email Example] using namespace System; using namespace System::Collections; using namespace EASendMail; static void SendMail(String ^sender, String ^toRecipients, String ^ccRecipients, String ^subject, String ^bodyText, String ^server, String ^user, String ^password, bool useSsl) { try { // From is a MailAddress object, it also supports implicit converting from string. // The syntax is like this: "test@adminsystem.com" or "Tester <test@adminsystem.com>" // oMail->From = gcnew MailAddress("Tester", "test@adminsystem.com"); // oMail->From = gcnew MailAddress("Tester <test@adminsystem.com>"); // oMail->From = gcnew MailAddress("test@adminsystem.com"); //To, Cc and Bcc is a AddressCollection object, it also supports implicit converting from string. // multiple address should be separated with (,;) //The syntax is like this: "test@adminsystem.com, test1@adminsystem.com" // oMail->To = gcnew AddressCollection("test1@adminsystem.com, test2@adminsystem.com"); // oMail->To = gcnew AddressCollection("Tester1 <test@adminsystem.com>, Tester2 <test2@adminsystem.com>"); // You can add more recipient by Add method // oMail->To->Add(gcnew MailAddress("tester", "test@adminsystem.com")); SmtpMail ^oMail = gcnew SmtpMail("TryIt"); oMail->From = gcnew EASendMail::MailAddress(sender); oMail->To = gcnew EASendMail::AddressCollection(toRecipients); oMail->Cc = gcnew EASendMail::AddressCollection(ccRecipients); oMail->Subject = subject; // If bodyText contains html tags, please use // oMail->HtmlBody = bodyText; oMail->TextBody = bodyText; // Add attachment // oMail->AddAttachment("c:\\test.gif"); // Set server address SmtpServer ^oServer = gcnew SmtpServer(server); if (user->Length != 0 && password->Length != 0) { // Set user/password for ESMTP authentication oServer->User = user; oServer->Password = password; } // Most mordern SMTP servers require SSL/TLS connection now. // ConnectTryTLS means if server supports SSL/TLS, SSL/TLS will be used automatically. oServer->ConnectType = (useSsl) ? SmtpConnectType::ConnectSSLAuto : SmtpConnectType::ConnectTryTLS; SmtpClient ^oSmtp = gcnew SmtpClient(); // To generate a log file for SMTP transaction, please use // oSmtp->LogFileName = "c:\\smtp.txt"; oSmtp->SendMail(oServer, oMail); Console::WriteLine("The message has been submitted to server successfully!"); } catch (Exception ^exp) { Console::WriteLine("Exception: {0}", exp->Message); } }
[JScript.NET - Send Email Example] public function SendMail(sender:String, toRecipients:String, ccRecipients:String, subject:String, bodyText:String, server:String, user:String, password:String, useSsl:Boolean) { try { // From is a MailAddress object, it also supports implicit converting from string. // The syntax is like this: "test@adminsystem.com" or "Tester <test@adminsystem.com>" // oMail.From = new MailAddress("Tester", "test@adminsystem.com"); // oMail.From = new MailAddress("Tester<test@adminsystem.com>"); // oMail.From = new MailAddress("test@adminsystem.com"); // To, Cc and Bcc is a AddressCollection object, it also supports implicit converting from string. // multiple addresses should be separated with (,;) // The syntax is like this: "test@adminsystem.com, test1@adminsystem.com" // oMail.To = new AddressCollection("test1@adminsystem.com, test2@adminsystem.com"); // oMail.To = new AddressCollection("Tester1 <test@adminsystem.com>, Tester2 <test2@adminsystem.com>"); // You can add more recipient by Add method // oMail.To.Add(new MailAddress("tester","test@adminsystem.com")); var oMail:SmtpMail = new SmtpMail("TryIt"); oMail.From = new MailAddress(sender); oMail.To = new AddressCollection(toRecipients); oMail.Cc = new AddressCollection(ccRecipients); oMail.Subject = subject; // If bodyText contains html tags, please use // oMail.HtmlBody = bodyText; oMail.TextBody = bodyText; // Add attachment // oMail.AddAttachment("c:\\test.gif"); // Set server address var oServer:SmtpServer = new SmtpServer(server); if(user.Length != 0 && password.Length != 0) { // Set user/password for ESMTP authentication oServer.User = user; oServer.Password = password; } // Most mordern SMTP servers require SSL/TLS connection now. // ConnectTryTLS means if server supports SSL/TLS, SSL/TLS will be used automatically. oServer.ConnectType = (useSsl)? SmtpConnectType.ConnectSSLAuto : SmtpConnectType.ConnectTryTLS; var oSmtp:SmtpClient = new SmtpClient(); // To generate a log file for SMTP transaction, please use // oSmtp.LogFileName = "c:\\smtp.txt"; oSmtp.SendMail(oServer, oMail); Console.WriteLine("The message has been submitted to server successfully!"); } catch(exp:System.Exception) { Console.WriteLine("Exception: {0}", exp.Message); } }
See Also
Using EASendMail SMTP .NET Component
User Authentication and SSL Connection
From, ReplyTo, Sender and Return-Path
Digital Signature and E-mail Encryption
DomainKeys and DKIM Signature
Send E-mail Directly (Simulating SMTP server)
Work with EASendMail Service (Email Queuing)
Bulk Email Sender Guidelines
Process Bounced Email (Non-Delivery Report) and Email Tracking
EASendMail .NET Namespace 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