Click or drag to resize
MimeKit

SmtpClient Class

An SMTP client that can be used to send email messages.
Inheritance Hierarchy

Namespace:  MailKit.Net.Smtp
Assembly:  MailKit (in MailKit.dll) Version: 1.14.0.0
Syntax
C#
public class SmtpClient : MailTransport

The SmtpClient type exposes the following members.

Constructors
  NameDescription
Public methodCode exampleSmtpClient
Initializes a new instance of the SmtpClient class.
Public methodCode exampleSmtpClient(IProtocolLogger)
Initializes a new instance of the SmtpClient class.
Top
Properties
  NameDescription
Public propertyCode exampleAuthenticationMechanisms
Get the authentication mechanisms supported by the SMTP server.
(Overrides MailServiceAuthenticationMechanisms.)
Public propertyCode exampleCapabilities
Get the capabilities supported by the SMTP server.
Public propertyClientCertificates
Gets or sets the client SSL certificates.
(Inherited from MailService.)
Public propertyIsAuthenticated
Get whether or not the client is currently authenticated with the SMTP server.
(Overrides MailServiceIsAuthenticated.)
Public propertyCode exampleIsConnected
Get whether or not the client is currently connected to an SMTP server.
(Overrides MailServiceIsConnected.)
Public propertyIsSecure
Get whether or not the connection is secure (typically via SSL or TLS).
(Overrides MailServiceIsSecure.)
Public propertyLocalDomain
Gets or sets the local domain.
Public propertyLocalEndPoint
Get or set the local IP end point to use when connecting to the remote host.
(Inherited from MailService.)
Public propertyCode exampleMaxSize
Get the maximum message size supported by the server.
Protected propertyProtocol
Get the protocol supported by the message service.
(Overrides MailServiceProtocol.)
Public propertyProtocolLogger
Get the protocol logger.
(Inherited from MailService.)
Public propertyQueryCapabilitiesAfterAuthenticating
Get or set whether or not the capabilities should be re-queried after authenticating.
Public propertyCode exampleServerCertificateValidationCallback
Get or sets a callback function to validate the server certificate.
(Inherited from MailService.)
Public propertySslProtocols
Gets or sets the SSL/TLS protocols that the client is allowed to use.
(Inherited from MailService.)
Public propertySyncRoot
Gets an object that can be used to synchronize access to the SMTP server.
(Overrides MailServiceSyncRoot.)
Public propertyTimeout
Get or set the timeout for network streaming operations, in milliseconds.
(Overrides MailServiceTimeout.)
Top
Methods
  NameDescription
