SmtpClient.Send Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Sends an email message to an SMTP server for delivery. These methods block while the message is being transmitted.
Overloads
Send(MailMessage) |
Sends the specified message to an SMTP server for delivery. |
Send(String, String, String, String) |
Sends the specified email message to an SMTP server for delivery. The message sender, recipients, subject, and message body are specified using String objects. |
Send(MailMessage)
- Source:
- SmtpClient.cs
- Source:
- SmtpClient.cs
- Source:
- SmtpClient.cs
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)
Parameters
- message
- MailMessage
A MailMessage that contains the message to send.
Exceptions
message
is null
.
This SmtpClient has another send operation already in progress.
-or-
From is null
.
-or-
There are no recipients specified in To, CC, and Bcc properties.
-or-
DeliveryMethod property is set to Network and Host is null
.
-or-
DeliveryMethod property is set to Network and Host is equal to the empty string ("").
-or-
DeliveryMethod property is set to Network and Port is zero, a negative number, or greater than 65,535.
This object has been disposed.
The connection to the SMTP server failed.
-or-
Authentication failed.
-or-
The operation timed out.
-or-
EnableSsl is set to true
but the DeliveryMethod property is set to SpecifiedPickupDirectory or PickupDirectoryFromIis.
-or-
EnableSsl is set to true,
but the SMTP mail server did not advertise STARTTLS in the response to the EHLO command.
Examples
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());
}
}
Remarks
This method blocks while the email is transmitted. You can specify a time-out value using the Timeout property to ensure that the method returns after a specified amount of time elapses.
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.
If the SMTP host requires credentials, you must set them before calling this method. To specify credentials, use the UseDefaultCredentials or Credentials properties.
If you receive an SmtpException exception, check the StatusCode property to find the reason the operation failed. The SmtpException can also contain an inner exception that indicates the reason the operation failed.
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). A SmtpFailedRecipientsException contains a list of the recipients that were rejected.
Note
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.
Applies to
Send(String, String, String, String)
- Source:
- SmtpClient.cs
- Source:
- SmtpClient.cs
- Source:
- SmtpClient.cs
Sends the specified email message to an SMTP server for delivery. The message sender, recipients, subject, and message body are specified using String objects.
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)
Parameters
Exceptions
This SmtpClient has another send operation already in progress.
-or-
DeliveryMethod property is set to Network and Host is null
.
-or-
DeliveryMethod property is set to Network and Host is equal to the empty string ("").
-or-
DeliveryMethod property is set to Network and Port is zero, a negative number, or greater than 65,535.
This object has been disposed.
The connection to the SMTP server failed.
-or-
Authentication failed.
-or-
The operation timed out.
-or-
EnableSsl is set to true
but the DeliveryMethod property is set to SpecifiedPickupDirectory or PickupDirectoryFromIis.
-or-
EnableSsl is set to true,
but the SMTP mail server did not advertise STARTTLS in the response to the EHLO command.
Remarks
This method blocks while the email is transmitted. You can specify a time-out value using the Timeout property to ensure that the method returns after a specified amount of time elapses.
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.
If the SMTP host requires credentials, you must set them before calling this method. To specify credentials, use the UseDefaultCredentials or Credentials properties.
If you receive an SmtpException exception, check the StatusCode property to find the reason the operation failed. The SmtpException can also contain an inner exception that indicates the reason the operation failed.
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). A SmtpFailedRecipientsException contains a list of the recipients that were rejected.
Note
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.