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.
Примеры
В следующем примере кода показано использование этого метода.
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)
Параметры
Исключения
В этом SmtpClient случае уже выполняется другая операция отправки.
-или-
Свойству DeliveryMethod задано значение Network, а свойству Host задано значение null
.
-или-
Свойству DeliveryMethod задано значение Network и Host равно пустой строке ("").
-или-
Свойство DeliveryMethod имеет значение Network, а свойство Port равно нулю, отрицательно или больше 65535.
Данный объект удален.
Сбой подключения к серверу SMTP.
-или-
Проверка подлинности не пройдена.
-или-
Истекло время ожидания для выполнения операции.
-или-
EnableSsl имеет значение true
, а свойство DeliveryMethod имеет значение SpecifiedPickupDirectory или PickupDirectoryFromIis.
-или-
Свойство EnableSsl имеет значение true,
однако почтовый SMTP-сервер не отправил STARTTLS в ответ на команду EHLO.
Комментарии
Этот метод блокирует передачу сообщения электронной почты. Значение времени ожидания можно указать с помощью 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.