Class SmtpClient
Represents a basic SMTP client that is capable of submitting messages to an SMTP server.
Inherited Members
Namespace: Swan.Net.Smtp
Syntax
public class SmtpClient
Examples
The following code explains how to send a simple e-mail.
using System.Net.Mail;
class Example
{
static void Main()
{
// create a new smtp client using google's smtp server
var client = new Swan.Net.Smtp.SmtpClient("smtp.gmail.com", 587);
// send an email
client.SendMailAsync(
new MailMessage("sender@test.com", "recipient@test.cm", "Subject", "Body"));
}
}
The following code demonstrates how to sent an e-mail using a SmtpSessionState:
using Swan.Net.Smtp;
class Example
{
static void Main()
{
// create a new smtp client using google's smtp server
var client = new SmtpClient("smtp.gmail.com", 587);
// create a new session state with a sender address
var session = new SmtpSessionState { SenderAddress = "sender@test.com" };
// add a recipient
session.Recipients.Add("recipient@test.cm");
// send
client.SendMailAsync(session);
}
}
The following code shows how to send an e-mail with an attachment using MimeKit:
using MimeKit;
using Swan.Net.Smtp;
class Example
{
static void Main()
{
// create a new smtp client using google's smtp server
var client = new SmtpClient("smtp.gmail.com", 587);
// create a new session state with a sender address
var session = new SmtpSessionState { SenderAddress = "sender@test.com" };
// add a recipient
session.Recipients.Add("recipient@test.cm");
// load a file as an attachment
var attachment = new MimePart("image", "gif")
{
Content = new
MimeContent(File.OpenRead("meme.gif"), ContentEncoding.Default),
ContentDisposition =
new ContentDisposition(ContentDisposition.Attachment),
ContentTransferEncoding = ContentEncoding.Base64,
FileName = Path.GetFileName("meme.gif")
};
// send
client.SendMailAsync(session);
}
}
Constructors
SmtpClient(String, Int32)
Initializes a new instance of the SmtpClient class.
Declaration
public SmtpClient(string host, int port)
Parameters
Type | Name | Description |
---|---|---|
String | host | The host. |
Int32 | port | The port. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | host. |
Properties
ClientHostname
Gets or sets the name of the client that gets announced to the server.
Declaration
public string ClientHostname { get; set; }
Property Value
Type | Description |
---|---|
String | The client hostname. |
Credentials
Gets or sets the credentials. No credentials will be used if set to null.
Declaration
public NetworkCredential? Credentials { get; set; }
Property Value
Type | Description |
---|---|
Nullable<NetworkCredential> | The credentials. |
EnableSsl
Gets or sets a value indicating whether the SSL is enabled. If set to false, communication between client and server will not be secured.
Declaration
public bool EnableSsl { get; set; }
Property Value
Type | Description |
---|---|
Boolean |
|
Host
Gets the host.
Declaration
public string Host { get; }
Property Value
Type | Description |
---|---|
String | The host. |
Port
Gets the port.
Declaration
public int Port { get; }
Property Value
Type | Description |
---|---|
Int32 | The port. |
Methods
SendMailAsync(MailMessage, String, Nullable<RemoteCertificateValidationCallback>, CancellationToken)
Sends an email message asynchronously.
Declaration
public Task SendMailAsync(MailMessage message, string sessionId = null, RemoteCertificateValidationCallback? callback = default(RemoteCertificateValidationCallback? ), CancellationToken cancellationToken = default(CancellationToken))
Parameters
Type | Name | Description |
---|---|---|
MailMessage | message | The message. |
String | sessionId | The session identifier. |
Nullable<RemoteCertificateValidationCallback> | callback | The callback. |
CancellationToken | cancellationToken | The cancellation token. |
Returns
Type | Description |
---|---|
Task | A task that represents the asynchronous of send email operation. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | message. |
SendMailAsync(SmtpSessionState, String, Nullable<RemoteCertificateValidationCallback>, CancellationToken)
Sends an email message using a session state object. Credentials, Enable SSL and Client Hostname are NOT taken from the state object but rather from the properties of this class.
Declaration
public Task SendMailAsync(SmtpSessionState sessionState, string sessionId = null, RemoteCertificateValidationCallback? callback = default(RemoteCertificateValidationCallback? ), CancellationToken cancellationToken = default(CancellationToken))
Parameters
Type | Name | Description |
---|---|---|
SmtpSessionState | sessionState | The state. |
String | sessionId | The session identifier. |
Nullable<RemoteCertificateValidationCallback> | callback | The callback. |
CancellationToken | cancellationToken | The cancellation token. |
Returns
Type | Description |
---|---|
Task | A task that represents the asynchronous of send email operation. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | sessionState. |
SendMailAsync(IEnumerable<SmtpSessionState>, String, Nullable<RemoteCertificateValidationCallback>, CancellationToken)
Sends an array of email messages using a session state object. Credentials, Enable SSL and Client Hostname are NOT taken from the state object but rather from the properties of this class.
Declaration
public Task SendMailAsync(IEnumerable<SmtpSessionState> sessionStates, string sessionId = null, RemoteCertificateValidationCallback? callback = default(RemoteCertificateValidationCallback? ), CancellationToken cancellationToken = default(CancellationToken))
Parameters
Type | Name | Description |
---|---|---|
IEnumerable<SmtpSessionState> | sessionStates | The session states. |
String | sessionId | The session identifier. |
Nullable<RemoteCertificateValidationCallback> | callback | The callback. |
CancellationToken | cancellationToken | The cancellation token. |
Returns
Type | Description |
---|---|
Task | A task that represents the asynchronous of send email operation. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | sessionStates. |
SecurityException | Could not upgrade the channel to SSL. |