MailTransportSendAsync(ISendRequest, CancellationToken) Method

Asynchronously send a message.

Definition

Namespace: MailKit
Assembly: MailKit (in MailKit.dll) Version: 5.0.0
C#
public virtual Task<SendResult> SendAsync(
	ISendRequest request,
	CancellationToken cancellationToken = default
)

Parameters

request  ISendRequest
The send request.
cancellationToken  CancellationToken  (Optional)
The cancellation token.

Return Value

TaskSendResult
The result of sending the message.

Implements

IMailTransportSendAsync(ISendRequest, CancellationToken)

Remarks

Asynchronously sends a message as specified by the request.

If the request does not specify a Sender, the sender address is determined by checking the following message headers (in order of precedence): Resent-Sender, Resent-From, Sender, and From.

If the request does not specify any Recipients and either the Resent-Sender or Resent-From addresses are present, the recipients are collected from the Resent-To, Resent-Cc, and Resent-Bcc headers, otherwise the To, Cc, and Bcc headers are used.

Example

C#
                    public static void SendMessage (MimeMessage message)
{
    using (var client = new SmtpClient ()) {
        client.Connect ("smtp.gmail.com", 465, SecureSocketOptions.SslOnConnect);

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

        client.Send (message);

        client.Disconnect (true);
    }
}
                  

Exceptions

ArgumentNullException request is .
ObjectDisposedException The MailTransport has been disposed.
ServiceNotConnectedException The MailTransport is not connected.
ServiceNotAuthenticatedException Authentication is required before sending a message.
InvalidOperationException

A sender has not been specified.

-or-

No recipients have been specified.

OperationCanceledException The operation has been canceled.
IOException An I/O error occurred.
CommandException The send command failed.
ProtocolException A protocol exception occurred.

See Also