365充值真人注册-super365体育官网下载-365bet体育开户

SmtpClient.Send 方法 (System.Net.Mail)

SmtpClient.Send 方法 (System.Net.Mail)

Source:SmtpClient.cs

Source:SmtpClient.cs

Source: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。

例外

ArgumentNullException

message 为 null。

InvalidOperationException

这 SmtpClient 还有另一个正在执行的发送操作。

From 为 null。

- 或 -

To、CC 和 Bcc 属性中没有指定的收件人。

- 或 -

DeliveryMethod 属性设置为 Network,且 Host 为 null。

- 或 -

DeliveryMethod 属性设置为 Network,Host 等于空字符串 ("")。

- 或 -

DeliveryMethod 属性被设为 Network 且 Port 为零、负数或大于 65,535。

ObjectDisposedException

已释放此对象。

SmtpException

连接到 SMTP 服务器失败。

- 或 -

身份验证失败。

- 或 -

操作超时。

- 或 -

EnableSsl 设置为 true,但 DeliveryMethod 属性设置为 SpecifiedPickupDirectory 或 PickupDirectoryFromIis。

- 或 -

EnableSsl 设置为 true,,但 SMTP 邮件服务器不在对 EHLO 命令的响应中播发 STARTTLS。

SmtpFailedRecipientException

message 未能传递给 To、CC 或 Bcc 中的一个收件人。

SmtpFailedRecipientsException

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必须通过配置文件设置相关属性或将此信息传递到构造函数中SmtpClient(String, Int32)来设置 和 Port 属性。

如果正在异步发送消息,则无法调用此方法。

如果 SMTP 主机需要凭据,则必须在调用此方法之前对其进行设置。 若要指定凭据,请使用 UseDefaultCredentials 或 Credentials 属性。

如果收到SmtpException异常,检查 StatusCode 属性来查找操作失败的原因。 还可以 SmtpException 包含指示操作失败原因的内部异常。

使用 Send 向多个收件人发送电子邮件且 SMTP 服务器接受一些有效收件人并拒绝其他收件人时, Send 向接受的收件人发送电子邮件,然后 SmtpFailedRecipientsException (引发 ; SmtpFailedRecipientException 如果) 仅拒绝一个收件人,则会引发 。 包含 SmtpFailedRecipientsException 已拒绝的收件人的列表。

注意

EnableSsl如果 属性设置为 true,并且 SMTP 邮件服务器在响应 EHLO 命令时不播发 STARTTLS,则对 Send 或 SendAsync 方法的调用将引发 SmtpException。

适用于

相关推荐