SmtpClient.Send Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.
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 true
e 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
Eccezioni
È 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.
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 true
e il server di posta SMTP non annuncia STARTTLS nella risposta al comando EHLO, una chiamata ai Send metodi o SendAsync genererà un'eccezione SmtpException.