NodeJS 환경에서 고객 회원가입 메일 전송 기능을 테스트하던중 에러가 발생하였습니다.
SMTP 메일서버는 AWS 의 SES(Send Email Service) 를 사용하고 있었는데요, 실제 로그를 찍어보니 아래와 같은 메세지가 발생하였습니다.
`Message failed: 554 Message rejected: Email address is not verified. The following identities failed the check in region AP-NORTHEAST-2`
에러 발생 원인
에러발생 원인은 현재 SES 메일 계정이 Sandbox용으로 되어 있기 때문에 발생한것이었습니다.
공식문서에서 확인해보면 `메일박스 시뮬레이터(즉 sandbox)` 에서 제공하는 수신자를 제외한 메일에서는 554 에러가 발생할수 있다고 합니다.
Sandbox 환경일때는 기본적으로 미리 지정한 도메인으로만 메일 전송이 가능하고, 일일 전송 할당량도 24시간당 200회로 제한됩니다.
Sandbox 환경에서 Production 환경으로 바꾸기 위해서 위에 표시된 `프로덕션 엑세스 요청` 을 통해 프로덕션 환경으로 전환을 해주어야 합니다.
SES Production 환경으로 변환하기
SES Production 환경 버튼을 누른 이후에 Production 환경 전환에 대한 요청 Case 를 작성해야 하는데요, 아래와 같은 질문 양식을 작성해야 합니다.
가볍게 생각했다가 시간이 소요될수 있으니 신경써서 작성하는것이 좋습니다.
마케팅(Marketing) 이메일은 광고, 프로모션의 목적으로 발송되는 이메일을 말합니다. 예를들어 할인정보, 이벤트 알림, 뉴스레터 등의 목적을 의미합니다. 트랜젝션(Transactional) 이메일은 사용자의 특정 행동이나 이벤트에 관련된 이메일을 의미합니다. 예를 들어 비밀번호 재설정 확인, 주문 상태 업데이트, 계정 활동 알림 등을 의미합니다.
Use case description에는 몇가지 정해진 양식을 채워주면 되는데요, 저의 경우에는 다음과 같이 작성하였습니다.
Production access request
Service: SES Sending Limits
Region: ap-northeast-2
Please enable production access
------------
Use case description: 메일 발송 목록을 어떻게 만들거나 획득할 계획입니까?
=> 기존 고객 베이스나 가입자 목록 등을 활용하여 이메일 발송 목록을 구성합니다.
반송과 수신 거부를 어떻게 처리할 계획입니까?
=> Amazon SES에서 반송 메일을 SNS를 통해 알림을 받을 수 있고, 수신 거부는 feedback loop을 활용합니다.
수신자가 이메일 수신을 옵트아웃하려면 어떻게 해야 합니까?
=> 이메일 본문에 옵트아웃 링크를 추가하여 수신자가 쉽게 이메일 수신 거부를 선택할 수 있게 합니다.
Mail Type: TRANSACTIONAL
Website URL: [홈페이지 주소]
답변이 처리되는데는 약 24시간정도 소요됩니다.
실제 처리 이후 메일이 올바르게 전송되는것을 확인할 수 있습니다.
마무리
오늘을 SES 에서 발생하는 554 에러의 이유와, SES SMPT 서버를 Sandbox 환경에서 Production 환경으로 변환하는 방법에 대해 알아보았습니다.
다음에도 유용한 정보로 포스팅하도록 하겠습니다.
감사합니다.
참고)
'서버 인프라, 백엔드 > 아마존 (AWS)' 카테고리의 다른 글
AWS : EC2 User Data를 이용하여 인스턴스 재시작시 원하는 Script 실행시키기 (0) | 2023.10.27 |
---|---|
AWS : Cloudfront + S3로 mpeg-dash 영상 업로드 후 테스트해보기 (with FFmpeg) (0) | 2023.10.18 |
AWS : 정적 사이트 배포 하는 4가지 방법 (feat: cloudfront / nginx /amplify / netlify) (1) | 2023.04.25 |
AWS : EBS란? EBS 요금 분석 (0) | 2023.03.03 |
AWS : 계정들간의 Route53 도메인 공유하기 (0) | 2022.08.10 |