SmtpClient.Send Método

Definição

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

Sobrecargas

Name Description
Send(MailMessage)

Envia a mensagem especificada para um servidor SMTP para entrega.

Send(String, String, String, String)

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

Send(MailMessage)

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

Envia a mensagem especificada para um servidor SMTP para entrega.

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

A MailMessage que contém a mensagem a enviar.

Exceções

message é null.

Isto SmtpClient já tem outra operação de envio em curso.

-ou-

From é null.

-ou-

Não existem destinatários especificados em To, CC, e Bcc propriedades.

-ou-

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

-ou-

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

-ou-

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

Este objeto foi descartado.

A ligação ao servidor SMTP falhou.

-ou-

Falha na autenticação.

-ou-

A operação expirou.

-ou-

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

-ou-

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

Não message podiam ser entregues a um dos destinatários em To, CC, ou Bcc.

Não message podiam ser entregues a dois ou mais dos destinatários em To, CC, ou Bcc.

Exemplos

O exemplo de código seguinte demonstra o uso deste método.

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());
    }
}

Observações

Este método bloqueia enquanto o email é transmitido. Pode especificar um valor de time-out usando a Timeout propriedade para garantir que o método retorna após um determinado período de tempo.

Antes de chamar este método, as Host propriedades e Port devem ser definidas ou através dos ficheiros de configuração, definindo as propriedades relevantes, ou passando esta informação para o SmtpClient(String, Int32) construtor.

Não pode chamar este método se houver uma mensagem a ser enviada de forma assíncrona.

Se o host SMTP exigir credenciais, deve defini-las antes de chamar este método. Para especificar credenciais, use as UseDefaultCredentials propriedades ou.Credentials

Se receber uma SmtpException exceção, verifique a StatusCode propriedade para encontrar a razão da falha da operação. Pode SmtpException também conter uma exceção interna que indica a razão pela qual a operação falhou.

Ao enviar email para Send vários destinatários, o servidor SMTP aceita alguns destinatários como válidos e rejeita outros, Send envia email aos destinatários aceites e depois é lançado a SmtpFailedRecipientsException (ou a SmtpFailedRecipientException se apenas um destinatário for rejeitado). A SmtpFailedRecipientsException contém uma lista dos destinatários que foram rejeitados.

Note

Se a EnableSsl propriedade estiver definida para true, e o servidor de email SMTP não anunciar STARTTLS na resposta ao comando EHLO, então uma chamada aos Send métodos ou SendAsync irá lançar um SmtpException.

Aplica-se a

Send(String, String, String, String)

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

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

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

A String que contém a informação de endereço do remetente da mensagem.

recipients
String

A String que contém os endereços para onde a mensagem é enviada.

subject
String

A String que contém o assunto da mensagem.

body
String

A String que contém o corpo da mensagem.

Exceções

from é null.

-ou-

recipients é null.

from é Empty.

-ou-

recipients é Empty.

Isto SmtpClient já tem outra operação de envio em curso.

-ou-

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

-ou-

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

-ou-

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

Este objeto foi descartado.

A ligação ao servidor SMTP falhou.

-ou-

Falha na autenticação.

-ou-

A operação expirou.

-ou-

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

-ou-

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

A mensagem não podia ser entregue a um dos destinatários em To, CC, ou Bcc.

A mensagem não podia ser entregue a dois ou mais dos destinatários em To, CC, ou Bcc.

Observações

Este método bloqueia enquanto o email é transmitido. Pode especificar um valor de time-out usando a Timeout propriedade para garantir que o método retorna após um determinado período de tempo.

Antes de chamar este método, as Host propriedades e Port devem ser definidas ou através dos ficheiros de configuração, definindo as propriedades relevantes, ou passando esta informação para o SmtpClient(String, Int32) construtor.

Não pode chamar este método se houver uma mensagem a ser enviada de forma assíncrona.

Se o host SMTP exigir credenciais, deve defini-las antes de chamar este método. Para especificar credenciais, use as UseDefaultCredentials propriedades ou.Credentials

Se receber uma SmtpException exceção, verifique a StatusCode propriedade para encontrar a razão da falha da operação. Pode SmtpException também conter uma exceção interna que indica a razão pela qual a operação falhou.

Ao enviar email para Send vários destinatários, o servidor SMTP aceita alguns destinatários como válidos e rejeita outros, Send envia email aos destinatários aceites e depois é lançado a SmtpFailedRecipientsException (ou a SmtpFailedRecipientException se apenas um destinatário for rejeitado). A SmtpFailedRecipientsException contém uma lista dos destinatários que foram rejeitados.

Note

Se a EnableSsl propriedade estiver definida para true, e o servidor de email SMTP não anunciar STARTTLS na resposta ao comando EHLO, então uma chamada aos Send métodos ou SendAsync irá lançar um SmtpException.

Aplica-se a