Public methodAuthenticate(ICredentials, CancellationToken)
Authenticates using the supplied credentials.
(Inherited from MailService.)
Public methodCode exampleAuthenticate(String, String, CancellationToken)
Authenticates using the specified user name and password.
(Inherited from MailService.)
Public methodAuthenticate(Encoding, ICredentials, CancellationToken)
Authenticates using the supplied credentials.
(Overrides MailServiceAuthenticate(Encoding, ICredentials, CancellationToken).)
Public methodAuthenticate(Encoding, String, String, CancellationToken)
Authenticates using the specified user name and password.
(Inherited from MailService.)
Public methodAuthenticateAsync(ICredentials, CancellationToken)
Asynchronously authenticates using the supplied credentials.
(Inherited from MailService.)
Public methodAuthenticateAsync(String, String, CancellationToken)
Asynchronously authenticates using the specified user name and password.
(Inherited from MailService.)
Public methodAuthenticateAsync(Encoding, ICredentials, CancellationToken)
Asynchronously authenticates using the supplied credentials.
(Inherited from MailService.)
Public methodAuthenticateAsync(Encoding, String, String, CancellationToken)
Asynchronously authenticates using the specified user name and password.
(Inherited from MailService.)
Public methodCode exampleConnect(Uri, CancellationToken)
Establish a connection to the specified mail server.
(Inherited from MailService.)
Public methodConnect(String, Int32, Boolean, CancellationToken)
Establish a connection to the specified mail server.
(Inherited from MailService.)
Public methodCode exampleConnect(String, Int32, SecureSocketOptions, CancellationToken)
Establishes a connection to the specified SMTP or SMTP/S server.
(Overrides MailServiceConnect(String, Int32, SecureSocketOptions, CancellationToken).)
Public methodConnect(Socket, String, Int32, SecureSocketOptions, CancellationToken)
Establish a connection to the specified SMTP or SMTP/S server using the provided socket.
Public methodConnectAsync(Uri, CancellationToken)
Asynchronously establish a connection to the specified mail server.
(Inherited from MailService.)
Public methodConnectAsync(String, Int32, SecureSocketOptions, CancellationToken)
Asynchronously establish a connection to the specified mail server.
(Inherited from MailService.)
Public methodConnectAsync(String, Int32, Boolean, CancellationToken)
Asynchronously establish a connection to the specified mail server.
(Inherited from MailService.)
Public methodCode exampleDisconnect
Disconnect the service.
(Overrides MailServiceDisconnect(Boolean, CancellationToken).)
Public methodDisconnectAsync
Asynchronously disconnects the service.
(Inherited from MailService.)
Public methodDispose
Releases all resource used by the MailService object.
(Inherited from MailService.)
Protected methodDispose(Boolean)
Releases the unmanaged resources used by the SmtpClient and optionally releases the managed resources.
(Overrides MailServiceDispose(Boolean).)
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Public methodExpand
Expand a mailing address alias.
Public methodExpandAsync
Asynchronously expand a mailing address alias.
Protected methodFinalize
Releases unmanaged resources and performs other cleanup operations before the MailService is reclaimed by garbage collection.
(Inherited from MailService.)
Protected methodCode exampleGetDeliveryStatusNotifications
Get the types of delivery status notification desired for the specified recipient mailbox.
Protected methodCode exampleGetEnvelopeId
Get the envelope identifier to be used with delivery status notifications.
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodNoOp
Ping the SMTP server to keep the connection alive.
(Overrides MailServiceNoOp(CancellationToken).)
Public methodNoOpAsync
Asynchronously pings the mail server to keep the connection alive.
(Inherited from MailService.)
Protected methodOnAuthenticated
Raise the authenticated event.
(Inherited from MailService.)
Protected methodOnConnected
Raise the connected event.
(Inherited from MailService.)
Protected methodOnDisconnected
Raise the disconnected event.
(Inherited from MailService.)
Protected methodOnMessageSent
Raise the message sent event.
(Inherited from MailTransport.)
Protected methodOnNoRecipientsAccepted
Invoked only when no recipients were accepted by the SMTP server.
Protected methodOnRecipientAccepted
Invoked when a recipient is accepted by the SMTP server.
Protected methodOnRecipientNotAccepted
Invoked when a recipient is not accepted by the SMTP server.
Protected methodOnSenderAccepted
Invoked when the sender is accepted by the SMTP server.
Protected methodOnSenderNotAccepted
Invoked when a recipient is not accepted by the SMTP server.
Public methodCode exampleSend(MimeMessage, CancellationToken, ITransferProgress)
Sends the specified message.
(Inherited from MailTransport.)
Public methodCode exampleSend(FormatOptions, MimeMessage, CancellationToken, ITransferProgress)
Send the specified message.
(Overrides MailTransportSend(FormatOptions, MimeMessage, CancellationToken, ITransferProgress).)
Public methodSend(MimeMessage, MailboxAddress, IEnumerableMailboxAddress, CancellationToken, ITransferProgress)
Sends the specified message using the supplied sender and recipients.
(Inherited from MailTransport.)
Public methodSend(FormatOptions, MimeMessage, MailboxAddress, IEnumerableMailboxAddress, CancellationToken, ITransferProgress)
Send the specified message using the supplied sender and recipients.
(Overrides MailTransportSend(FormatOptions, MimeMessage, MailboxAddress, IEnumerableMailboxAddress, CancellationToken, ITransferProgress).)
Public methodSendAsync(MimeMessage, CancellationToken, ITransferProgress)
Asynchronously sends the specified message.
(Inherited from MailTransport.)
Public methodSendAsync(FormatOptions, MimeMessage, CancellationToken, ITransferProgress)
Asynchronously sends the specified message.
(Inherited from MailTransport.)
Public methodSendAsync(MimeMessage, MailboxAddress, IEnumerableMailboxAddress, CancellationToken, ITransferProgress)
Asynchronously sends the specified message using the supplied sender and recipients.
(Inherited from MailTransport.)
Public methodSendAsync(FormatOptions, MimeMessage, MailboxAddress, IEnumerableMailboxAddress, CancellationToken, ITransferProgress)
Asynchronously sends the specified message using the supplied sender and recipients.
(Inherited from MailTransport.)
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Public methodVerify
Verify the existence of a mailbox address.
Public methodVerifyAsync
Asynchronously verify the existence of a mailbox address.
Top
Events
  NameDescription
Public eventAuthenticated
Occurs when the client has been successfully authenticated.
(Inherited from MailService.)
Public eventConnected
Occurs when the client has been successfully connected.
(Inherited from MailService.)
Public eventDisconnected
Occurs when the client gets disconnected.
(Inherited from MailService.)
Public eventMessageSent
Occurs when a message is successfully sent via the transport.
(Inherited from MailTransport.)
Top
Remarks

The SmtpClient class supports both the "smtp" and "smtps" protocols. The "smtp" protocol makes a clear-text connection to the SMTP server and does not use SSL or TLS unless the SMTP server supports the STARTTLS extension. The "smtps" protocol, however, connects to the SMTP server using an SSL-wrapped connection.

The connection established by any of the Connect methods may be re-used if an application wishes to send multiple messages to the same SMTP server. Since connecting and authenticating can be expensive operations, re-using a connection can significantly improve performance when sending a large number of messages to the same SMTP server over a short period of time.

Examples
C#
public static void SendMessages (IList<MimeMessage> messages)
{
    using (var client = new SmtpClient ()) {
        client.Connect ("smtp.gmail.com", 465, SecureSocketOptions.SslOnConnect);

        client.Authenticate ("username", "password");

        foreach (var message in messages) {
            client.Send (message);
        }

        client.Disconnect (true);
    }
}
See Also