SmtpClient.Send 메서드

정의

배달용 SMTP 서버로 이메일 메시지를 보냅니다.Sends an email message to an SMTP server for delivery. 이 메서드는 메시지를 전송하는 동안 차단됩니다.These methods block while the message is being transmitted.

오버로드

Send(MailMessage)

배달용 SMTP 서버로 지정된 메시지를 보냅니다.Sends the specified message to an SMTP server for delivery.

Send(String, String, String, String)

배달용 SMTP 서버로 지정된 이메일 메시지를 보냅니다.Sends the specified email message to an SMTP server for delivery. 메시지의 보낸 사람, 받는 사람, 제목 및 메시지 본문은 String 개체를 사용하여 지정됩니다.The message sender, recipients, subject, and message body are specified using String objects.

Send(MailMessage)

배달용 SMTP 서버로 지정된 메시지를 보냅니다.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)

매개 변수

message
MailMessage

보낼 메시지가 들어 있는 MailMessage입니다.A MailMessage that contains the message to send.

예외

messagenull인 경우message is null.

SmtpClient에서 SendAsync 호출이 진행 중인 경우This SmtpClient has a SendAsync call in progress.

-또는--or- Fromnull인 경우From is null.

-또는--or- To, CCBcc 속성에 지정된 받는 사람이 없습니다.There are no recipients specified in To, CC, and Bcc properties.

-또는--or- DeliveryMethod 속성은 Network로 설정되고 Hostnull입니다.DeliveryMethod property is set to Network and Host is null.

-또는--or- DeliveryMethod 속성이 Network로 설정되고 Host가 빈 문자열("")과 같습니다.DeliveryMethod property is set to Network and Host is equal to the empty string ("").

-또는--or- DeliveryMethod 속성은 Network로 설정되고 Port는 0, 음수 또는 65,535보다 큽니다.DeliveryMethod property is set to Network and Port is zero, a negative number, or greater than 65,535.

이 개체가 삭제되었습니다.This object has been disposed.

SMTP 서버에 연결하지 못했습니다.The connection to the SMTP server failed.

-또는--or- 인증에 실패했습니다.Authentication failed.

-또는--or- 작업 시간이 초과되었습니다.The operation timed out. -또는--or- EnableSsltrue로 설정되지만 DeliveryMethod 속성은 SpecifiedPickupDirectory 또는 PickupDirectoryFromIis로 설정됩니다.EnableSsl is set to true but the DeliveryMethod property is set to SpecifiedPickupDirectory or PickupDirectoryFromIis.

-또는--or- EnableSsltrue,로 설정되지만 SMTP 메일 서버는 응답에서 STARTTLS를 EHLO 명령에 알리지 않았습니다.EnableSsl is set to true, but the SMTP mail server did not advertise STARTTLS in the response to the EHLO command.

message, To 또는 CC에 있는 받는 사람 중 한 명에게 Bcc를 배달하지 못한 경우The message could not be delivered to one of the recipients in To, CC, or Bcc.

message, To 또는 CC에 있는 두 명 이상의 받는 사람에게 Bcc를 배달하지 못한 경우The message could not be delivered to two or more of the recipients in To, CC, or Bcc.

예제

다음 코드 예제에서는이 메서드를 사용 하는 방법을 보여 줍니다.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());
    }
}

설명

이 메서드는 전자 메일 전송 되는 동안 차단 합니다.This method blocks while the email is transmitted. Timeout 속성을 사용 하 여 시간 제한 값을 지정 하 여 지정 된 시간이 경과 된 후 메서드가 반환 되도록 할 수 있습니다.You can specify a time-out value using the Timeout property to ensure that the method returns after a specified amount of time elapses.

이 메서드를 호출 하기 전에 관련 속성을 설정 하거나이 정보를 SmtpClient(String, Int32) 생성자에 전달 하 여 구성 파일을 통해 HostPort 속성을 설정 해야 합니다.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.

SMTP 호스트 자격 증명에 필요한 경우이 메서드를 호출 하기 전에 설정 해야 합니다.If the SMTP host requires credentials, you must set them before calling this method. 자격 증명을 지정 하려면 UseDefaultCredentials 또는 Credentials 속성을 사용 합니다.To specify credentials, use the UseDefaultCredentials or Credentials properties.

SmtpException 예외가 표시 되 면 StatusCode 속성을 확인 하 여 작업이 실패 한 이유를 확인 합니다.If you receive an SmtpException exception, check the StatusCode property to find the reason the operation failed. SmtpException에는 작업이 실패 한 이유를 나타내는 내부 예외가 포함 될 수도 있습니다.The SmtpException can also contain an inner exception that indicates the reason the operation failed.

Send를 사용 하 여 여러 받는 사람에 게 전자 메일을 보낼 때 SMTP 서버는 Send 받는 사람에 게 전자 메일을 보내고 받는 사람에 게 전자 메일을 보낸 다음 SmtpFailedRecipientsException (또는 받는 사람 한 명이 거부 된 경우 SmtpFailedRecipientException)를 수락 합니다.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). SmtpFailedRecipientsException에는 거부 된 받는 사람의 목록이 포함 됩니다.A SmtpFailedRecipientsException contains a list of the recipients that were rejected.

참고

EnableSsl 속성이 true로 설정 되 고 SMTP 메일 서버가 EHLO 명령에 대 한 응답으로 STARTTLS을 알리지 않으면 Send 또는 SendAsync 메서드를 호출 하면 SmtpException이 throw 됩니다.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.

