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

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

다음 절차에서는 Eclipse IDE for Java EE DevelopersAWS Toolkit for Eclipse를 사용하여 AWS SDK 프로젝트를 생성하고 Java 코드를 수정하여 Amazon SES를 통해 이메일을 전송하는 방법을 보여줍니다.

중요

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

사전 조건

시작하기 전에 다음 작업을 수행하십시오.

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

  • AWS 자격 증명 획득—SDK를 사용하여 Amazon SES에 액세스하려면 AWS 액세스 키 ID와 AWS 보안 액세스 키가 필요합니다. AWS Management 콘솔의 보안 자격 증명 페이지를 사용하여 자격 증명을 확인할 수 있습니다. 자격 증명에 대한 자세한 내용은 Amazon SES에서 자격 증명 사용을 참조하십시오.

  • Eclipse 설치—Eclipse는 https://www.eclipse.org/downloads에서 다운로드할 수 있습니다. 이 자습서의 코드는 Eclipse Neon.3(버전 4.6.3)에서 Java Runtime Environment 버전 1.8을 실행하여 테스트하였습니다.

  • AWS Toolkit for Eclipse 설치—Eclipse 설치 시 AWS Toolkit for Eclipse 추가 지침은 https://aws.amazon.com/eclipse에서 확인할 수 있습니다. 이 자습서의 코드는 AWS Toolkit for Eclipse 버전 2.3.1을 사용하여 테스트하였습니다.

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

프로시저

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

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

  1. 다음 단계를 수행하여 Eclipse에서 AWS Java 프로젝트를 생성합니다.

    1. Eclipse를 시작합니다.

    2. [File] 메뉴에서 [New]와 [Other]를 차례대로 선택합니다. [New] 창에서 [AWS] 폴더를 확장하여 [AWS Java Project]를 선택합니다.

    3. [New AWS Java Project] 대화 상자에서 다음과 같이 실행합니다.

      1. [Project name]에 프로젝트 이름을 입력합니다.

      2. AWS SDK for Java Samples(샘플)에서 Amazon Simple Email Service JavaMail Sample(JavaMail 샘플)을 선택합니다.

      3. [마침]을 클릭합니다.

  2. Eclipse에서 [Package Explorer] 창에서 프로젝트를 확장합니다.

  3. 프로젝트 아래에서 src/main/java 폴더와 com.amazon.aws.samples 폴더를 차례대로 확장한 후 AmazonSESSample.java를 두 번 클릭합니다.

  4. AmazonSESSample.java의 전체 내용을 다음 코드로 바꿉니다.

    package com.amazonaws.samples; import java.io.IOException; import com.amazonaws.regions.Regions; import com.amazonaws.services.simpleemail.AmazonSimpleEmailService; import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClientBuilder; import com.amazonaws.services.simpleemail.model.Body; import com.amazonaws.services.simpleemail.model.Content; import com.amazonaws.services.simpleemail.model.Destination; import com.amazonaws.services.simpleemail.model.Message; import com.amazonaws.services.simpleemail.model.SendEmailRequest; public class AmazonSESSample { // Replace sender@example.com with your "From" address. // This address must be verified with Amazon SES. static final String FROM = "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 final String TO = "recipient@example.com"; // The configuration set to use for this email. If you do not want to use a // configuration set, comment the following variable and the // .withConfigurationSetName(CONFIGSET); argument below. static final String CONFIGSET = "ConfigSet"; // The subject line for the email. static final String SUBJECT = "Amazon SES test (AWS SDK for Java)"; // The HTML body for the email. static final String HTMLBODY = "<h1>Amazon SES test (AWS SDK for Java)</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-java/'>" + "AWS SDK for Java</a>"; // The email body for recipients with non-HTML email clients. static final String TEXTBODY = "This email was sent through Amazon SES " + "using the AWS SDK for Java."; public static void main(String[] args) throws IOException { try { AmazonSimpleEmailService client = AmazonSimpleEmailServiceClientBuilder.standard() // Replace US_WEST_2 with the AWS Region you're using for // Amazon SES. .withRegion(Regions.US_WEST_2).build(); SendEmailRequest request = new SendEmailRequest() .withDestination( new Destination().withToAddresses(TO)) .withMessage(new Message() .withBody(new Body() .withHtml(new Content() .withCharset("UTF-8").withData(HTMLBODY)) .withText(new Content() .withCharset("UTF-8").withData(TEXTBODY))) .withSubject(new Content() .withCharset("UTF-8").withData(SUBJECT))) .withSource(FROM) // Comment or remove the next line if you are not using a // configuration set .withConfigurationSetName(CONFIGSET); client.sendEmail(request); System.out.println("Email sent!"); } catch (Exception ex) { System.out.println("The email was not sent. Error message: " + ex.getMessage()); } } }
  5. AmazonSESSample.java에서 다음 값을 사용자의 값으로 대체합니다.

    중요

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

    • SENDER@EXAMPLE.COM—"발신" 이메일 주소로 대체합니다. 이 프로그램을 실행하기 전에 이 주소를 확인해야 합니다. 자세한 내용은 Amazon SES의 자격 증명 확인를 참조하십시오.

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

    • (선택 사항) us-west-2—미국 서부(오레곤) 이외의 리전에서 Amazon SES를 사용하려면 사용할 리전으로 바꿉니다. Amazon SES를 사용할 수 있는 리전 목록은 AWS General ReferenceAmazon Simple Email Service(Amazon SES) 단원을 참조하십시오.

  6. Save AmazonSESSample.java.

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

    참고

    이 옵션이 비활성화되어 있는 경우 자동 빌드가 활성화될 수도 있습니다. 그렇다면 이 단계를 건너뜁니다.

  8. 프로그램을 시작하고 이메일을 전송하려면 [Run]을 선택하고 다시 [Run]을 선택합니다.

  9. Eclipse의 콘솔 창에서 출력을 확인합니다. 이메일이 성공적으로 전송되었으면 콘솔에 "Email sent!"가 표시됩니다. 그렇지 않으면 오류 메시지가 표시됩니다.

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