SMTP와 C#를 사용하여 이메일 전송 - Amazon Simple Email Service

이 가이드에서는 Amazon SES용 클래식 콘솔 (V1) 을 반영합니다. Amazon SES 용 새 콘솔 (V2) 에 대한 자세한 내용은Amazon Simple Email Service 개발자 가이드를 선택합니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

SMTP와 C#를 사용하여 이메일 전송

다음 절차는 를 사용하는 방법을 보여 줍니다.Microsoft Visual StudioAmazon SES를 통해 이메일을 전송하는 C# 콘솔 애플리케이션을 생성합니다. 이 단원의 절차는 비주얼 스튜디오 2017에 적용되지만 C# 콘솔 애플리케이션을 생성하는 프로세스는 전체 마이크로소프트 비주얼 스튜디오 에디션과 비슷합니다.

다음 절차를 수행하기 전에 Amazon SES 를 시작하기 전에SMTP를 사용하여 Amazon SES 를 통해 이메일 전송에서 설명하는 설정 작업을 완료합니다.

중요

이 시작 자습서에서는 수신 여부를 확인할 수 있도록 자신에게 이메일을 발송합니다. 추가적인 실험 또는 로드 테스트는 Amazon SES 메일박스 시뮬레이터를 사용하십시오. 사서함 시뮬레이터로 전송되는 이메일은 전송 할당량이나 반송 메일 및 수신 거부 발생률에 포함되지 않습니다. 자세한 내용은 Amazon SES 에서 이메일 전송 테스트 단원을 참조하세요.

