Click or drag to resize
MimeKit

MailTransportSend(FormatOptions, MimeMessage, CancellationToken, ITransferProgress) Method

Send the specified message.

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

Parameters

options  FormatOptions
The formatting options.
message  MimeMessage
The message.
cancellationToken  CancellationToken  (Optional)
The cancellation token.
progress  ITransferProgress  (Optional)
The progress reporting mechanism.

Return Value

String
The final free-form text response from the server.

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.

Example
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