SES(Simple Email Service)란
- 사용자의 이메일 주소와 도메인을 사용해 이메일을 송수신하기 위한 이메일 플랫폼
1. 타입 설정
- Domain
전체 도메인으로 자격증명을 구성하면, 해당 도메인의 모든 이메일 주소를 확인하므로 해당 도메인의 이메일 주소를 개별적으로 확인할 필요가 없습니다.
- Email address
이메일의 소유 여부를 확인하기 위해 등록한 이메일 주소로 승인 메일이 발송되며, 해당 메일에서 확인해야 정상적으로 등록됩니다.
2. 옵션 설정
- Assign a default configuration set (기본 구성 집합 할당)
: 이메일에 적용할 수 있는 규칙 그룹, 이메일 헤더에 configuration set에 대한 참조를 포함하여 이메일에 적용시키는 방식으로 구성하는 경우 설정합니다.
- Use a custom MAIL FROM domain
: 메일서버에서 MAIL FROM 주소를 사용하여 반송 메시지 및 기타 오류 알림을 반환하는데, 기본적으로 Amazon SES를 통해 보내는 메세지는
amazonses.com의 하위 도메인 MAIL FROM 도메인으로 사용합니다. 만약 이를 별도의 도에메인으로 설정하는 경우 설정합니다.
발신자가 암호화 키를 사용하여 이메일 메세지에 서명하는 설정, 발송한 이메일이 해당 도메인에서 발송되었다는것을 인증하기 위한 설명이며
기본적으로 활성화 되어 있습니다.
자격증명을 구성 한 후 Amazon SES는 DNS 레코드 집합을 제공하는데, DKIM을 구성하고 도메인의 소유권을 확인하기 위해서 Amazon SES에서 제공한
레코드를 도메인의 DNS서버에 업로드 해야합니다. 만약 Amazon Route53을 이용한다면 SES는 자동으로 SES 레코드를 Route53에 업로드합니다.
테스트 환경에서는 타사의 네임서버를 이용중이므로 위와 같이 CNAME 등록을 별도로 진행하였습니다.
3. 등록 확인
DNS 설정이 완료되어 도메인이 인증되면 상태가 verfy로 변경됩니다.
4. 메일 발송 제한 증가 신청
최초 SES 서비스 등록시 해당 계정은 sandbox 환경에서 구성됩니다. sandbox 환경에서는 허용되지 않은 메일주소로는 발송이 불가능하고,
하루에 메일 발송갯수가 200개로 제한되는데, 사내 메일 서비스에 Amazon SES 서비스를 이용한다면 효과적으로 관리되지만, 웹사이트에서
사용자들에게 메일 발송등의 서비스에 활용할때는 활용도가 떨어지므로 메일 발송 제한 증가 신청을 하는것이 좋습니다.
AWS에서는 악의적인 대량의 메일 발송을 막기 위해 구체적인 사용 사례를 요구받고 있습니다.
메일링 리스트 획득 계획 / 반송 및 불만사항 처리 계획 / 수신자의 스팸처리 여부 등을 기재하여 case open 하면 1일~3일내에 승인됩니다.
5. 발송 TEST
- Formatted
: 간단한 옵션, 텍스트 형식의 이메일 발송 테스트
- Raw
: HTML이나 첨부 파일이 포함된 메세지와 같이 더 복잡한 형식으로 발송 테스트 하는 경우
+ SMTP 인터페이스 접근
SMTP 인터페이스에 액세스 하려면, Amazon SES SMTP 자격증명(사용자와 암호)를 생성해야 합니다.
Account Dashboard에서 "Create SMTP credentials"을 클릭 → 사용자 이름 지정 → 자격증명 다운로드
자격증명은 AWS 리전마다 고유하며 둘 이상의 리전에서 이메일을 발송하는 경우 각 리전에 대한 SMTP 자격증명을 생성해야합니다.
다운받은 SMTP Credentials은 다시 보거나, 다운받을 수 없으니 안전하게 보관해둬야 합니다.
SMTP 자격증명은 AWS 자격증명과 다른 개념입니다. 만일 기존 AWS 자격증명을 변환하여 SES SMTP 자격증명으로 사용하는 방법도 있으나,
이때 ID는 동일하게 이용할 수 있지만, 스크립트를 사용하여 SMTP 암호는 만들어내는 과정이 필요하므로 별도로 관리하길 권고합니다
(관련 Docs : https://docs.aws.amazon.com/ko_kr/ses/latest/DeveloperGuide/smtp-credentials.html)
이후 생성된 SES SMTP는 IAM 콘솔에서 자격증명의 목록을 확인 할 수 있습니다.
+ 프로그래밍 방식으로 SMTP 인터페이스 접근
프로그래밍 언어를 사용하여 SES SMTP 인터페이스에 액세스 하는 경우, Amazon SES SMTP 호스트 이름 및 포트번호와 사용자의 SMTP 자격증명을
입력한 후 프로그래밍 언어의 일반 SMTP 함수를 사용하여 이메일을 전송합니다.
(관련 Docs : https://docs.aws.amazon.com/ko_kr/ses/latest/dg/send-using-smtp-programmatically.html)