SmtpClient.EnableSsl Propriedade

Definição

Especifica se SmtpClient usa o protocolo SSL para criptografar a conexão.

public bool EnableSsl { get; set; }

Valor da propriedade

true se o SmtpClient usar SSL; caso contrário, false. O padrão é false.

Exemplos

O exemplo de código a seguir estabelece uma conexão SSL com o servidor SMTP e usa a conexão para enviar um email.

public static void CreateTestMessage(string server)
{
    string to = "jane@contoso.com";
    string from = "ben@contoso.com";
    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;
    client.Send(message);
}

Comentários

A EnableSsl propriedade especifica se o SSL é usado para acessar o servidor de email SMTP especificado.

O valor padrão dessa propriedade também pode ser definido em um arquivo de configuração de computador ou aplicativo. Todas as alterações feitas na EnableSsl propriedade substituem as configurações do arquivo de configuração.

A classe SmtpClient só dá suporte à Extensão de Serviço SMTP para SMTP Seguro sobre a Segurança da Camada de Transporte, conforme definido no RFC 3207. Nesse modo, a sessão SMTP começa em um canal não criptografado e, em seguida, um comando STARTTLS é emitido pelo cliente para o servidor para alternar para uma comunicação segura usando SSL. TConfira o RFC 3207 publicado pela IETF (Internet Engineering Task Force) para obter mais informações.

Um método de conexão alternativo é onde uma sessão SSL é estabelecida antecipadamente antes de qualquer comando de protocolo ser enviado. Esse método de conexão às vezes é chamado de SMTP/SSL, SMTP sobre SSL ou SMTPS e, por padrão, usa a porta 465. No momento, não há suporte para esse método de conexão alternativo usando SSL.

Você pode usar ClientCertificates para especificar quais certificados de cliente devem ser usados para estabelecer a conexão SSL. O ServerCertificateValidationCallback permite rejeitar o certificado fornecido pelo servidor SMTP. A SecurityProtocol propriedade permite que você especifique a versão do protocolo SSL a ser usada.

Nota

Se a EnableSsl propriedade estiver definida como truee o servidor de email SMTP não anunciar STARTTLS na resposta ao comando EHLO, uma chamada para os Send métodos ou SendAsync gerará um SmtpException.

Aplica-se a

Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Confira também