Freigeben über


SmtpClient.Send Methode

Definition

Sendet eine E-Mail für die Übermittlung an einen SMTP-Server. Diese Methoden werden während der Übertragung der Nachricht blockiert.

Überlädt

Send(MailMessage)

Sendet die angegebene Nachricht an einen SMTP-Server für die Übermittlung.

Send(String, String, String, String)

Sendet die angegebene E-Mail für die Übermittlung an einen SMTP-Server. Der Absender, die Empfänger, der Betreff und der Text der Nachricht werden mit String-Objekten angegeben.

Send(MailMessage)

Quelle:
SmtpClient.cs
Quelle:
SmtpClient.cs
Quelle:
SmtpClient.cs

Sendet die angegebene Nachricht an einen SMTP-Server für die Übermittlung.

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)

Parameter

message
MailMessage

Eine MailMessage, die die zu sendende Nachricht enthält.

Ausnahmen

message ist null.

Ein SmtpClient weiterer Sendevorgang wird bereits ausgeführt.

- oder -

From ist null.

- oder -

In den Eigenschaften To, CC und Bcc sind keine Empfänger angegeben.

- oder -

Die DeliveryMethod-Eigenschaft ist auf Network festgelegt, und Host ist null.

- oder -

Die DeliveryMethod-Eigenschaft ist auf Network festgelegt, und Host ist gleich der leeren Zeichenfolge ("").

- oder -

DeliveryMethod-Eigenschaft wird auf Network festgelegt, und Port ist 0 (null), eine negative Zahl oder größer als 65,535.

Dieses Objekt wurde verworfen.

Die Verbindung mit dem SMTP-Server ist fehlgeschlagen.

- oder -

Fehler bei der Authentifizierung.

- oder -

Timeout für den Vorgang.

- oder -

EnableSsl ist auf true festgelegt, die DeliveryMethod-Eigenschaft ist jedoch auf SpecifiedPickupDirectory oder PickupDirectoryFromIis festgelegt.

- oder -

EnableSsl wird auf true, festgelegt, aber der SMTP-E-Mail-Server hat nicht STARTTLS in der Antwort auf den EHLO-Befehl angeboten.

Die message konnte an einen der Empfänger in To, CC oder Bcc nicht übermittelt werden.

Die message konnte an mindestens zwei Empfänger in To, CC oder Bcc nicht übermittelt werden.

Beispiele

Im folgenden Codebeispiel wird die Verwendung dieser Methode veranschaulicht.

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

Hinweise

Diese Methode blockiert, während die E-Mail übertragen wird. Sie können mithilfe der Timeout -Eigenschaft einen Timeoutwert angeben, um sicherzustellen, dass die Methode nach ablaufen einer bestimmten Zeitspanne zurückgibt.

Vor dem Aufrufen dieser Methode müssen die Host Eigenschaften und Port entweder über die Konfigurationsdateien festgelegt werden, indem die relevanten Eigenschaften festgelegt oder diese Informationen an den SmtpClient(String, Int32) Konstruktor übergeben werden.

Sie können diese Methode nicht aufrufen, wenn eine Nachricht asynchron gesendet wird.

Wenn der SMTP-Host Anmeldeinformationen erfordert, müssen Sie diese festlegen, bevor Sie diese Methode aufrufen. Verwenden Sie zum Angeben von Anmeldeinformationen die -Eigenschaft oder Credentials die UseDefaultCredentials -Eigenschaft.

Wenn Sie eine SmtpException Ausnahme erhalten, überprüfen Sie die StatusCode -Eigenschaft, um den Grund zu ermitteln, warum der Vorgang fehlgeschlagen ist. Der SmtpException kann auch eine innere Ausnahme enthalten, die den Grund angibt, warum der Vorgang fehlgeschlagen ist.

Beim Senden von E-Mails an Send mehrere Empfänger und der SMTP-Server akzeptiert einige Empfänger als gültig und lehnt andere ab, Send sendet E-Mails an die akzeptierten Empfänger, und dann wird eine SmtpFailedRecipientsException ausgelöst (oder ein, wenn nur ein SmtpFailedRecipientException Empfänger abgelehnt wird). Ein SmtpFailedRecipientsException enthält eine Liste der Empfänger, die abgelehnt wurden.

Hinweis

