SmtpClient.Send Метод

Определение

Отправляет сообщение электронной почты на сервер SMTP для доставки.Sends an email message to an SMTP server for delivery. Эти методы блокируются во время передачи сообщения.These methods block while the message is being transmitted.

Перегрузки

Send(MailMessage)

Отправляет указанное сообщение на сервер SMTP для доставки.Sends the specified message to an SMTP server for delivery.

Send(String, String, String, String)

Отправляет указанное сообщение электронной почты на сервер SMTP для доставки.Sends the specified email message to an SMTP server for delivery. Отправитель, получатели, тема и основная часть сообщения указываются с помощью объектов String.The message sender, recipients, subject, and message body are specified using String objects.

Send(MailMessage)

Отправляет указанное сообщение на сервер SMTP для доставки.Sends the specified message to an SMTP server for delivery.

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, который содержит отправляемое сообщение.A MailMessage that contains the message to send.

Исключения

messagenull.message is null.

Данный SmtpClient в настоящий момент вызывает SendAsync.This SmtpClient has a SendAsync call in progress.

- или --or- Свойство From имеет значение null.From is null.

- или --or- Отсутствуют получатели в свойствах To, CC и Bcc.There are no recipients specified in To, CC, and Bcc properties.

- или --or- Свойству DeliveryMethod задано значение Network, а свойству Host задано значение null.DeliveryMethod property is set to Network and Host is null.

- или --or- Свойству DeliveryMethod задано значение Network и Host равно пустой строке ("").DeliveryMethod property is set to Network and Host is equal to the empty string ("").

- или --or- Свойство DeliveryMethod имеет значение Network, а свойство Port равно нулю, отрицательно или больше 65535.DeliveryMethod property is set to Network and Port is zero, a negative number, or greater than 65,535.

Данный объект удален.This object has been disposed.

Сбой подключения к серверу SMTP.The connection to the SMTP server failed.

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

- или --or- Истекло время ожидания для выполнения операции.The operation timed out. - или --or- EnableSsl имеет значение true, а свойство DeliveryMethod имеет значение SpecifiedPickupDirectory или PickupDirectoryFromIis.EnableSsl is set to true but the DeliveryMethod property is set to SpecifiedPickupDirectory or PickupDirectoryFromIis.

- или --or- Свойство EnableSsl имеет значение true, однако почтовый SMTP-сервер не отправил STARTTLS в ответ на команду EHLO.EnableSsl is set to true, but the SMTP mail server did not advertise STARTTLS in the response to the EHLO command.

Сообщение message не удалось доставить одному из получателей To, CC или Bcc.The message could not be delivered to one of the recipients in To, CC, or Bcc.

Сообщение message не удалось доставить двум или более получателям To, CC или Bcc.The message could not be delivered to two or more of the recipients in To, CC, or Bcc.

Примеры

В следующем примере кода демонстрируется использование этого метода.The following code example demonstrates using this method.

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

Комментарии

Этот метод блокируется во время передачи сообщения электронной почты.This method blocks while the email is transmitted. Можно указать значение времени ожидания с помощью свойства Timeout, чтобы метод возвращался после истечения указанного промежутка времени.You can specify a time-out value using the Timeout property to ensure that the method returns after a specified amount of time elapses.

Перед вызовом этого метода необходимо задать свойства Host и Port либо с помощью файлов конфигурации, задав соответствующие свойства, либо передав эту информацию в конструктор SmtpClient(String, Int32).Before calling this method, the Host and Port properties must be set either through the configuration files by setting the relevant properties, or by passing this information into the SmtpClient(String, Int32) constructor.

Этот метод нельзя вызывать, если сообщение отправляется асинхронно.You cannot call this method if there is a message being sent asynchronously.

Если SMTP-узлу требуются учетные данные, их необходимо задать перед вызовом этого метода.If the SMTP host requires credentials, you must set them before calling this method. Чтобы указать учетные данные, используйте свойства UseDefaultCredentials или Credentials.To specify credentials, use the UseDefaultCredentials or Credentials properties.

Если возникает исключение SmtpException, проверьте свойство StatusCode, чтобы найти причину сбоя операции.If you receive an SmtpException exception, check the StatusCode property to find the reason the operation failed. SmtpException также может содержать внутреннее исключение, указывающее причину сбоя операции.The SmtpException can also contain an inner exception that indicates the reason the operation failed.

При отправке электронной почты с помощью Send нескольким получателям, если SMTP-сервер принимает в качестве допустимых и отклоняет других получателей, Send отправляет сообщение электронной почты принятым получателям, а затем вызывается SmtpFailedRecipientsException (или SmtpFailedRecipientException, если отклоняется только один получатель).When sending email using Send to multiple recipients and the SMTP server accepts some recipients as valid and rejects others, Send sends email to the accepted recipients and then a SmtpFailedRecipientsException is thrown (or a SmtpFailedRecipientException if only one recipient is rejected). SmtpFailedRecipientsException содержит список отклоненных получателей.A SmtpFailedRecipientsException contains a list of the recipients that were rejected.

Примечание

Если свойство EnableSsl имеет значение true, а почтовый сервер SMTP не объявляет STARTTLS в ответ на команду EHLO, то вызов метода Send или SendAsync вызывает исключение SmtpException.If the EnableSsl property is set to true, and the SMTP mail server does not advertise STARTTLS in the response to the EHLO command, then a call to the Send or SendAsync methods will throw an SmtpException.

Безопасность

SmtpPermission
для подключения к SMTP-серверу.to connect to the SMTP server. Связанное перечисление: ConnectAssociated enumeration: Connect

