SmtpClient.Send SmtpClient.Send SmtpClient.Send SmtpClient.Send Method

Definition

Sends an email message to an SMTP server for delivery. These methods block while the message is being transmitted.

Overloads

Send(MailMessage) Send(MailMessage) Send(MailMessage) Send(MailMessage)

Sends the specified message to an SMTP server for delivery.

Send(String, String, String, String) Send(String, String, String, String) Send(String, String, String, String) 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) Send(MailMessage) Send(MailMessage) Send(MailMessage)

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 MailMessage MailMessage MailMessage

A MailMessage that contains the message to send.

Exceptions

This SmtpClient has a SendAsync call 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.

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.

The message could not be delivered to two or more of the recipients in To, CC, or Bcc.

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.

Security

SmtpPermission
to connect to the SMTP server. Associated enumeration: Connect

Send(String, String, String, String) Send(String, String, String, String) Send(String, String, String, String) 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.

public:
 void Send(System::String ^ from, System::String ^ to, System::String ^ subject, System::String ^ body);
public void Send (string from, string to, string subject, string body);
member this.Send : string * string * string * string -> unit
Public Sub Send (from As String, to As String, subject As String, body As String)
Parameters
from
String String String String

A String that contains the address information of the message sender.

recipients
String String String String

A String that contains the addresses that the message is sent to.

subject
String String String String

A String that contains the subject line for the message.

body
String String String String

A String that contains the message body.

Exceptions

This SmtpClient has a SendAsync call 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.

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.

The message could not be delivered to two or more of the recipients in To, CC, or Bcc.

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.

Security

SmtpPermission
to connect to the SMTP server. Associated enumeration: Connect

Applies to