SmtpClient.Send 方法

定义

将电子邮件发送到 SMTP 服务器以便传递。 这些方法在传输邮件的过程中进行阻止。

重载

Send(MailMessage)

将指定的邮件发送到 SMTP 服务器以便传递。

Send(String, String, String, String)

将指定的电子邮件发送到 SMTP 服务器以便传递。 使用 String 对象指定邮件的发件人、收件人、主题和邮件正文。

Send(MailMessage)

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

例外

messagenull

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

Fromnull

- 或 -

ToCCBcc 属性中没有指定的收件人。

- 或 -

DeliveryMethod 属性设置为 Network,且 Hostnull

- 或 -

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

- 或 -

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

已释放此对象。

连接到 SMTP 服务器失败。

- 或 -

身份验证失败。

- 或 -

操作超时。

- 或 -

EnableSsl 设置为 true,但 DeliveryMethod 属性设置为 SpecifiedPickupDirectoryPickupDirectoryFromIis

- 或 -

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

message 未能传递给 ToCCBcc 中的一个收件人。

message 未能传递给 ToCCBcc 中的两个或多个收件人。

示例

下面的代码示例演示如何使用此方法。

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 主机需要凭据,则必须在调用此方法之前对其进行设置。 若要指定凭据,请使用 UseDefaultCredentialsCredentials 属性。

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

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

注意

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

适用于

Send(String, String, String, String)

Source:
SmtpClient.cs
Source:
SmtpClient.cs
Source:
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

例外

fromnull

recipientsnull

fromEmpty

recipientsEmpty

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

- 或 -

DeliveryMethod 属性设置为 Network,且 Hostnull

- 或 -

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

- 或 -

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

已释放此对象。

连接到 SMTP 服务器失败。

- 或 -

身份验证失败。

- 或 -

操作超时。

- 或 -

EnableSsl 设置为 true,但 DeliveryMethod 属性设置为 SpecifiedPickupDirectoryPickupDirectoryFromIis

- 或 -

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

message 未能传递给 ToCCBcc 中的一个收件人。

message 未能传递给 ToCCBcc 中的两个或多个收件人。

注解

此方法在传输电子邮件时阻止。 可以使用 属性指定超时值 Timeout ,以确保方法在经过指定的时间量后返回。

在调用此方法之前,Host必须通过配置文件设置相关属性或将此信息传递到构造函数中SmtpClient(String, Int32)来设置 和 Port 属性。

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

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

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

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

注意

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

适用于