Partilhar via


SmtpClient.Send Método

Definição

Envia uma mensagem de email para entrega a um servidor SMTP. Esses métodos bloqueiam enquanto a mensagem está sendo transmitida.

Sobrecargas

Send(MailMessage)

Envia a mensagem especificada para entrega a um servidor SMTP.

Send(String, String, String, String)

Envia a mensagem de email especificada para entrega a um servidor SMTP. O remetente, os destinatários, o assunto e o corpo da mensagem são especificados usando objetos String.

Send(MailMessage)

Origem:
SmtpClient.cs
Origem:
SmtpClient.cs
Origem:
SmtpClient.cs

Envia a mensagem especificada para entrega a um servidor SMTP.

public:
 void Send(System::Net::Mail::MailMessage ^ message);
public void Send (System.Net.Mail.MailMessage message);
member this.Send : System.Net.Mail.MailMessage -> unit
Public Sub Send (message As MailMessage)

Parâmetros

message
MailMessage

Um MailMessage que contém a mensagem a ser enviada.

Exceções

message é null.

Isso SmtpClient tem outra operação de envio já em andamento.

- ou -

From é null.

- ou -

Não há nenhum destinatário especificado nas propriedades To, CC e Bcc.

- ou -

A propriedade DeliveryMethod é definida como Network e Host é null.

- ou -

A propriedade DeliveryMethod é definida como Network e Host é igual à cadeia de caracteres vazia ("").

- ou -

A propriedade DeliveryMethod é definida como Network e Port é zero, um número negativo ou maior que 65.535.

O objeto foi descartado.

Falha na conexão com o servidor SMTP.

- ou -

Falha na autenticação.

- ou -

Tempo limite da operação esgotado.

- ou -

EnableSsl é definido como true, mas a propriedade DeliveryMethod é definida como SpecifiedPickupDirectory ou PickupDirectoryFromIis.

- ou -

EnableSsl é definido como true,, mas o servidor de email SMTP não anunciou STARTTLS na resposta para o comando EHLO.

O message não pôde ser entregue a um dos destinatários em To, CC ou Bcc.

O message não pôde ser entregue a dois ou mais dos destinatários em To, CC ou Bcc.

Exemplos

O exemplo de código a seguir demonstra o uso desse método.

static void CreateTestMessage2( String^ server )
{
   String^ to = L"jane@contoso.com";
   String^ from = L"ben@contoso.com";
   MailMessage^ message = gcnew MailMessage( from,to );
   message->Subject = L"Using the new SMTP client.";
   message->Body = L"Using this new feature, you can send an email message from an application very easily.";
   SmtpClient^ client = gcnew 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->Send( message );
   client->~SmtpClient();
}
public static void CreateTestMessage2(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;

    try
    {
        client.Send(message);
    }
    catch (Exception ex)
    {
        Console.WriteLine("Exception caught in CreateTestMessage2(): {0}",
            ex.ToString());
    }
}

Comentários

Esse método é bloqueado enquanto o email é transmitido. Você pode especificar um valor de tempo limite usando a Timeout propriedade para garantir que o método retorne após um período especificado de tempo decorrido.

Antes de chamar esse método, as Host propriedades e Port devem ser definidas por meio dos arquivos de configuração definindo as propriedades relevantes ou passando essas informações para o SmtpClient(String, Int32) construtor.

Você não poderá chamar esse método se houver uma mensagem sendo enviada de forma assíncrona.

Se o host SMTP exigir credenciais, você deverá defini-las antes de chamar esse método. Para especificar credenciais, use as UseDefaultCredentials propriedades ou Credentials .

Se você receber uma exceçãoSmtpException, marcar a StatusCode propriedade para localizar o motivo pelo qual a operação falhou. O SmtpException também pode conter uma exceção interna que indica o motivo pelo qual a operação falhou.

Ao enviar emails usando Send para vários destinatários e o servidor SMTP aceita alguns destinatários como válidos e rejeita outros, Send envia emails para os destinatários aceitos e, em seguida, um SmtpFailedRecipientsException é lançado (ou um SmtpFailedRecipientException se apenas um destinatário for rejeitado). Um SmtpFailedRecipientsException contém uma lista dos destinatários que foram rejeitados.

Observação

Se a EnableSsl propriedade estiver definida truecomo e 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

Send(String, String, String, String)

Origem:
SmtpClient.cs
Origem:
SmtpClient.cs
Origem:
SmtpClient.cs

Envia a mensagem de email especificada para entrega a um servidor SMTP. O remetente, os destinatários, o assunto e o corpo da mensagem são especificados usando objetos String.

public:
 void Send(System::String ^ from, System::String ^ recipients, System::String ^ subject, System::String ^ body);
public void Send (string from, string recipients, string? subject, string? body);
public void Send (string from, string recipients, string subject, string body);
member this.Send : string * string * string * string -> unit
Public Sub Send (from As String, recipients As String, subject As String, body As String)

Parâmetros

from
String

Um String que contém as informações de endereço do remetente da mensagem.

recipients
String

Um String que contém os endereços aos quais a mensagem é enviada.

subject
String

Um String que contém a linha do assunto da mensagem.

body
String

Um String que contém o corpo da mensagem.

Exceções

from é null.

- ou -

recipients é null.

from é Empty.

- ou -

recipients é Empty.

Isso SmtpClient tem outra operação de envio já em andamento.

- ou -

A propriedade DeliveryMethod é definida como Network e Host é null.

- ou -

A propriedade DeliveryMethod é definida como Network e Host é igual à cadeia de caracteres vazia ("").

- ou -

A propriedade DeliveryMethod é definida como Network e Port é zero, um número negativo ou maior que 65.535.

O objeto foi descartado.

Falha na conexão com o servidor SMTP.

- ou -

Falha na autenticação.

- ou -

Tempo limite da operação esgotado.

- ou -

EnableSsl é definido como true, mas a propriedade DeliveryMethod é definida como SpecifiedPickupDirectory ou PickupDirectoryFromIis.

- ou -

EnableSsl é definido como true,, mas o servidor de email SMTP não anunciou STARTTLS na resposta para o comando EHLO.

O message não pôde ser entregue a um dos destinatários em To, CC ou Bcc.

O message não pôde ser entregue a dois ou mais dos destinatários em To, CC ou Bcc.

Comentários

Esse método é bloqueado enquanto o email é transmitido. Você pode especificar um valor de tempo limite usando a Timeout propriedade para garantir que o método retorne após um período especificado de tempo decorrido.

Antes de chamar esse método, as Host propriedades e Port devem ser definidas por meio dos arquivos de configuração definindo as propriedades relevantes ou passando essas informações para o SmtpClient(String, Int32) construtor.

Você não poderá chamar esse método se houver uma mensagem sendo enviada de forma assíncrona.

Se o host SMTP exigir credenciais, você deverá defini-las antes de chamar esse método. Para especificar credenciais, use as UseDefaultCredentials propriedades ou Credentials .

Se você receber uma exceçãoSmtpException, marcar a StatusCode propriedade para localizar o motivo pelo qual a operação falhou. O SmtpException também pode conter uma exceção interna que indica o motivo pelo qual a operação falhou.

Ao enviar emails usando Send para vários destinatários e o servidor SMTP aceita alguns destinatários como válidos e rejeita outros, Send envia emails para os destinatários aceitos e, em seguida, um SmtpFailedRecipientsException é lançado (ou um SmtpFailedRecipientException se apenas um destinatário for rejeitado). Um SmtpFailedRecipientsException contém uma lista dos destinatários que foram rejeitados.

Observação

Se a EnableSsl propriedade estiver definida truecomo e 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