SmtpClient.EnableSsl プロパティ


SmtpClient が、接続を暗号化するために SSL (Secure Sockets Layer) を使用するかどうかを指定します。Specify whether the SmtpClient uses Secure Sockets Layer (SSL) to encrypt the connection.

 property bool EnableSsl { bool get(); void set(bool value); };
public bool EnableSsl { get; set; }
member this.EnableSsl : bool with get, set
Public Property EnableSsl As Boolean



SmtpClient が SSL を使用する場合は true。それ以外の場合は falsetrue if the SmtpClient uses SSL; otherwise, false. 既定では、 falseです。The default is false.

次のコード例では、SMTP サーバーとの SSL 接続を確立し、その接続を使用して電子メールを送信します。The following code example establishes an SSL connection with the SMTP server and uses the connection to send an email.

public static void CreateTestMessage(string server)
    string to = "";
    string from = "";
    MailMessage message = new MailMessage(from, to);
    message.Subject = "Using the new SMTP client.";
    message.Body = @"Using this new feature, you can send an email message from an application very easily.";
    SmtpClient client = new SmtpClient(server);
    // Credentials are necessary if the server requires the client
    // to authenticate before it will send email on the client's behalf.
    client.UseDefaultCredentials = true;
                client.EnableSsl = true;


EnableSsl プロパティは、指定した SMTP メールサーバーへのアクセスに SSL を使用するかどうかを指定します。The EnableSsl property specifies whether SSL is used to access the specified SMTP mail server.

このプロパティの既定値は、コンピューターまたはアプリケーションの構成ファイルで設定することもできます。The default value for this property can also be set in a machine or application configuration file. EnableSsl プロパティに加えられた変更は、構成ファイルの設定よりも優先されます。Any changes made to the EnableSsl property override the configuration file settings.

SmtpClient クラスでサポートされているのは、RFC 3207 で定義されているトランスポート層セキュリティを介した Secure SMTP に対する SMTP サービス拡張のみです。The SmtpClient class only supports the SMTP Service Extension for Secure SMTP over Transport Layer Security as defined in RFC 3207. このモードでは、暗号化されていないチャネルで SMTP セッションが開始され、SSL を使用してセキュリティで保護された通信に切り替えるために、クライアントからサーバーに STARTTLS コマンドが発行されます。In this mode, the SMTP session begins on an unencrypted channel, then a STARTTLS command is issued by the client to the server to switch to secure communication using SSL. 詳細については、インターネット技術標準化委員会 (IETF) によって発行された RFC 3207 を参照してください。See RFC 3207 published by the Internet Engineering Task Force (IETF) for more information.

代替の接続方法では、プロトコルコマンドが送信される前に、SSL セッションが事前に確立されます。An alternate connection method is where an SSL session is established up front before any protocol commands are sent. この接続方法は、SMTP/SSL、SMTP over SSL、または SMTPS とも呼ばれ、既定ではポート465を使用します。This connection method is sometimes called SMTP/SSL, SMTP over SSL, or SMTPS and by default uses port 465. SSL を使用したこの代替接続方法は、現在サポートされていません。This alternate connection method using SSL is not currently supported.

ClientCertificates を使用して、SSL 接続の確立に使用するクライアント証明書を指定できます。You can use ClientCertificates to specify which client certificates should be used to establish the SSL connection. ServerCertificateValidationCallback では、SMTP サーバーによって提供される証明書を拒否することができます。The ServerCertificateValidationCallback allows you to reject the certificate provided by the SMTP server. SecurityProtocol プロパティでは、使用する SSL プロトコルのバージョンを指定できます。The SecurityProtocol property allows you to specify the version of the SSL protocol to use.


EnableSsl プロパティが trueに設定されていて、SMTP メールサーバーが EHLO コマンドに対する応答で STARTTLS をアドバタイズしていない場合、Send または SendAsync メソッドを呼び出すと SmtpExceptionがスローされます。If the EnableSsl property is set to true, and the SMTP mail server does not advertise STARTTLS in the response to the EHLO command, then a call to the Send or SendAsync methods will throw an SmtpException.