다음을 통해 공유


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입니다.

예외

message이(가) null인 경우

이미 SmtpClient 진행 중인 다른 보내기 작업이 있습니다.

또는

Fromnull입니다.

또는

To, CCBcc 속성에 지정된 받는 사람이 없습니다.

또는

DeliveryMethod 속성은 Network로 설정되고 Hostnull입니다.

또는

DeliveryMethod 속성이 Network로 설정되고 Host가 빈 문자열("")과 같습니다.

또는

DeliveryMethod 속성은 Network로 설정되고 Port는 0, 음수 또는 65,535보다 큽니다.

이 개체가 삭제되었습니다.

SMTP 서버에 연결하지 못했습니다.

또는

인증에 실패했습니다.

또는

작업 시간이 초과되었습니다.

또는

EnableSsltrue로 설정되지만 DeliveryMethod 속성은 SpecifiedPickupDirectory 또는 PickupDirectoryFromIis로 설정됩니다.

또는

EnableSsltrue,로 설정되지만 SMTP 메일 서버는 응답에서 STARTTLS를 EHLO 명령에 알리지 않았습니다.

To, CC 또는 Bcc에 있는 받는 사람 중 한 명에게 message를 배달하지 못한 경우

To, CC 또는 Bcc에 있는 두 명 이상의 받는 사람에게 message를 배달하지 못한 경우

예제

다음 코드 예제에서는이 메서드를 사용 하는 방법을 보여 줍니다.

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 호스트에 자격 증명이 필요한 경우 이 메서드를 호출하기 전에 설정해야 합니다. 자격 증명을 지정하려면 또는 Credentials 속성을 사용합니다UseDefaultCredentials.

예외가 SmtpException 표시되면 속성을 검사 StatusCode 작업이 실패한 이유를 찾습니다. 에는 SmtpException 작업이 실패한 이유를 나타내는 내부 예외도 포함될 수 있습니다.

를 사용하여 Send 여러 받는 사람에게 전자 메일을 보낼 때 SMTP 서버는 일부 받는 사람을 유효한 것으로 수락하고 다른 Send 받는 사람을 거부하고 수락된 받는 사람에게 전자 메일을 보낸 다음 SmtpFailedRecipientsException 가 throw됩니다(또는 SmtpFailedRecipientException 한 명의 받는 사람만 거부된 경우). SmtpFailedRecipientsException 에는 거부된 받는 사람 목록이 포함됩니다.

참고

속성이 EnableSsl 로 설정true되고 SMTP 메일 서버가 EHLO 명령에 대한 응답으로 STARTTLS를 보급하지 않는 경우 또는 SendAsync 메서드를 Send 호출하면 가 SmtpExceptionthrow됩니다.

적용 대상

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입니다.

또는

recipients이(가) null인 경우

from이(가) Empty인 경우

또는

recipientsEmpty입니다.

이미 SmtpClient 진행 중인 다른 보내기 작업이 있습니다.

또는

DeliveryMethod 속성은 Network로 설정되고 Hostnull입니다.

또는

DeliveryMethod 속성이 Network로 설정되고 Host가 빈 문자열("")과 같습니다.

또는

DeliveryMethod 속성은 Network로 설정되고 Port는 0, 음수 또는 65,535보다 큽니다.

이 개체가 삭제되었습니다.

SMTP 서버에 연결하지 못했습니다.

또는

인증에 실패했습니다.

또는

작업 시간이 초과되었습니다.

또는

EnableSsltrue로 설정되지만 DeliveryMethod 속성은 SpecifiedPickupDirectory 또는 PickupDirectoryFromIis로 설정됩니다.

또는

EnableSsltrue,로 설정되지만 SMTP 메일 서버는 응답에서 STARTTLS를 EHLO 명령에 알리지 않았습니다.

To, CC 또는 Bcc에 있는 받는 사람 중 한 명에게 message를 배달하지 못한 경우

To, CC 또는 Bcc에 있는 두 명 이상의 받는 사람에게 message를 배달하지 못한 경우

설명

이 메서드는 전자 메일이 전송되는 동안 차단됩니다. 지정된 시간이 경과한 후 메서드가 반환되도록 속성을 사용하여 Timeout 제한 시간 값을 지정할 수 있습니다.

이 메서드를 Host 호출하기 전에 관련 속성을 설정하거나 이 정보를 SmtpClient(String, Int32) 생성자에 전달하여 구성 파일을 통해 및 Port 속성을 설정해야 합니다.

비동기적으로 전송되는 메시지가 있는 경우 이 메서드를 호출할 수 없습니다.

SMTP 호스트에 자격 증명이 필요한 경우 이 메서드를 호출하기 전에 설정해야 합니다. 자격 증명을 지정하려면 또는 Credentials 속성을 사용합니다UseDefaultCredentials.

예외가 SmtpException 표시되면 속성을 검사 StatusCode 작업이 실패한 이유를 찾습니다. 에는 SmtpException 작업이 실패한 이유를 나타내는 내부 예외도 포함될 수 있습니다.

를 사용하여 Send 여러 받는 사람에게 전자 메일을 보낼 때 SMTP 서버는 일부 받는 사람을 유효한 것으로 수락하고 다른 Send 받는 사람을 거부하고 수락된 받는 사람에게 전자 메일을 보낸 다음 SmtpFailedRecipientsException 가 throw됩니다(또는 SmtpFailedRecipientException 한 명의 받는 사람만 거부된 경우). SmtpFailedRecipientsException 에는 거부된 받는 사람 목록이 포함됩니다.

참고

속성이 EnableSsl 로 설정true되고 SMTP 메일 서버가 EHLO 명령에 대한 응답으로 STARTTLS를 보급하지 않는 경우 또는 SendAsync 메서드를 Send 호출하면 가 SmtpExceptionthrow됩니다.

적용 대상