Send(String, String, String, String)

Отправляет указанное сообщение электронной почты на сервер SMTP для доставки.Sends the specified email message to an SMTP server for delivery. Отправитель, получатели, тема и основная часть сообщения указываются с помощью объектов String.The message sender, recipients, subject, and message body are specified using String objects.

public:
 void Send(System::String ^ from, System::String ^ to, System::String ^ subject, System::String ^ body);
public void Send (string from, string to, string subject, string body);
member this.Send : string * string * string * string -> unit
Public Sub Send (from As String, to As String, subject As String, body As String)

Параметры

from
String

Значение String, содержащее информацию об адресе отправителя сообщения.A String that contains the address information of the message sender.

recipients
String

Значение String, содержащее адреса, по которым отправляется сообщение.A String that contains the addresses that the message is sent to.

subject
String

Значение String, содержащее строку темы сообщения.A String that contains the subject line for the message.

body
String

Значение String, содержащее основную часть сообщения.A String that contains the message body.

Исключения

fromnull.from is null.

- или --or- recipientsnull.recipients is null.

fromEmpty.from is Empty.

- или --or- Свойство recipients имеет значение Empty.recipients is Empty.

Данный SmtpClient в настоящий момент вызывает SendAsync.This SmtpClient has a SendAsync call in progress.

- или --or- Свойству DeliveryMethod задано значение Network, а свойству Host задано значение null.DeliveryMethod property is set to Network and Host is null.

- или --or- Свойству DeliveryMethod задано значение Network и Host равно пустой строке ("").DeliveryMethod property is set to Network and Host is equal to the empty string ("").

- или --or- Свойство DeliveryMethod имеет значение Network, а свойство Port равно нулю, отрицательно или больше 65535.DeliveryMethod property is set to Network and Port is zero, a negative number, or greater than 65,535.

Данный объект удален.This object has been disposed.

Сбой подключения к серверу SMTP.The connection to the SMTP server failed.

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

- или --or- Истекло время ожидания для выполнения операции.The operation timed out. - или --or- EnableSsl имеет значение true, а свойство DeliveryMethod имеет значение SpecifiedPickupDirectory или PickupDirectoryFromIis.EnableSsl is set to true but the DeliveryMethod property is set to SpecifiedPickupDirectory or PickupDirectoryFromIis.

- или --or- Свойство EnableSsl имеет значение true, однако почтовый SMTP-сервер не отправил STARTTLS в ответ на команду EHLO.EnableSsl is set to true, but the SMTP mail server did not advertise STARTTLS in the response to the EHLO command.

Сообщение message не удалось доставить одному из получателей To, CC или Bcc.The message could not be delivered to one of the recipients in To, CC, or Bcc.

Сообщение message не удалось доставить двум или более получателям To, CC или Bcc.The message could not be delivered to two or more of the recipients in To, CC, or Bcc.

Комментарии

Этот метод блокируется во время передачи сообщения электронной почты.This method blocks while the email is transmitted. Можно указать значение времени ожидания с помощью свойства Timeout, чтобы метод возвращался после истечения указанного промежутка времени.You can specify a time-out value using the Timeout property to ensure that the method returns after a specified amount of time elapses.

Перед вызовом этого метода необходимо задать свойства Host и Port либо с помощью файлов конфигурации, задав соответствующие свойства, либо передав эту информацию в конструктор SmtpClient(String, Int32).Before calling this method, the Host and Port properties must be set either through the configuration files by setting the relevant properties, or by passing this information into the SmtpClient(String, Int32) constructor.

Этот метод нельзя вызывать, если сообщение отправляется асинхронно.You cannot call this method if there is a message being sent asynchronously.

Если SMTP-узлу требуются учетные данные, их необходимо задать перед вызовом этого метода.If the SMTP host requires credentials, you must set them before calling this method. Чтобы указать учетные данные, используйте свойства UseDefaultCredentials или Credentials.To specify credentials, use the UseDefaultCredentials or Credentials properties.

Если возникает исключение SmtpException, проверьте свойство StatusCode, чтобы найти причину сбоя операции.If you receive an SmtpException exception, check the StatusCode property to find the reason the operation failed. SmtpException также может содержать внутреннее исключение, указывающее причину сбоя операции.The SmtpException can also contain an inner exception that indicates the reason the operation failed.

При отправке электронной почты с помощью Send нескольким получателям, если SMTP-сервер принимает в качестве допустимых и отклоняет других получателей, Send отправляет сообщение электронной почты принятым получателям, а затем вызывается SmtpFailedRecipientsException (или SmtpFailedRecipientException, если отклоняется только один получатель).When sending email using Send to multiple recipients and the SMTP server accepts some recipients as valid and rejects others, Send sends email to the accepted recipients and then a SmtpFailedRecipientsException is thrown (or a SmtpFailedRecipientException if only one recipient is rejected). SmtpFailedRecipientsException содержит список отклоненных получателей.A SmtpFailedRecipientsException contains a list of the recipients that were rejected.

Примечание

Если свойство EnableSsl имеет значение true, а почтовый сервер SMTP не объявляет STARTTLS в ответ на команду EHLO, то вызов метода Send или SendAsync вызывает исключение SmtpException.If the EnableSsl property is set to true, and the SMTP mail server does not advertise STARTTLS in the response to the EHLO command, then a call to the Send or SendAsync methods will throw an SmtpException.

Безопасность

SmtpPermission
для подключения к SMTP-серверу.to connect to the SMTP server. Связанное перечисление: ConnectAssociated enumeration: Connect

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