Wenn die EnableSsl -Eigenschaft auf truefestgelegt ist und der SMTP-E-Mail-Server in der Antwort auf den EHLO-Befehl nicht STARTTLS angibt, löst ein Aufruf der Send -Methode oder SendAsync eine aus SmtpException.

Gilt für:

Send(String, String, String, String)

Quelle:
SmtpClient.cs
Quelle:
SmtpClient.cs
Quelle:
SmtpClient.cs

Sendet die angegebene E-Mail für die Übermittlung an einen SMTP-Server. Der Absender, die Empfänger, der Betreff und der Text der Nachricht werden mit String-Objekten angegeben.

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)

Parameter

from
String

Ein String, der die Adressinformationen des Absenders der Nachricht enthält.

recipients
String

Ein String, der die Adressen enthält, an die die Nachricht gesendet wird.

subject
String

Ein String, der die Betreffzeile für die Nachricht enthält.

body
String

Ein String, der den Nachrichtentext enthält.

Ausnahmen

from ist null.

- oder -

recipients ist null.

from ist Empty.

- oder -

recipients ist Empty.

Ein SmtpClient weiterer Sendevorgang wird bereits ausgeführt.

- oder -

Die DeliveryMethod-Eigenschaft ist auf Network festgelegt, und Host ist null.

- oder -

Die DeliveryMethod-Eigenschaft ist auf Network festgelegt, und Host ist gleich der leeren Zeichenfolge ("").

- oder -

DeliveryMethod-Eigenschaft wird auf Network festgelegt, und Port ist 0 (null), eine negative Zahl oder größer als 65,535.

Dieses Objekt wurde verworfen.

Die Verbindung mit dem SMTP-Server ist fehlgeschlagen.

- oder -

Fehler bei der Authentifizierung.

- oder -

Timeout für den Vorgang.

- oder -

EnableSsl ist auf true festgelegt, die DeliveryMethod-Eigenschaft ist jedoch auf SpecifiedPickupDirectory oder PickupDirectoryFromIis festgelegt.

- oder -

EnableSsl wird auf true, festgelegt, aber der SMTP-E-Mail-Server hat nicht STARTTLS in der Antwort auf den EHLO-Befehl angeboten.

Die message konnte an einen der Empfänger in To, CC oder Bcc nicht übermittelt werden.

Die message konnte an mindestens zwei Empfänger in To, CC oder Bcc nicht übermittelt werden.

Hinweise

Diese Methode blockiert, während die E-Mail übertragen wird. Sie können mithilfe der Timeout -Eigenschaft einen Timeoutwert angeben, um sicherzustellen, dass die Methode nach ablaufen einer bestimmten Zeitspanne zurückgibt.

Vor dem Aufrufen dieser Methode müssen die Host Eigenschaften und Port entweder über die Konfigurationsdateien festgelegt werden, indem die relevanten Eigenschaften festgelegt oder diese Informationen an den SmtpClient(String, Int32) Konstruktor übergeben werden.

Sie können diese Methode nicht aufrufen, wenn eine Nachricht asynchron gesendet wird.

Wenn der SMTP-Host Anmeldeinformationen erfordert, müssen Sie diese festlegen, bevor Sie diese Methode aufrufen. Verwenden Sie zum Angeben von Anmeldeinformationen die -Eigenschaft oder Credentials die UseDefaultCredentials -Eigenschaft.

Wenn Sie eine SmtpException Ausnahme erhalten, überprüfen Sie die StatusCode -Eigenschaft, um den Grund zu ermitteln, warum der Vorgang fehlgeschlagen ist. Der SmtpException kann auch eine innere Ausnahme enthalten, die den Grund angibt, warum der Vorgang fehlgeschlagen ist.

Beim Senden von E-Mails an Send mehrere Empfänger und der SMTP-Server akzeptiert einige Empfänger als gültig und lehnt andere ab, Send sendet E-Mails an die akzeptierten Empfänger, und dann wird eine SmtpFailedRecipientsException ausgelöst (oder ein, wenn nur ein SmtpFailedRecipientException Empfänger abgelehnt wird). Ein SmtpFailedRecipientsException enthält eine Liste der Empfänger, die abgelehnt wurden.

Hinweis

Wenn die EnableSsl -Eigenschaft auf truefestgelegt ist und der SMTP-E-Mail-Server in der Antwort auf den EHLO-Befehl nicht STARTTLS angibt, löst ein Aufruf der Send -Methode oder SendAsync eine aus SmtpException.

Gilt für: