AWS SDK for .NET를 사용하여 이메일 전송 - Amazon Simple Email Service Classic

Amazon SES Classic의 사용 설명서입니다. 업데이트 및 새로운 기능은 여기서 사용하도록 권장하는 새로운 Amazon SES 개발자 가이드에만 소개되어 있습니다.

AWS SDK for .NET를 사용하여 이메일 전송

다음 절차에서는 Visual Studio 및 AWS SDK for .NET를 사용하여 Amazon SES를 통해 이메일을 보내는 방법을 보여줍니다.

이 솔루션은 다음 구성 요소를 사용하여 테스트되었습니다.

  • Microsoft Visual Studio Community, 버전 15.4.0

  • Microsoft .NET Framework 버전 4.6.1

  • NuGet을 사용하여 설치된 AWSSDK.Core 패키지(버전 3.3.19)

  • NuGet을 사용하여 설치된 AWSSDK.SimpleEmail 패키지(버전 3.3.6.1)

참고

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

Prerequisites

시작하기 전에 다음 작업을 수행하세요.

  • Amazon SES에서 이메일 주소 확인—Amazon SES에서 이메일을 보내기 전에 발신자 이메일 주소의 소유자인지 확인해야 합니다. 사용자 계정이 아직 Amazon SES 샌드박스 환경에 있는 경우 수신자 이메일 주소도 확인해야 합니다. 이메일 주소를 확인하는 가장 쉬운 방법은 Amazon SES 콘솔을 사용하는 것입니다. 자세한 내용은 Amazon SES에서 이메일 주소 확인 단원을 참조하세요.

  • AWS 자격 증명 받기—SDK를 사용하여 Amazon SES에 액세스하려면 AWS 액세스 키 ID와 AWS 보안 액세스 키가 필요합니다. AWS Management Console의 보안 자격 증명 페이지를 사용하여 자격 증명을 찾을 수 있습니다. 자격 증명에 대한 자세한 내용은 Amazon SES 자격 증명 유형 단원을 참조하세요.

  • Visual Studio 설치—Visual Studio는 https://www.visualstudio.com/에서 사용할 수 있습니다.

  • 공유 자격 증명 파일 생성—이 단원의 샘플 코드가 올바로 실행되기 위해서는 공유 자격 증명 파일을 생성해야 합니다. 자세한 내용은 공유 자격 증명 파일 생성 단원을 참조하세요.

Procedure

다음 절차에서는 AWS SDK for .NET을(를) 사용하여 Amazon SES를 통해 이메일을 보내는 방법을 보여줍니다.

AWS SDK for .NET를 사용하여 이메일을 전송하려면

  1. 다음 단계에 따라 새 프로젝트를 만듭니다.

    1. Visual Studio를 시작합니다.

    2. File 메뉴에서 NewProject를 차례대로 선택합니다.

    3. [New Project] 창의 왼쪽 패널에서 [Installed]를 확장한 후 [Visual C#]을 확장합니다.

    4. 오른쪽 패널에서 [Console App (.NET Framework)]을 선택합니다.

    5. 이름AmazonSESSample을 입력한 다음 확인을 선택합니다.

  2. NuGet을 사용해 다음 단계를 완료하여 솔루션에 Amazon SES 패키지를 포함시킵니다.

    1. [Solution Explorer] 창에서 프로젝트를 마우스 오른쪽 버튼으로 클릭한 다음 [Manage NuGet Packages]를 선택합니다.

    2. [NuGet: AmazonSESSample] 탭에서 [Browse]를 선택합니다.

    3. 검색 상자에 를 입력합니다AWSSDK.SimpleEmail

    4. [AWSSDK.SimpleEmail] 패키지를 선택한 다음 [Install]을 선택합니다.

    5. [Preview Changes] 창에서 [OK]를 선택합니다.

  3. [Program.cs] 탭에서 다음 코드를 붙여넣습니다.

    using Amazon; using System; using System.Collections.Generic; using Amazon.SimpleEmail; using Amazon.SimpleEmail.Model; namespace AmazonSESSample { class Program { // Replace sender@example.com with your "From" address. // This address must be verified with Amazon SES. static readonly string senderAddress = "sender@example.com"; // Replace recipient@example.com with a "To" address. If your account // is still in the sandbox, this address must be verified. static readonly string receiverAddress = "recipient@example.com"; // The configuration set to use for this email. If you do not want to use a // configuration set, comment out the following property and the // ConfigurationSetName = configSet argument below. static readonly string configSet = "ConfigSet"; // The subject line for the email. static readonly string subject = "Amazon SES test (AWS SDK for .NET)"; // The email body for recipients with non-HTML email clients. static readonly string textBody = "Amazon SES Test (.NET)\r\n" + "This email was sent through Amazon SES " + "using the AWS SDK for .NET."; // The HTML body of the email. static readonly string htmlBody = @"<html> <head></head> <body> <h1>Amazon SES Test (AWS SDK for .NET)</h1> <p>This email was sent with <a href='https://aws.amazon.com/ses/'>Amazon SES</a> using the <a href='https://aws.amazon.com/sdk-for-net/'> AWS SDK for .NET</a>.</p> </body> </html>"; static void Main(string[] args) { // Replace USWest2 with the AWS Region you're using for Amazon SES. // Acceptable values are EUWest1, USEast1, and USWest2. using (var client = new AmazonSimpleEmailServiceClient(RegionEndpoint.USWest2)) { var sendRequest = new SendEmailRequest { Source = senderAddress, Destination = new Destination { ToAddresses = new List<string> { receiverAddress } }, Message = new Message { Subject = new Content(subject), Body = new Body { Html = new Content { Charset = "UTF-8", Data = htmlBody }, Text = new Content { Charset = "UTF-8", Data = textBody } } }, // If you are not using a configuration set, comment // or remove the following line ConfigurationSetName = configSet }; try { Console.WriteLine("Sending email using Amazon SES..."); var response = client.SendEmail(sendRequest); Console.WriteLine("The email was sent successfully."); } catch (Exception ex) { Console.WriteLine("The email was not sent."); Console.WriteLine("Error message: " + ex.Message); } } Console.Write("Press any key to continue..."); Console.ReadKey(); } } }
  4. 코드 편집기에서 다음을 수행합니다.

    • sender@example.com을 "From:"의 이메일 주소로 바꿉니다. 이 주소가 확인되어야 합니다. 자세한 내용은 Amazon SES에서 자격 증명 확인 단원을 참조하세요.

    • recipient@example.com을 "To:"의 주소로 바꿉니다. 계정이 아직 샌드박스 환경에 있을 경우 이 주소도 확인해야 합니다.

    • ConfigSet을 이 이메일을 전송할 때 사용하는 구성 세트의 이름으로 바꿉니다.

    • USWest2를 Amazon SES를 사용하여 이메일을 전송하는 데 사용하는 AWS 리전 엔드포인트의 이름으로 바꿉니다. Amazon SES를 사용할 수 있는 리전 목록은 AWS 일반 참조Amazon Simple Email Service(Amazon SES)를 참조하세요.

    완료되면 Program.cs를 저장합니다.

  5. 다음 단계를 완료하여 애플리케이션을 빌드 및 실행합니다.

    1. [Build] 메뉴에서 [Build Solution]을 선택합니다.

    2. [Debug] 메뉴에서 [Start Debugging]을 선택합니다. 콘솔 창이 나타납니다.

  6. 콘솔 출력을 확인합니다. 이메일이 성공적으로 전송되었으면 콘솔에 "The email was sent successfully."가 표시됩니다.

  7. 이메일이 성공적으로 전송되었으면 수신자 주소의 이메일 클라이언트에 로그인합니다. 보낸 메시지가 도착해 있을 것입니다.