Sdílet prostřednictvím


SmtpClient.Send Metoda

Definice

Odešle e-mailovou zprávu serveru SMTP k doručení. Tyto metody blokují během přenosu zprávy.

Přetížení

Send(MailMessage)

Odešle zadanou zprávu serveru SMTP k doručení.

Send(String, String, String, String)

Odešle zadanou e-mailovou zprávu serveru SMTP k doručení. Odesílatel, příjemci, předmět a text zprávy se zadají pomocí String objektů.

Send(MailMessage)

Zdroj:
SmtpClient.cs
Zdroj:
SmtpClient.cs
Zdroj:
SmtpClient.cs

Odešle zadanou zprávu serveru SMTP k doručení.

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

A MailMessage obsahující zprávu, která se má odeslat.

Výjimky

message je null.

Tato SmtpClient operace odeslání už probíhá.

-nebo-

From je null.

-nebo-

Ve vlastnostech , CCa Bcc nejsou zadáni Tožádní příjemci.

-nebo-

DeliveryMethod vlastnost je nastavená na Network hodnotu a Host je null.

-nebo-

DeliveryMethod vlastnost je nastavená na Network hodnotu a Host je rovna prázdnému řetězci ("").

-nebo-

DeliveryMethod vlastnost je nastavena na Network a Port je nula, záporné číslo nebo větší než 65 535.

Tento objekt byl odstraněn.

Připojení k serveru SMTP selhalo.

-nebo-

Ověření se nezdařilo.

-nebo-

Časový limit operace vypršel.

-nebo-

EnableSsl je nastavená na true , ale DeliveryMethod vlastnost je nastavená na SpecifiedPickupDirectory nebo PickupDirectoryFromIis.

-nebo-

EnableSsl je nastavený na, true, ale poštovní server SMTP neinzeroval startTLS v odpovědi na příkaz EHLO.

Nelze message doručit jednomu z příjemců v Tosouboru , CCnebo Bcc.

Nelze message doručit dvěma nebo více příjemcům v To, CCnebo Bcc.

Příklady

Následující příklad kódu ukazuje použití této metody.

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

Poznámky

Tato metoda blokuje při přenosu e-mailu. Pomocí vlastnosti můžete zadat hodnotu časového limitu Timeout , abyste zajistili, že se metoda vrátí po uplynutí zadané doby.

Před voláním této metody Host musí být vlastnosti a Port nastaveny buď prostřednictvím konfiguračních souborů nastavením příslušných vlastností, nebo předáním těchto informací do konstruktoru SmtpClient(String, Int32) .

Tuto metodu nelze volat, pokud se zpráva odesílá asynchronně.

Pokud hostitel SMTP vyžaduje přihlašovací údaje, musíte je před voláním této metody nastavit. Pokud chcete zadat přihlašovací údaje, použijte UseDefaultCredentials vlastnosti nebo Credentials .

Pokud se zobrazí výjimka SmtpException , zkontrolujte StatusCode vlastnost a zjistěte důvod selhání operace. Může SmtpException také obsahovat vnitřní výjimku, která označuje důvod selhání operace.

Při odesílání e-mailů pomocí více Send příjemců a server SMTP přijme některé příjemce jako platné a odmítne jiné, Send odešle e-mail přijatým příjemcům a pak SmtpFailedRecipientsException se vyvolá (nebo SmtpFailedRecipientException pokud je odmítnut pouze jeden příjemce). A SmtpFailedRecipientsException obsahuje seznam příjemců, kteří byli odmítnuti.

Poznámka

EnableSsl Pokud je vlastnost nastavena na truea poštovní server SMTP neinzeruje startTLS v odpovědi na příkaz EHLO, vyvolá volání Send metody nebo SendAsync metodu SmtpException.

Platí pro

Send(String, String, String, String)

Zdroj:
SmtpClient.cs
Zdroj:
SmtpClient.cs
Zdroj:
SmtpClient.cs

Odešle zadanou e-mailovou zprávu serveru SMTP k doručení. Odesílatel, příjemci, předmět a text zprávy se zadají pomocí String objektů.

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

A String , který obsahuje informace o adrese odesílatele zprávy.

recipients
String

A String obsahující adresy, na které je zpráva odeslána.

subject
String

A String obsahující řádek předmětu zprávy.

body
String

A String , který obsahuje text zprávy.

Výjimky

from je null.

-nebo-

recipients je null.

from je Empty.

-nebo-

recipients je Empty.

Tato SmtpClient operace odeslání už probíhá.

-nebo-

DeliveryMethod vlastnost je nastavená na Network hodnotu a Host je null.

-nebo-

DeliveryMethod vlastnost je nastavená na Network hodnotu a Host je rovna prázdnému řetězci ("").

-nebo-

DeliveryMethod vlastnost je nastavena na Network a Port je nula, záporné číslo nebo větší než 65 535.

Tento objekt byl odstraněn.

Připojení k serveru SMTP selhalo.

-nebo-

Ověření se nezdařilo.

-nebo-

Časový limit operace vypršel.

-nebo-

EnableSsl je nastavená na true , ale DeliveryMethod vlastnost je nastavená na SpecifiedPickupDirectory nebo PickupDirectoryFromIis.

-nebo-

EnableSsl je nastavený na, true, ale poštovní server SMTP neinzeroval startTLS v odpovědi na příkaz EHLO.

Nelze message doručit jednomu z příjemců v Tosouboru , CCnebo Bcc.

Nelze message doručit dvěma nebo více příjemcům v To, CCnebo Bcc.

Poznámky

Tato metoda blokuje při přenosu e-mailu. Pomocí vlastnosti můžete zadat hodnotu časového limitu Timeout , abyste zajistili, že se metoda vrátí po uplynutí zadané doby.

Před voláním této metody Host musí být vlastnosti a Port nastaveny buď prostřednictvím konfiguračních souborů nastavením příslušných vlastností, nebo předáním těchto informací do konstruktoru SmtpClient(String, Int32) .

Tuto metodu nelze volat, pokud se zpráva odesílá asynchronně.

Pokud hostitel SMTP vyžaduje přihlašovací údaje, musíte je před voláním této metody nastavit. Pokud chcete zadat přihlašovací údaje, použijte UseDefaultCredentials vlastnosti nebo Credentials .

Pokud se zobrazí výjimka SmtpException , zkontrolujte StatusCode vlastnost a zjistěte důvod selhání operace. Může SmtpException také obsahovat vnitřní výjimku, která označuje důvod selhání operace.

Při odesílání e-mailů pomocí více Send příjemců a server SMTP přijme některé příjemce jako platné a odmítne jiné, Send odešle e-mail přijatým příjemcům a pak SmtpFailedRecipientsException se vyvolá (nebo SmtpFailedRecipientException pokud je odmítnut pouze jeden příjemce). A SmtpFailedRecipientsException obsahuje seznam příjemců, kteří byli odmítnuti.

Poznámka

EnableSsl Pokud je vlastnost nastavena na truea poštovní server SMTP neinzeruje startTLS v odpovědi na příkaz EHLO, vyvolá volání Send metody nebo SendAsync metodu SmtpException.

Platí pro