IMailTransportExtensionsSendAsync(IMailTransport, MimeMessage, CancellationToken, ITransferProgress) Method

Asynchronously send the specified message.

Definition

Namespace: MailKit
Assembly: MailKit (in MailKit.dll) Version: 5.0.0
C#
public static Task<SendResult> SendAsync(
	this IMailTransport transport,
	MimeMessage message,
	CancellationToken cancellationToken = default,
	ITransferProgress? progress = null
)

Parameters

transport  IMailTransport
The transport.
message  MimeMessage
The message.
cancellationToken  CancellationToken  (Optional)
The cancellation token.
progress  ITransferProgress  (Optional)
The progress reporting mechanism.

Return Value

TaskSendResult
The result of sending the message.

Usage Note

In Visual Basic and C#, you can call this method as an instance method on any object of type IMailTransport. When you use instance method syntax to call this method, omit the first parameter. For more information, see Extension Methods (Visual Basic) or Extension Methods (C# Programming Guide).

Remarks

Asynchronously sends the specified message.

The sender address is determined by checking the following message headers (in order of precedence): Resent-Sender, Resent-From, Sender, and From.

If 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 message is .
ObjectDisposedException The IMailTransport has been disposed.
ServiceNotConnectedException The IMailTransport 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