SmtpClient.Timeout Propriedade

Definição

Obtém ou define um valor que especifica o tempo após o qual uma chamada Send síncrona atinge o tempo limite.

public int Timeout { get; set; }

Valor da propriedade

Um Int32 que especifica o valor do tempo limite em milissegundos. O valor padrão é 100.000 (100 segundos).

Exceções

O valor especificado para uma operação de definição é menor que zero.

Não será possível alterar o valor dessa propriedade quando um email estiver sendo enviado.

Exemplos

O exemplo de código a seguir demonstra como obter e definir o valor de tempo limite.

public static void CreateTimeoutTestMessage(string server)
{
    string to = "jane@contoso.com";
    string from = "ben@contoso.com";
    string subject = "Using the new SMTP client.";
    string body = @"Using this new feature, you can send an email message from an application very easily.";
    MailMessage message = new MailMessage(from, to, subject, body);
    SmtpClient client = new SmtpClient(server);
    Console.WriteLine("Changing time out from {0} to 100.", client.Timeout);
    client.Timeout = 100;
    // Credentials are necessary if the server requires the client
    // to authenticate before it will send email on the client's behalf.
    client.Credentials = CredentialCache.DefaultNetworkCredentials;
    client.Send(message);
}

Comentários

Por padrão, chama para o bloco de Send método até que a operação seja concluída. Se você definir a Timeout propriedade como um valor positivo e uma Send operação não puder ser concluída no tempo alocado, a SmtpClient classe gerará uma exceção SmtpException .

Para enviar uma mensagem e continuar a execução no thread do aplicativo, use o SendAsync método .

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