SES와 Lambda를 사용하여 메일 송신 해보기

SES와 Lambda를 사용하여 프로그래밍 코드로 메일을 송신하는 방법에 대해 알아보자!
2022.03.03

소개

안녕하세요! 클래스메소드 금상원 입니다. 이번 블로그에서는 SES와 Lambda를 사용하여 프로그래밍 코드로 메일을 송신하는 방법을 알아보도록 하겠습니다.

목표

SES와 Lambda를 사용하여 메세지를 전송

작업 순서

  1. Amazon SES 자격증명
  2. IAM 역활 생성
  3. Lambda 생성 및 테스트

메일 전송 해보기

준비

Amazon SES 자격증명이 인증된 메일 주소

(아래의 블로그를 참고 해주세요)

IAM 정책

IAM 페이지의 왼쪽 메뉴에서 정책 을 클릭하고 정책 생성 버튼을 클릭합니다.

JSON 탭을 클릭한 후 아래의 코드를 입력합니다.

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

「정책에 대한 참고 자료」

이름 과 정책을 확인합니다.

아래에서 태그가 있다면 확인 하고 정책 생성 버튼을 클릭하여 정책을 생성합니다.

IAM 역활

IAM 페이지의 왼쪽 메뉴에서 역활 을 클릭하고 역활 만들기 버튼을 클릭합니다.

AWS 서비스 를 선택하고 사용사례에서 Lambda 를 선택합니다. 그리고 다음 버튼을 클릭합니다.

권한 정책에서 위에서 만든 정책을 검색 하고 선택한 후 다음 버튼을 클릭합니다.

역활 이름 을 입력합니다.

정책 이름 을 확인하고 역활 생성 버튼을 클릭하여 역활을 만들어 줍니다.

람다를 이용하여 메일 전송

람다 페이지에 들어가셔서 함수 생성 버튼을 클릭합니다.

새로 작성 을 선택하고 함수 이름 을 입력하고, 런 타임을 선택하여 어떤 언어를 사용할 것인지 선택합니다.

아래의 권한에서는 위에서 만든 IAM 역활을 선택합니다. 그리고 함수 생성 버튼을 클릭합니다.

함수를 생성하시면 이렇게 코드를 입력할 수 있는 에디터가 나옵니다. 에디터에 아래의 코드를 입력해 주세요.
그런 다음 Deploy 을 클릭하여 코드를 저장하고 Test 을 클릭하여 코드를 실행 시켜 메일을 전송 합니다.

var aws = require("aws-sdk");
var ses = new aws.SES({ region: "ap-northeast-1" }); // Amazon SES 자격증명이 인증된 메일 주소의 리전 코드
exports.handler = async function (event) {
  var params = {
    Destination: {
      ToAddresses: ["test@naver.com", "test2@gmail.com"], // 받는 사람 메일 주소
    },
    Message: {
      Body: {
        Text: { Data: "람다를 이용한 SES메일 전송 테스트" }, // 내용
      },

      Subject: { Data: "메일을 전송 받으셨다면 성공입니다!!" }, // 제목
    },
    Source: "test3@gmail.com", // 보내는 사람 메일 주소
  };
  return ses.sendEmail(params).promise()
};

아래의 내용을 참고하여 여러분들께 맞는 내용으로 수정해서 사용해 주세요.

  • region: Amazon SES 자격증명이 인증된 메일이 있는 리전
  • ToAddresses:[] 수신자 메일 주소 입력
  • Body:{} 메세지 본문
  • Subject:{} 메세지 제목
  • Source: 송신자 메일

마무리

이번 블로그에서는 AWS SES의 sendEmail API를 이용하여 메일을 전송 하는 방법에 대해 알아보았습니다.
Lambda를 사용 하는 방법도 있지만 직접 개발중인 코드에도 사용 할 수 있습니다.

이 방법에 대해서는 아래의 내용을 참고 해주세요.
(일본어 자료인 경우 Chrome으로 페이지를 열고 우클릭 후 한국어로 번역을 한 후 참고 해주세요.)

또한 SMTP를 사용하여 메일을 전송 하는 방법도 있으니 관심이 있으신 분들은 아래의 내용을 참고해 주세요

참고 내용

본 블로그 게시글을 보시고 문의 사항이 있으신 분들은 클래스메소드코리아 (info@classmethod.kr)로 연락 주시면 빠른 시일 내 담당자가 회신 드릴 수 있도록 하겠습니다 !