# AWS SES 완벽 설정 완료 - anvil.it.com ## 🎉 설정 완료 상태 **Mail-Tester 점수: 10/10 (만점)** ✅ 설정 완료일: 2025-09-06 도메인: anvil.it.com 리전: ap-northeast-2 (Seoul) ## 📧 SMTP 설정 정보 ```yaml SMTP_HOST: email-smtp.ap-northeast-2.amazonaws.com SMTP_PORT: 587 SMTP_TLS: true SMTP_USERNAME: [Vault: secret/aws/ses/smtp -> smtp_username] SMTP_PASSWORD: [Vault: secret/aws/ses/smtp -> smtp_password] SMTP_FROM: noreply@anvil.it.com ``` ### Vault에서 인증 정보 조회 ```bash # 전체 설정 조회 vault kv get secret/aws/ses/smtp # SMTP Password만 조회 vault kv get -field=smtp_password secret/aws/ses/smtp ``` ## 🔐 DNS 레코드 설정 ### 1. SPF 레코드 (TXT) ``` anvil.it.com TXT "v=spf1 include:_spf.mx.cloudflare.net include:amazonses.com ~all" ``` ### 2. DKIM 레코드 (CNAME × 3) ``` dgcehnldehfmfgpvrrbc6drwasiibhnp._domainkey.anvil.it.com CNAME dgcehnldehfmfgpvrrbc6drwasiibhnp.dkim.amazonses.com spopdscdt2sxngqzl5ir66k3ed6og7ut._domainkey.anvil.it.com CNAME spopdscdt2sxngqzl5ir66k3ed6og7ut.dkim.amazonses.com 55l5wnmktvacgyfpt6sovcgb2rqexrpy._domainkey.anvil.it.com CNAME 55l5wnmktvacgyfpt6sovcgb2rqexrpy.dkim.amazonses.com ``` ### 3. DMARC 레코드 (TXT) ``` _dmarc.anvil.it.com TXT "v=DMARC1;p=quarantine;pct=25;rua=mailto:908761dcafa547a981e283a21768d69f@dmarc-reports.cloudflare.net,mailto:dmarc-reports@anvil.it.com;ruf=mailto:dmarc-failures@anvil.it.com" ``` ### 4. MAIL FROM 도메인 설정 ``` # MX 레코드 bounce.anvil.it.com MX 10 feedback-smtp.ap-northeast-2.amazonses.com # SPF 레코드 bounce.anvil.it.com TXT "v=spf1 include:amazonses.com ~all" ``` ### 5. 도메인 검증 (TXT) ``` _amazonses.anvil.it.com TXT "0cuw9v32N+aeFiNlTh2Poxglgzf3BlmFRjVOjeLEdy4=" ``` ## ✅ AWS SES 상태 ### 도메인 검증 - **Status**: Success ✅ - **DKIM**: Success & Enabled ✅ - **MAIL FROM**: bounce.anvil.it.com (Success) ✅ ### 발송 한도 - **일일 최대**: 50,000통 - **초당 최대**: 14통 - **현재 환경**: Production Ready ## 🎯 컴플라이언스 달성 상태 | 요구사항 | 상태 | 점수 | |---------|------|------| | SPF Authentication | ✅ Compliant | Pass | | DKIM Authentication | ✅ Compliant | Pass | | DMARC Authentication | ✅ Quarantine (25%) | Pass | | From Header Alignment | ✅ Compliant | Pass | | DNS Records | ✅ Compliant | Pass | | Encryption | ✅ TLS Required | Pass | | One-click Unsubscribe | ✅ RFC 8058 | Pass | | Honor Unsubscribe | ✅ Compliant | Pass | **최종 점수: 8/8 (완전 준수)** 🏆 ## 📱 애플리케이션 통합 예시 ### Node.js (nodemailer) ```javascript const nodemailer = require('nodemailer'); const transporter = nodemailer.createTransporter({ host: 'email-smtp.ap-northeast-2.amazonaws.com', port: 587, secure: false, auth: { user: process.env.SMTP_USERNAME, // SMTP Username pass: process.env.SMTP_PASSWORD // SMTP Password (변환된 값) } }); // RFC 8058 호환 메일 발송 const mailOptions = { from: 'noreply@anvil.it.com', to: 'user@example.com', subject: 'Welcome!', html: '