Udostępnij za pośrednictwem


SmtpClient.Send Metoda

Definicja

Wysyła wiadomość e-mail na serwer SMTP na potrzeby dostarczania. Te metody blokują się podczas przesyłania komunikatu.

Przeciążenia

Nazwa Opis
Send(MailMessage)

Wysyła określony komunikat do serwera SMTP na potrzeby dostarczania.

Send(String, String, String, String)

Wysyła określoną wiadomość e-mail do serwera SMTP na potrzeby dostarczania. Nadawca wiadomości, adresaci, temat i treść wiadomości są określane przy użyciu String obiektów.

Send(MailMessage)

Źródło:
SmtpClient.cs
Źródło:
SmtpClient.cs
Źródło:
SmtpClient.cs
Źródło:
SmtpClient.cs
Źródło:
SmtpClient.cs

Wysyła określony komunikat do serwera SMTP na potrzeby dostarczania.

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)

Parametry

message
MailMessage

Element MailMessage zawierający komunikat do wysłania.

Wyjątki

Parametr message ma wartość null.

Ta SmtpClient operacja wysyłania jest już w toku.

— lub —

Parametr From ma wartość null.

— lub —

Nie określono adresatów we Towłaściwościach , CCi Bcc .

— lub —

DeliveryMethod właściwość jest ustawiona na Network wartość i Host ma nullwartość .

— lub —

DeliveryMethod właściwość jest ustawiona na Network i Host jest równa pustemu ciągowi ("").

— lub —

DeliveryMethod właściwość jest ustawiona na Network wartość i Port ma wartość zero, liczbę ujemną lub większą niż 65 535.

Ten obiekt został usunięty.

Połączenie z serwerem SMTP nie powiodło się.

— lub —

Uwierzytelnianie nie powiodło się.

— lub —

Upłynął limit czasu operacji.

— lub —

EnableSsl jest ustawiona na true wartość , ale właściwość jest ustawiona DeliveryMethod na SpecifiedPickupDirectory lub PickupDirectoryFromIis.

— lub —

EnableSsl jest ustawiona na true, wartość , ale serwer poczty SMTP nie anonsował startTLS w odpowiedzi na polecenie EHLO.

message Nie można dostarczyć elementu do jednego z adresatów w obiekcie To, CClub Bcc.

message Nie można dostarczyć elementu do co najmniej dwóch adresatów w pliku To, CClub Bcc.

Przykłady

W poniższym przykładzie kodu pokazano, jak używać tej metody.

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

Uwagi

Ta metoda blokuje przesyłanie wiadomości e-mail. Wartość limitu czasu można określić przy użyciu Timeout właściwości , aby upewnić się, że metoda zwraca się po upływie określonego czasu.

Przed wywołaniem tej metody Host właściwości i Port należy ustawić za pomocą plików konfiguracji, ustawiając odpowiednie właściwości lub przekazując te informacje do konstruktora SmtpClient(String, Int32) .

Nie można wywołać tej metody, jeśli komunikat jest wysyłany asynchronicznie.

Jeśli host SMTP wymaga poświadczeń, należy je ustawić przed wywołaniem tej metody. Aby określić poświadczenia, użyj UseDefaultCredentials właściwości lub Credentials .

Jeśli wystąpi SmtpException wyjątek, sprawdź StatusCode właściwość , aby znaleźć przyczynę niepowodzenia operacji. Element SmtpException może również zawierać wyjątek wewnętrzny wskazujący przyczynę niepowodzenia operacji.

Podczas wysyłania wiadomości e-mail przy użyciu Send wielu adresatów, a serwer SMTP akceptuje niektórych adresatów jako prawidłowych i odrzuca innych, wysyła wiadomość e-mail do zaakceptowanych adresatów, Send a następnie SmtpFailedRecipientsException jest zgłaszany (lub SmtpFailedRecipientException jeśli tylko jeden adresat zostanie odrzucony). Obiekt SmtpFailedRecipientsException zawiera listę adresatów, którzy zostali odrzuceni.

Uwaga / Notatka

