Click or drag to resize
MimeKit

MailTransportSend Method (FormatOptions, MimeMessage, CancellationToken, ITransferProgress)

Send the specified message.

Namespace:  MailKit
Assembly:  MailKit (in MailKit.dll) Version: 2.3.0
Syntax
C#
public abstract void Send(
	FormatOptions options,
	MimeMessage message,
	CancellationToken cancellationToken = null,
	ITransferProgress progress = null
)

Parameters

options
Type: MimeKitFormatOptions
The formatting options.
message
Type: MimeKitMimeMessage
The message.
cancellationToken (Optional)
Type: System.ThreadingCancellationToken
The cancellation token.
progress (Optional)
Type: MailKitITransferProgress
The progress reporting mechanism.

Implements

IMailTransportSend(FormatOptions, MimeMessage, CancellationToken, ITransferProgress)
Exceptions
ExceptionCondition
ArgumentNullException

options is null.

-or-

message is null.

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.
NotSupportedException

Internationalized formatting was requested but is not supported by the transport.

IOException An I/O error occurred.
CommandException The send command failed.
ProtocolException A protocol exception occurred.
Remarks

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.

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

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

        var options = FormatOptions.Default.Clone ();

        if (client.Capabilities.HasFlag (SmtpCapabilities.UTF8))
            options.International = true;

        client.Send (options, message);

        client.Disconnect (true);
    }
}
See Also