Поделиться через


SmtpClient.Send Метод

Определение

Отправляет сообщение электронной почты на сервер SMTP для доставки. Эти методы блокируются во время передачи сообщения.

Перегрузки

Send(MailMessage)

Отправляет указанное сообщение на сервер SMTP для доставки.

Send(String, String, String, String)

Отправляет указанное сообщение электронной почты на сервер SMTP для доставки. Отправитель, получатели, тема и основная часть сообщения указываются с помощью объектов String.

Send(MailMessage)

Исходный код:
SmtpClient.cs
Исходный код:
SmtpClient.cs
Исходный код:
SmtpClient.cs

Отправляет указанное сообщение на сервер SMTP для доставки.

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)

Параметры

message
MailMessage

Объект MailMessage, который содержит отправляемое сообщение.

Исключения

message имеет значение null.

В этом SmtpClient случае уже выполняется другая операция отправки.

-или-

From имеет значение null.

-или-

Отсутствуют получатели в свойствах To, CC и Bcc.

-или-

Свойству DeliveryMethod задано значение Network, а свойству Host задано значение null.

-или-

Свойству DeliveryMethod задано значение Network и Host равно пустой строке ("").

-или-

Свойство DeliveryMethod имеет значение Network, а свойство Port равно нулю, отрицательно или больше 65535.

Данный объект удален.

Сбой подключения к серверу SMTP.

-или-

Проверка подлинности не пройдена.

-или-

Истекло время ожидания для выполнения операции.

-или-

EnableSsl имеет значение true, а свойство DeliveryMethod имеет значение SpecifiedPickupDirectory или PickupDirectoryFromIis.

-или-

Свойство EnableSsl имеет значение true, однако почтовый SMTP-сервер не отправил STARTTLS в ответ на команду EHLO.

Сообщение message не удалось доставить одному из получателей To, CC или Bcc.

Сообщение message не удалось доставить двум или более получателям To, CC или Bcc.

Примеры

В следующем примере кода показано использование этого метода.

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

Комментарии

Этот метод блокирует передачу сообщения электронной почты. Значение времени ожидания можно указать с помощью Timeout свойства , чтобы гарантировать, что метод возвращается по истечении указанного времени.

Перед вызовом этого метода Host необходимо задать свойства и Port с помощью файлов конфигурации, задав соответствующие свойства или передав эти сведения в SmtpClient(String, Int32) конструктор.

Этот метод нельзя вызвать, если сообщение отправляется асинхронно.

Если для узла SMTP требуются учетные данные, их необходимо задать перед вызовом этого метода. Чтобы указать учетные данные, используйте UseDefaultCredentials свойства или Credentials .

Если вы получили SmtpException исключение, проверка StatusCode свойство , чтобы найти причину сбоя операции. Также SmtpException может содержать внутреннее исключение, указывающее причину сбоя операции.

При отправке электронной почты с помощью Send нескольким получателям, а SMTP-сервер принимает одних получателей как допустимые и отклоняет других, отправляет сообщения электронной почты принятым получателям, Send после чего SmtpFailedRecipientsException создается исключение (или , SmtpFailedRecipientException если отклоняется только один получатель). Содержит SmtpFailedRecipientsException список получателей, которые были отклонены.

Примечание

Если свойству EnableSsl присвоено значение true, а почтовый smtp-сервер не объявляет STARTTLS в ответе на команду EHLO, вызов Send методов или SendAsync вызовет исключение SmtpException.

Применяется к

Send(String, String, String, String)

Исходный код:
SmtpClient.cs
Исходный код:
SmtpClient.cs
Исходный код:
SmtpClient.cs

Отправляет указанное сообщение электронной почты на сервер SMTP для доставки. Отправитель, получатели, тема и основная часть сообщения указываются с помощью объектов 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)

Параметры

from
String

Значение String, содержащее информацию об адресе отправителя сообщения.

recipients
String

Значение String, содержащее адреса, по которым отправляется сообщение.

subject
String

Значение String, содержащее строку темы сообщения.

body
String

Значение String, содержащее основную часть сообщения.

Исключения

from имеет значение null.

-или-

recipients имеет значение null.

from имеет значение Empty.

-или-

recipients имеет значение Empty.

В этом SmtpClient случае уже выполняется другая операция отправки.

-или-

Свойству DeliveryMethod задано значение Network, а свойству Host задано значение null.

-или-

Свойству DeliveryMethod задано значение Network и Host равно пустой строке ("").

-или-

Свойство DeliveryMethod имеет значение Network, а свойство Port равно нулю, отрицательно или больше 65535.

Данный объект удален.

Сбой подключения к серверу SMTP.

-или-

Проверка подлинности не пройдена.

-или-

Истекло время ожидания для выполнения операции.

-или-

EnableSsl имеет значение true, а свойство DeliveryMethod имеет значение SpecifiedPickupDirectory или PickupDirectoryFromIis.

-или-

Свойство EnableSsl имеет значение true, однако почтовый SMTP-сервер не отправил STARTTLS в ответ на команду EHLO.

Сообщение message не удалось доставить одному из получателей To, CC или Bcc.

Сообщение message не удалось доставить двум или более получателям To, CC или Bcc.

Комментарии

Этот метод блокирует передачу сообщения электронной почты. Значение времени ожидания можно указать с помощью Timeout свойства , чтобы гарантировать, что метод возвращается по истечении указанного времени.

Перед вызовом этого метода Host необходимо задать свойства и Port с помощью файлов конфигурации, задав соответствующие свойства или передав эти сведения в SmtpClient(String, Int32) конструктор.

Этот метод нельзя вызвать, если сообщение отправляется асинхронно.

Если для узла SMTP требуются учетные данные, их необходимо задать перед вызовом этого метода. Чтобы указать учетные данные, используйте UseDefaultCredentials свойства или Credentials .

Если вы получили SmtpException исключение, проверка StatusCode свойство , чтобы найти причину сбоя операции. Также SmtpException может содержать внутреннее исключение, указывающее причину сбоя операции.

При отправке электронной почты с помощью Send нескольким получателям, а SMTP-сервер принимает одних получателей как допустимые и отклоняет других, отправляет сообщения электронной почты принятым получателям, Send после чего SmtpFailedRecipientsException создается исключение (или , SmtpFailedRecipientException если отклоняется только один получатель). Содержит SmtpFailedRecipientsException список получателей, которые были отклонены.

Примечание

Если свойству EnableSsl присвоено значение true, а почтовый smtp-сервер не объявляет STARTTLS в ответе на команду EHLO, вызов Send методов или SendAsync вызовет исключение SmtpException.

Применяется к