EnableSsl Jeśli właściwość jest ustawiona na truewartość , a serwer poczty SMTP nie anonsuje wartości STARTTLS w odpowiedzi na polecenie EHLO, wywołanie Send metody lub SendAsync zgłosi błąd SmtpException.

Dotyczy

Send(String, String, String, String)

Źródło:
SmtpClient.cs
Źródło:
SmtpClient.cs
Źródło:
SmtpClient.cs
Źródło:
SmtpClient.cs
Źródło:
SmtpClient.cs

Wysyła określoną wiadomość e-mail do serwera SMTP na potrzeby dostarczania. Nadawca wiadomości, adresaci, temat i treść wiadomości są określane przy użyciu String obiektów.

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)

Parametry

from
String

Element String zawierający informacje o adresie nadawcy wiadomości.

recipients
String

Element String zawierający adresy wysyłane do wiadomości.

subject
String

Element String zawierający wiersz tematu komunikatu.

body
String

Element String zawierający treść komunikatu.

Wyjątki

Parametr from ma wartość null.

— lub —

Parametr recipients ma wartość null.

Parametr from ma wartość Empty.

— lub —

Parametr recipients ma wartość Empty.

Ta SmtpClient operacja wysyłania jest już w toku.

— lub —

DeliveryMethod właściwość jest ustawiona na Network wartość i Host ma nullwartość .

— lub —

DeliveryMethod właściwość jest ustawiona na Network i Host jest równa pustemu ciągowi ("").

— lub —

DeliveryMethod właściwość jest ustawiona na Network wartość i Port ma wartość zero, liczbę ujemną lub większą niż 65 535.

Ten obiekt został usunięty.

Połączenie z serwerem SMTP nie powiodło się.

— lub —

Uwierzytelnianie nie powiodło się.

— lub —

Upłynął limit czasu operacji.

— lub —

EnableSsl jest ustawiona na true wartość , ale właściwość jest ustawiona DeliveryMethod na SpecifiedPickupDirectory lub PickupDirectoryFromIis.

— lub —

EnableSsl jest ustawiona na true, wartość , ale serwer poczty SMTP nie anonsował startTLS w odpowiedzi na polecenie EHLO.

Nie można dostarczyć wiadomości do jednego z adresatów w pliku To, CClub Bcc.

Nie można dostarczyć wiadomości do co najmniej dwóch adresatów w pliku To, CClub Bcc.

Uwagi

Ta metoda blokuje przesyłanie wiadomości e-mail. Wartość limitu czasu można określić przy użyciu Timeout właściwości , aby upewnić się, że metoda zwraca się po upływie określonego czasu.

Przed wywołaniem tej metody Host właściwości i Port należy ustawić za pomocą plików konfiguracji, ustawiając odpowiednie właściwości lub przekazując te informacje do konstruktora SmtpClient(String, Int32) .

Nie można wywołać tej metody, jeśli komunikat jest wysyłany asynchronicznie.

Jeśli host SMTP wymaga poświadczeń, należy je ustawić przed wywołaniem tej metody. Aby określić poświadczenia, użyj UseDefaultCredentials właściwości lub Credentials .

Jeśli wystąpi SmtpException wyjątek, sprawdź StatusCode właściwość , aby znaleźć przyczynę niepowodzenia operacji. Element SmtpException może również zawierać wyjątek wewnętrzny wskazujący przyczynę niepowodzenia operacji.

Podczas wysyłania wiadomości e-mail przy użyciu Send wielu adresatów, a serwer SMTP akceptuje niektórych adresatów jako prawidłowych i odrzuca innych, wysyła wiadomość e-mail do zaakceptowanych adresatów, Send a następnie SmtpFailedRecipientsException jest zgłaszany (lub SmtpFailedRecipientException jeśli tylko jeden adresat zostanie odrzucony). Obiekt SmtpFailedRecipientsException zawiera listę adresatów, którzy zostali odrzuceni.

Uwaga / Notatka

EnableSsl Jeśli właściwość jest ustawiona na truewartość , a serwer poczty SMTP nie anonsuje wartości STARTTLS w odpowiedzi na polecenie EHLO, wywołanie Send metody lub SendAsync zgłosi błąd SmtpException.

Dotyczy