hilims 님의 블로그
AWS SES / SMTP 세팅 본문
개요
SES (Simple Email Service)
AWS에서 제공하는 확장 가능한 이메일 발송 서비스로, 트랜잭션 메일이나 마케팅 메일 전송에 적합합니다.
SMTP (Simple Mail Transfer Protocol)
이메일을 전송하기 위한 표준 프로토콜로, Amazon SES는 SMTP 인터페이스를 통해 외부 시스템과의 연동을 지원합니다.
1. SES 활성화
- AWS 콘솔에 로그인합니다.
- 상단 검색창에 "Amazon Simple Email Service" 또는 "SES"를 입력하고 선택합니다.
2. 도메인 주소 인증
- SES 콘솔 왼쪽 메뉴에서 Identities 클릭
- Create identity 클릭
- 도메인 또는 이메일 주소 단위로 인증 가능
- 도메인 인증: 모든 이메일 주소 사용 가능
- 이메일 인증: 특정 이메일만 인증
- 도메인 입력 후 Create identity 클릭
- Authentication → Publish DNS records 클릭
- 표시되는 TXT, CNAME, MX 3개 레코드를 도메인 DNS 설정에 추가
👉 도메인이 없다면 AWS Route 53, 가비아, 카페 24 등에서 구매 필요
- 인증 완료 시 Verified 표시
3. SMTP 설정
- SES 콘솔 → SMTP settings 클릭
- Create SMTP credentials 클릭
- 사용자 이름 입력 후 Create user
- SMTP User Name과 Password는 안전하게 보관 (예: Jasypt로 암호화)
spring:
mail:
host: email-smtp.<region>.amazonaws.com
port: 587
username: ENC(암호화된 유저명)
password: ENC(암호화된 비밀번호)
protocol: smtp
properties.mail.smtp.auth: true
properties.mail.smtp.starttls.enable: true
4. Sandbox → Production 변경
Amazon SES는 기본적으로 Sandbox 모드로 시작됩니다. 제한 사항:
- 검증된 이메일만 발송 가능
- 일일 전송량 제한
- 대량 메일 불가
→ 실제 서비스용 메일 발송 위해 Production 모드 전환 필요
- SES 메인에서 Get set up 클릭
- Request production access 클릭
- 이메일 발송 목적 선택
- Transactional: 인증, 비밀번호 재설정 등
- Marketing: 뉴스레터, 이벤트 안내 등
- 웹사이트 주소 및 기타 정보 입력
- Submit request 클릭
💡 대부분은 Transactional을 선택하며, Marketing 시엔 구독 취소 링크 필수