SmtpClient.Send 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将电子邮件发送到 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。
例外
message
为 null
。
这 SmtpClient 还有另一个正在执行的发送操作。
或
From 为 null
。
- 或 -
- 或 -
DeliveryMethod 属性设置为 Network,且 Host 为 null
。
- 或 -
DeliveryMethod 属性设置为 Network,Host 等于空字符串 ("")。
- 或 -
DeliveryMethod 属性被设为 Network 且 Port 为零、负数或大于 65,535。
已释放此对象。
连接到 SMTP 服务器失败。
- 或 -
身份验证失败。
- 或 -
操作超时。
- 或 -
EnableSsl 设置为 true
,但 DeliveryMethod 属性设置为 SpecifiedPickupDirectory 或 PickupDirectoryFromIis。
- 或 -
EnableSsl 设置为 true,
,但 SMTP 邮件服务器不在对 EHLO 命令的响应中播发 STARTTLS。
示例
下面的代码示例演示如何使用此方法。
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。
适用于
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)
参数
例外
这 SmtpClient 还有另一个正在执行的发送操作。
- 或 -
DeliveryMethod 属性设置为 Network,且 Host 为 null
。
- 或 -
DeliveryMethod 属性设置为 Network,Host 等于空字符串 ("")。
- 或 -
DeliveryMethod 属性被设为 Network 且 Port 为零、负数或大于 65,535。
已释放此对象。
连接到 SMTP 服务器失败。
- 或 -
身份验证失败。
- 或 -
操作超时。
- 或 -
EnableSsl 设置为 true
,但 DeliveryMethod 属性设置为 SpecifiedPickupDirectory 或 PickupDirectoryFromIis。
- 或 -
EnableSsl 设置为 true,
,但 SMTP 邮件服务器不在对 EHLO 命令的响应中播发 STARTTLS。
注解
此方法在传输电子邮件时阻止。 可以使用 属性指定超时值 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。