AWS SES(Simple Email Service) 로 Email 전송하기
ghost 로 blog 를 하나 생성했는데 고스트의 특징을 살려서 구독 기능을 추가하고 싶어졌습니다.
그래서 구독자들에게 Email 로 새로운 컨텐츠를 보내주기 위해서 Batch 로 이메일을 보내는 기능을 검토해 보았습니다.
먼저 검토한 Mailgun 은 고스트에서 기본 연동 기능을 제공하므로 연동이 쉽지만 Free tier이 없어져서 신용 카드를 등록해야만 사용이 가능합니다.
그래서 저렴한 요금제를 제공하고 있는 AWS SES 를 사용해서 구독자들에게 이메일을 전송하기로 결정했습니다.
SES 설정
먼저 SES 에서 이메일을 보낼 수 있으려면 메일 전송용 도메인을 보유하고 있어야 합니다. 저는 lesstif.com 도메인이 있기 때문에 별도로 구입하지는 않았습니다.
도메인이 준비되었다면 AWS Console 에 로그인한 후에 SES 서비스 콘솔로 들어갑니다.
그리고 좌측에서 Domains 를 클릭하고 상단의 Verify a New Domain 을 클릭합니다.
도메인 등록 창에서 이메일을 전송할 도메인을 추가(1)하고 DKIM 생성도 체크(2)한 후에 Verify 를 클릭합니다.
그러면 도메인 소유 여부를 검증하기 위해서 DNS 레코드에 특정 값을 설정하라는 안내 화면이 표시됩니다.
제일 먼저 TXT 레코드(1) 에 좌측의 Name 에 있는 항목을 넣고 추가하고 Value 에는 우측의 값을 넣습니다.
2번째로 MX 레코드(2) 를 설정합니다.
이 부분은 DNS 서비스 제공자마다 상이하므로 해당 사업자의 매뉴얼을 참고하면 되며 hosting.kr 의 경우 다음과 같은 화면에서 추가해 주면 됩니다.
이제 DKIM 을 설정할 단계인데 이는 DNS 사업자의 화면에 들어가서 CNAME 레코드 부분에 설정하면 됩니다.
정상적으로 설정되었다면 일정 시간후에 AWS 에서 검증하고 화면에 완료 여부가 표시됩니다.
간혹 DKIM 이 검증되지 않는 경우가 있는데 그런 경우 value 필드의 마지막에 . 을 하나 추가하면 되며 자세한 내용은 AWS SES 에서 DKIM verification Status 가 Pending verification 으로 나올 때 을 참고하세요.
다시 도메인 목록에 들어가면 등록한 도메인에 대해 상태를 한 눈에 파악할 수 있으며 우측의 Enabled for 가 Yes 면 기본적인 발송 설정은 끝났습니다.
발송용 이메일 등록
좌측에서 *Email Addresses" 를 클릭하면 등록한 발송용 이메일 주소를 확인할 수 있습니다.
아직 없으므로 상단의 "Verify a New Email Address" 를 클릭한 후에 이메일 주소를 넣고 Verify 를 클릭하면 해당 주소로 확인용 이메일이 전송됩니다.
이메일에서 AWS 에서 보낸 이메일을 열고 본문에서 확인을 클릭하면 발송용 이메일 등록이 완료되며 목록에서 status 가 verified 로 변경됩니다.
SES sandbox 에서 나가기
SES 는 기본적으로 샌드박스 환경으로 구성되며 확인된 이메일 주소와 도메인으로만 메일 전송이 가능하며 그 이외의 주소와 도메인은 SES 메일박스 시뮬레이터를 통해서 시뮬레이션만 가능합니다.
그리고 24시간동안 최대 200개의 메시지와 초당 1개의 메시지 전송만 가능합니다.
그래서 AWS 측에 sandbox 에서 나가도록 요청해야 하며 자세한 절차는 AWS SES sandbox 환경에서 나가기를 참고하세요.
같이 보기
- AWS SES 에서 DKIM verification Status 가 Pending verification 으로 나올 때
- nslookup 명령어 사용법 및 예제 정리
- 이메일 서버 등록제 (SPF; Sender Policy Framework) 로 email 보안 강화하기
- DKim 으로 email 인증 및 보안하기