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: 2.0.1.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 propertyCheckCertificateRevocation
Get or set whether connecting via SSL/TLS should check certificate revocation.
(Inherited from MailService.)
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 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)
Authenticate using the supplied credentials.
(Inherited from MailService.)
Public methodAuthenticate(SaslMechanism, CancellationToken)
Authenticate using the specified SASL mechanism.
(Overrides MailServiceAuthenticate(SaslMechanism, CancellationToken).)
Public methodCode exampleAuthenticate(String, String, CancellationToken)
Authenticate using the specified user name and password.
(Inherited from MailService.)
Public methodAuthenticate(Encoding, ICredentials, CancellationToken)
Authenticate using the supplied credentials.
(Overrides MailServiceAuthenticate(Encoding, ICredentials, CancellationToken).)
Public methodAuthenticate(Encoding, String, String, CancellationToken)
Authenticate using the specified user name and password.
(Inherited from MailService.)
Public methodAuthenticateAsync(ICredentials, CancellationToken)
Asynchronously authenticate using the supplied credentials.
(Inherited from MailService.)
Public methodAuthenticateAsync(SaslMechanism, CancellationToken)
Asynchronously authenticate using the specified SASL mechanism.
(Overrides MailServiceAuthenticateAsync(SaslMechanism, CancellationToken).)
Public methodAuthenticateAsync(String, String, CancellationToken)
Asynchronously authenticate using the specified user name and password.
(Inherited from MailService.)
Public methodAuthenticateAsync(Encoding, ICredentials, CancellationToken)
Asynchronously authenticate using the supplied credentials.
(Overrides MailServiceAuthenticateAsync(Encoding, ICredentials, CancellationToken).)
Public methodAuthenticateAsync(Encoding, String, String, CancellationToken)
Asynchronously authenticate 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)
Establish 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, Boolean, CancellationToken)
Asynchronously establish a connection to the specified mail server.
(Inherited from MailService.)
Public methodCode exampleConnectAsync(String, Int32, SecureSocketOptions, CancellationToken)
Asynchronously establish a connection to the specified SMTP or SMTP/S server.
(Overrides MailServiceConnectAsync(String, Int32, SecureSocketOptions, CancellationToken).)
Public methodConnectAsync(Socket, String, Int32, SecureSocketOptions, CancellationToken)
Asynchronously establish a connection to the specified SMTP or SMTP/S server using the provided socket.
Public methodCode exampleDisconnect
Disconnect the service.
(Overrides MailServiceDisconnect(Boolean, CancellationToken).)
Public methodCode exampleDisconnectAsync
Asynchronously disconnect the service.
(Overrides MailServiceDisconnectAsync(Boolean, CancellationToken).)
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 (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 (Inherited from Object.)
Public methodGetType (Inherited from Object.)
Protected methodMemberwiseClone (Inherited from Object.)
Public methodNoOp
Ping the SMTP server to keep the connection alive.
(Overrides MailServiceNoOp(CancellationToken).)
Public methodNoOpAsync
Asynchronously ping the SMTP server to keep the connection alive.
(Overrides MailServiceNoOpAsync(CancellationToken).)
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)
Send 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)
Send 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 send the specified message.
(Inherited from MailTransport.)
Public methodCode exampleSendAsync(FormatOptions, MimeMessage, CancellationToken, ITransferProgress)
Asynchronously send the specified message.
(Overrides MailTransportSendAsync(FormatOptions, MimeMessage, CancellationToken, ITransferProgress).)
Public methodSendAsync(MimeMessage, MailboxAddress, IEnumerableMailboxAddress, CancellationToken, ITransferProgress)
Asynchronously send the specified message using the supplied sender and recipients.
(Inherited from MailTransport.)
Public methodSendAsync(FormatOptions, MimeMessage, MailboxAddress, IEnumerableMailboxAddress, CancellationToken, ITransferProgress)
Asynchronously send the specified message using the supplied sender and recipients.
(Overrides MailTransportSendAsync(FormatOptions, MimeMessage, MailboxAddress, IEnumerableMailboxAddress, CancellationToken, ITransferProgress).)
Public methodToString (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