보안

SmtpPermission
SMTP 서버에 연결 합니다.to connect to the SMTP server. 연결 된 열거형: ConnectAssociated enumeration: Connect

Send(String, String, String, String)

배달용 SMTP 서버로 지정된 이메일 메시지를 보냅니다.Sends the specified email message to an SMTP server for delivery. 메시지의 보낸 사람, 받는 사람, 제목 및 메시지 본문은 String 개체를 사용하여 지정됩니다.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)

매개 변수

from
String

메시지의 보낸 사람 주소 정보가 들어 있는 String입니다.A String that contains the address information of the message sender.

recipients
String

메시지를 보낼 대상 주소가 들어 있는 String입니다.A String that contains the addresses that the message is sent to.

subject
String

메시지의 제목 줄이 들어 있는 String입니다.A String that contains the subject line for the message.

body
String

메시지 본문이 들어 있는 String입니다.A String that contains the message body.

예외

fromnull인 경우from is null.

-또는--or- recipientsnull인 경우recipients is null.

fromEmpty인 경우from is Empty.

-또는--or- recipientsEmpty인 경우recipients is Empty.

SmtpClient에서 SendAsync 호출이 진행 중인 경우This SmtpClient has a SendAsync call in progress.

-또는--or- DeliveryMethod 속성은 Network로 설정되고 Hostnull입니다.DeliveryMethod property is set to Network and Host is null.

-또는--or- DeliveryMethod 속성이 Network로 설정되고 Host가 빈 문자열("")과 같습니다.DeliveryMethod property is set to Network and Host is equal to the empty string ("").

-또는--or- DeliveryMethod 속성은 Network로 설정되고 Port는 0, 음수 또는 65,535보다 큽니다.DeliveryMethod property is set to Network and Port is zero, a negative number, or greater than 65,535.

이 개체가 삭제되었습니다.This object has been disposed.

SMTP 서버에 연결하지 못했습니다.The connection to the SMTP server failed.

-또는--or- 인증에 실패했습니다.Authentication failed.

-또는--or- 작업 시간이 초과되었습니다.The operation timed out. -또는--or- EnableSsltrue로 설정되지만 DeliveryMethod 속성은 SpecifiedPickupDirectory 또는 PickupDirectoryFromIis로 설정됩니다.EnableSsl is set to true but the DeliveryMethod property is set to SpecifiedPickupDirectory or PickupDirectoryFromIis.

-또는--or- EnableSsltrue,로 설정되지만 SMTP 메일 서버는 응답에서 STARTTLS를 EHLO 명령에 알리지 않았습니다.EnableSsl is set to true, but the SMTP mail server did not advertise STARTTLS in the response to the EHLO command.

message, To 또는 CC에 있는 받는 사람 중 한 명에게 Bcc를 배달하지 못한 경우The message could not be delivered to one of the recipients in To, CC, or Bcc.

message, To 또는 CC에 있는 두 명 이상의 받는 사람에게 Bcc를 배달하지 못한 경우The message could not be delivered to two or more of the recipients in To, CC, or Bcc.

설명

이 메서드는 전자 메일 전송 되는 동안 차단 합니다.This method blocks while the email is transmitted. Timeout 속성을 사용 하 여 시간 제한 값을 지정 하 여 지정 된 시간이 경과 된 후 메서드가 반환 되도록 할 수 있습니다.You can specify a time-out value using the Timeout property to ensure that the method returns after a specified amount of time elapses.

이 메서드를 호출 하기 전에 관련 속성을 설정 하거나이 정보를 SmtpClient(String, Int32) 생성자에 전달 하 여 구성 파일을 통해 HostPort 속성을 설정 해야 합니다.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.

SMTP 호스트 자격 증명에 필요한 경우이 메서드를 호출 하기 전에 설정 해야 합니다.If the SMTP host requires credentials, you must set them before calling this method. 자격 증명을 지정 하려면 UseDefaultCredentials 또는 Credentials 속성을 사용 합니다.To specify credentials, use the UseDefaultCredentials or Credentials properties.

SmtpException 예외가 표시 되 면 StatusCode 속성을 확인 하 여 작업이 실패 한 이유를 확인 합니다.If you receive an SmtpException exception, check the StatusCode property to find the reason the operation failed. SmtpException에는 작업이 실패 한 이유를 나타내는 내부 예외가 포함 될 수도 있습니다.The SmtpException can also contain an inner exception that indicates the reason the operation failed.

Send를 사용 하 여 여러 받는 사람에 게 전자 메일을 보낼 때 SMTP 서버는 Send 받는 사람에 게 전자 메일을 보내고 받는 사람에 게 전자 메일을 보낸 다음 SmtpFailedRecipientsException (또는 받는 사람 한 명이 거부 된 경우 SmtpFailedRecipientException)를 수락 합니다.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). SmtpFailedRecipientsException에는 거부 된 받는 사람의 목록이 포함 됩니다.A SmtpFailedRecipientsException contains a list of the recipients that were rejected.

참고

EnableSsl 속성이 true로 설정 되 고 SMTP 메일 서버가 EHLO 명령에 대 한 응답으로 STARTTLS을 알리지 않으면 Send 또는 SendAsync 메서드를 호출 하면 SmtpException이 throw 됩니다.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.

보안

SmtpPermission
SMTP 서버에 연결 합니다.to connect to the SMTP server. 연결 된 열거형: ConnectAssociated enumeration: Connect

적용 대상