SmtpClient.Send Metodo

Definizione

Invia un messaggio di posta elettronica a un server SMTP per la consegna. Questi metodi effettuano il blocco mentre il messaggio viene trasmesso.

Overload

Send(MailMessage)

Invia il messaggio specificato a un server SMTP per il recapito.

Send(String, String, String, String)

Invia il messaggio di posta elettronica specificato a un server SMTP per la consegna. Il mittente, i destinatari, l'oggetto e il corpo del messaggio vengono specificati mediante gli oggetti String.

Send(MailMessage)

Origine:
SmtpClient.cs
Origine:
SmtpClient.cs
Origine:
SmtpClient.cs

Invia il messaggio specificato a un server SMTP per il recapito.

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)

Parametri

message
MailMessage

Classe MailMessage contenente il messaggio da inviare.

Eccezioni

message è null.

È SmtpClient già in corso un'altra operazione di invio.

-oppure-

From è null.

-oppure-

Non esistono destinatari specificati nelle proprietà To, CC e Bcc.

-oppure-

La proprietà DeliveryMethod è impostata su Network e Host è null.

-oppure-

La proprietà DeliveryMethod è impostata su Network e Host è uguale alla stringa vuota ("").

-oppure-

proprietà DeliveryMethod è impostata su Network e Port è zero, un numero negativo o maggiore di 65.535.

L'oggetto è stato eliminato.

La connessione al server SMTP ha avuto esito negativo.

-oppure-

Autenticazione non riuscita.

-oppure-

Timeout dell'operazione.

-oppure-

EnableSsl è impostato su true ma la proprietà DeliveryMethod è impostata su SpecifiedPickupDirectory o PickupDirectoryFromIis.

-oppure-

EnableSsl viene impostato su true, ma il server di posta SMTP non annuncia STARTTLS nella risposta al comando EHLO.

Non è possibile recapitare message a uno dei destinatari in To, CC o Bcc.

Non è possibile recapitare message a due o più destinatari in To, CC o Bcc.

Esempio

Nell'esempio di codice seguente viene illustrato l'uso di questo metodo.

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

Commenti

Questo metodo si blocca durante la trasmissione del messaggio di posta elettronica. È possibile specificare un valore di timeout usando la Timeout proprietà per assicurarsi che il metodo restituisca dopo un periodo di tempo specificato.

Prima di chiamare questo metodo, le Host proprietà e Port devono essere impostate tramite i file di configurazione impostando le proprietà pertinenti o passando queste informazioni nel SmtpClient(String, Int32) costruttore.

Non è possibile chiamare questo metodo se è presente un messaggio inviato in modo asincrono.

Se l'host SMTP richiede credenziali, è necessario impostarle prima di chiamare questo metodo. Per specificare le credenziali, usare le UseDefaultCredentials proprietà o Credentials .

Se si riceve un'eccezione SmtpException , controllare la StatusCode proprietà per trovare il motivo per cui l'operazione non è riuscita. Può SmtpException anche contenere un'eccezione interna che indica il motivo per cui l'operazione non è riuscita.

Quando si invia un messaggio di posta elettronica utilizzando Send a più destinatari e il server SMTP accetta alcuni destinatari come validi e rifiuta altri, Send invia un messaggio di posta elettronica ai destinatari accettati e quindi viene generata un'eccezione SmtpFailedRecipientsException (o se SmtpFailedRecipientException viene rifiutato un solo destinatario). Un SmtpFailedRecipientsException oggetto contiene un elenco dei destinatari rifiutati.

Nota

Se la EnableSsl proprietà è impostata su truee il server di posta SMTP non annuncia STARTTLS nella risposta al comando EHLO, una chiamata ai Send metodi o SendAsync genererà un'eccezione SmtpException.

Si applica a

Send(String, String, String, String)

Origine:
SmtpClient.cs
Origine:
SmtpClient.cs
Origine:
SmtpClient.cs

Invia il messaggio di posta elettronica specificato a un server SMTP per la consegna. Il mittente, i destinatari, l'oggetto e il corpo del messaggio vengono specificati mediante gli oggetti 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)

Parametri

from
String

Classe String contenente le informazioni sull'indirizzo del mittente del messaggio.

recipients
String

Classe String contenente gli indirizzi a cui viene inviato il messaggio.

subject
String

Classe String contenente l'oggetto del messaggio.

body
String

Classe String contenente il corpo del messaggio.

Eccezioni

from è null.

-oppure-

recipients è null.

from è Empty.

-oppure-

recipients è Empty.

È SmtpClient già in corso un'altra operazione di invio.

-oppure-

La proprietà DeliveryMethod è impostata su Network e Host è null.

-oppure-

La proprietà DeliveryMethod è impostata su Network e Host è uguale alla stringa vuota ("").

-oppure-

proprietà DeliveryMethod è impostata su Network e Port è zero, un numero negativo o maggiore di 65.535.

L'oggetto è stato eliminato.

La connessione al server SMTP ha avuto esito negativo.

-oppure-

Autenticazione non riuscita.

-oppure-

Timeout dell'operazione.

-oppure-

EnableSsl è impostato su true ma la proprietà DeliveryMethod è impostata su SpecifiedPickupDirectory o PickupDirectoryFromIis.

-oppure-

EnableSsl viene impostato su true, ma il server di posta SMTP non annuncia STARTTLS nella risposta al comando EHLO.

Non è possibile recapitare message a uno dei destinatari in To, CC o Bcc.

Non è possibile recapitare message a due o più destinatari in To, CC o Bcc.

Commenti

Questo metodo si blocca durante la trasmissione del messaggio di posta elettronica. È possibile specificare un valore di timeout usando la Timeout proprietà per assicurarsi che il metodo restituisca dopo un periodo di tempo specificato.

Prima di chiamare questo metodo, le Host proprietà e Port devono essere impostate tramite i file di configurazione impostando le proprietà pertinenti o passando queste informazioni nel SmtpClient(String, Int32) costruttore.

Non è possibile chiamare questo metodo se è presente un messaggio inviato in modo asincrono.

Se l'host SMTP richiede credenziali, è necessario impostarle prima di chiamare questo metodo. Per specificare le credenziali, usare le UseDefaultCredentials proprietà o Credentials .

Se si riceve un'eccezione SmtpException , controllare la StatusCode proprietà per trovare il motivo per cui l'operazione non è riuscita. Può SmtpException anche contenere un'eccezione interna che indica il motivo per cui l'operazione non è riuscita.

Quando si invia un messaggio di posta elettronica utilizzando Send a più destinatari e il server SMTP accetta alcuni destinatari come validi e rifiuta altri, Send invia un messaggio di posta elettronica ai destinatari accettati e quindi viene generata un'eccezione SmtpFailedRecipientsException (o se SmtpFailedRecipientException viene rifiutato un solo destinatario). Un SmtpFailedRecipientsException oggetto contiene un elenco dei destinatari rifiutati.

Nota

Se la EnableSsl proprietà è impostata su truee il server di posta SMTP non annuncia STARTTLS nella risposta al comando EHLO, una chiamata ai Send metodi o SendAsync genererà un'eccezione SmtpException.

Si applica a