Lambda 및 Amazon SES를 사용하여 이메일을 전송하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2021년 9월 15일

Amazon Simple Email Service(Amazon SES)를 통해 이메일을 전송하는 데 AWS Lambda를 사용하고 싶습니다. 그렇게 구성하려면 어떻게 해야 합니까?

간략한 설명

Amazon SES를 사용하여 Lambda 함수에서 이메일을 보내려면 다음을 수행하세요.

1.    Lambda에 대한 AWS Identity and Access Management(IAM) 정책 및 실행 역할을 생성하여 API 호출을 실행합니다.

2.    Amazon SES 자격 증명(도메인 또는 이메일 주소)을 확인합니다.

3.    Amazon SES를 통해 이메일을 전송하기 위한 로직을 포함하는 Lambda 함수를 생성하거나 업데이트합니다.

참고: 이메일에 PDF 첨부 파일을 포함하려면 Amazon SES SendDrawEmail API 작업을 사용해야 합니다. 자세한 내용은 Amazon SES API를 사용하여 원시 이메일 보내기를 참조하세요.

해결 방법

참고: 이 문서에서는 Node.js Lambda 함수 코드 예제가 원래 형태 그대로 제공됩니다. 예제를 사용 사례에 적용하거나 원하는 프로그래밍 언어를 사용하여 자체적으로 설계할 수 있습니다.

Lambda에 대한 IAM 정책 및 실행 역할을 생성하여 API 호출을 실행

1.    JSON 정책 편집기를 사용하여 IAM 정책을 생성합니다. 정책을 생성할 때 다음의 JSON 정책 문서를 정책 편집기에 붙여 넣습니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ses:SendEmail",
                "ses:SendRawEmail"
            ],
            "Resource": "*"
        }
    ]
}

참고: 이 정책에 대한 액세스를 제한하는 방법에 대한 자세한 내용 및 예제는 Amazon SES에 대한 IAM 정책 예제를 참조하세요.

2.    IAM 역할에 IAM 정책을 연결합니다. 지침으로 자격 증명에 대한 권한 정책으로 관리형 정책 사용하기(콘솔) 섹션을 IAM 자격 증명 권한 추가(콘솔)에서 참조하세요.

참고: 다음 단계에서 이 IAM 역할을 Lambda 함수에 할당합니다.

Amazon SES 자격 증명(도메인 또는 이메일 주소) 확인

도메인을 확인하려면 Amazon SES에서 도메인 확인하기 단원을 참조하세요.

이메일 주소를 확인하려면 Amazon SES에서 이메일 주소 확인하기 단원을 참조하세요.

Amazon SES를 통해 이메일을 전송하기 위한 로직을 포함하는 Lambda 함수를 생성하거나 업데이트

1.    아직 생성하지 않았다면 Lambda 함수를 생성합니다.

참고: Lambda 콘솔을 사용하거나 배포 패키지를 구축 및 업로드하여 함수를 생성할 수 있습니다.

2.    Lambda 콘솔의 왼쪽 탐색 창에서 함수를 선택합니다.

3.    함수 이름을 선택합니다.

4.    구성 탭의 권한 창에서 함수의 실행 역할을 확인합니다. 앞에서 생성한 Amazon SES 권한을 가진 IAM 역할이 나열되어 있는지 확인합니다. 올바른 IAM 역할이 나열되어 있지 않으면 함수에 올바른 역할을 할당합니다.

5.    편집기 창함수 코드에 다음 예제 함수 코드를 붙여넣습니다.

중요: us-west-2를 확인된 Amazon SES 자격 증명의 AWS 리전으로 바꿉니다. "RecipientEmailAddress", ...을 이메일을 전송할 이메일 주소로 바꿉니다. SourceEmailAddress를 Amazon SES 확인 발신자 이메일 주소 또는 Amazon SES 확인 도메인의 이메일 주소로 바꿉니다. 선택적으로 메시지 본문("Test") 및 제목("Test Email")을 편집합니다.

// Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

var aws = require("aws-sdk");
var ses = new aws.SES({ region: "us-west-2" });
exports.handler = async function (event) {
  var params = {
    Destination: {
      ToAddresses: ["RecipientEmailAddress", ...],
    },
    Message: {
      Body: {
        Text: { Data: "Test" },
      },

      Subject: { Data: "Test Email" },
    },
    Source: "SourceEmailAddress",
  };
 
  return ses.sendEmail(params).promise()
};

sendEmail API 사용에 대한 자세한 내용은 AWS SDK for JavaScript 설명서를 참조하세요.

5.    배포(Deploy)를 선택합니다.

(선택 사항) 테스트 이메일 보내기

1.    Lambda 콘솔에서 함수의 테스트 이벤트를 구성합니다.

참고: 테스트 페이로드가 필요하지만 이 코드 예제에서는 사용하지 않습니다.

2.    [테스트]를 선택합니다. Lambda는 Amazon SES를 사용하여 수신자에게 테스트 이메일을 전송합니다.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?