C #를 사용하여 Amazon SES SMTP 인터페이스를 통해 이메일을 전송하려면

  1. 다음 단계를 수행하여 Visual Studio에서 콘솔 프로젝트를 만듭니다.

    1. Microsoft Visual Studio를 엽니다.

    2. [File] 메뉴에서 [New]와 [Project]를 차례대로 선택합니다.

    3. [New Project] 창에서 왼쪽 창에 있는 [Installed], [Templates], [Visual C#]를 차례대로 확장합니다.

    4. [Visual C#] 아래에서 [Windows Classic Desktop]을 선택합니다.

    5. 창의 상단에 있는 메뉴에서 다음 그림과 같이 [.NET Framework 4.5]을 선택합니다.

      
                            새 프로젝트 창의 .NET Framework 선택 메뉴입니다.
      참고

      필요하다면 이후 버전의 .NET Framework를 선택할 수도 있습니다.

    6. [Console App (.NET Framework)]을 선택합니다.

    7. [Name(이름)] 필드에 AmazonSESSample을 입력합니다.

    8. 확인을 선택합니다.

  2. Visual Studio 프로젝트에서 Program.cs의 전체 내용을 다음 코드로 바꿉니다.

    using System; using System.Net; using System.Net.Mail; namespace AmazonSESSample { class Program { static void Main(string[] args) { // Replace sender@example.com with your "From" address. // This address must be verified with Amazon SES. String FROM = "sender@example.com"; String FROMNAME = "Sender Name"; // Replace recipient@example.com with a "To" address. If your account // is still in the sandbox, this address must be verified. String TO = "recipient@amazon.com"; // Replace smtp_username with your Amazon SES SMTP user name. String SMTP_USERNAME = "smtp_username"; // Replace smtp_password with your Amazon SES SMTP password. String SMTP_PASSWORD = "smtp_password"; // (Optional) the name of a configuration set to use for this message. // If you comment out this line, you also need to remove or comment out // the "X-SES-CONFIGURATION-SET" header below. String CONFIGSET = "ConfigSet"; // If you're using Amazon SES in a region other than US West (Oregon), // replace email-smtp.us-west-2.amazonaws.com with the Amazon SES SMTP // endpoint in the appropriate AWS Region. String HOST = "email-smtp.us-west-2.amazonaws.com"; // The port you will connect to on the Amazon SES SMTP endpoint. We // are choosing port 587 because we will use STARTTLS to encrypt // the connection. int PORT = 587; // The subject line of the email String SUBJECT = "Amazon SES test (SMTP interface accessed using C#)"; // The body of the email String BODY = "<h1>Amazon SES Test</h1>" + "<p>This email was sent through the " + "<a href='https://aws.amazon.com/ses'>Amazon SES</a> SMTP interface " + "using the .NET System.Net.Mail library.</p>"; // Create and build a new MailMessage object MailMessage message = new MailMessage(); message.IsBodyHtml = true; message.From = new MailAddress(FROM, FROMNAME); message.To.Add(new MailAddress(TO)); message.Subject = SUBJECT; message.Body = BODY; // Comment or delete the next line if you are not using a configuration set message.Headers.Add("X-SES-CONFIGURATION-SET", CONFIGSET); using (var client = new System.Net.Mail.SmtpClient(HOST, PORT)) { // Pass SMTP credentials client.Credentials = new NetworkCredential(SMTP_USERNAME, SMTP_PASSWORD); // Enable SSL encryption client.EnableSsl = true; // Try to send the message. Show status in console. try { Console.WriteLine("Attempting to send email..."); client.Send(message); Console.WriteLine("Email sent!"); } catch (Exception ex) { Console.WriteLine("The email was not sent."); Console.WriteLine("Error message: " + ex.Message); } } } } }
  3. Program.cs에서 다음 이메일 주소를 사용자의 값으로 바꿉니다.

    중요

    이메일 주소는 대/소문자를 구분합니다. 주소는 사용자가 확인한 것과 정확하게 동일해야 합니다.

    • SENDER@EXAMPLE.COM- “발신” 이메일 주소로 대체합니다. 이 프로그램을 실행하기 전에 이 주소를 확인해야 합니다. 자세한 내용은 Amazon SES 에서 자격 증명 확인 단원을 참조하세요.

    • RECIPIENT@EXAMPLE.COM- “수신” 이메일 주소로 대체합니다. 계정이 아직 샌드박스에 있는 경우, 이 주소를 확인해야 계정을 사용할 수 있습니다. 자세한 내용은 Amazon SES 샌드박스 환경에서 나가기 단원을 참조하세요.

  4. Program.cs에서 다음 SMTP 자격 증명을 Amazon SES SMTP 자격 증명 받기에서 얻은 값으로 바꿉니다.

    중요

    SMTP 자격 증명은 AWS 자격 증명과 다릅니다. 자격 증명에 대한 자세한 내용은 Amazon SES 자격 증명 유형을 참조하십시오.

    • YOUR_SMTP_USERNAME—SMTP 사용자 이름으로 바꿉니다. SMTP 사용자 이름 자격 증명은 식별 가능한 이름이 아니라 문자/숫자를 포함하는 20자 길이 문자열입니다.

    • YOUR_SMTP_PASSWORD—SMTP 암호로 바꿉니다.

  5. (선택 사항) 미국 서부 (오레곤) 이외의 리전에서 Amazon SES SMTP 엔드포인트를 사용하려면 변수HOST를 사용하려는 엔드포인트로 설정합니다. Amazon SES 를 사용할 수 있는 AWS 리전에 대한 SMTP 엔드포인트 URL 목록은 단원을 참조하십시오.Amazon Simple Email Service(Amazon SES)AWS 일반 참조를 선택합니다.

  6. (선택 사항) 이 이메일을 전송할 때 구성 세트를 사용하려면 CONFIGSET 변수 값을 구성 세트의 이름으로 바꿉니다. 구성 세트에 대한 자세한 내용은 Amazon SES 구성 세트 사용 단원을 참조하십시오.

  7. Save Program.cs.

  8. 프로젝트를 빌드하려면 [Build]를 선택한 후 [Build Solution]을 선택합니다.

  9. 프로그램을 실행하려면 [Debug]를 선택한 후 [Start Debugging]을 선택합니다.

  10. 출력 결과를 검토합니다. 이메일이 성공적으로 전송되었으면 콘솔에 "Email sent!"가 표시됩니다. 그렇지 않으면 오류 메시지가 표시됩니다.

  11. 수신자 주소의 이메일 클라이언트에 로그인합니다. 보낸 메시지가 도착해 있을 것입니다.