안녕하세요,
이번 글에서는 Amazon SES(Simple Email Service)를 활용하여 이메일 템플릿을 생성하고, 이를 이용해 자동화된 이메일을 발송하는 방법을 자세히 살펴보겠습니다.
현재 SES 콘솔에서는 템플릿을 직접 생성할 수 없으며, 반드시 AWS CLI 또는 SDK(API)를 통해 생성해야 합니다.
1. 템플릿 생성하기 (AWS CLI)
먼저 이메일 템플릿을 정의하는 JSON 파일을 만들어야 합니다. 예를 들어 아래와 같은 내용을 template.json
파일로 저장합니다.
{
"Template": {
"TemplateName": "MyTemplate",
"SubjectPart": "안녕하세요, {{name}}님",
"TextPart": "{{name}}님, 저희 서비스를 이용해주셔서 감사합니다.",
"HtmlPart": "<h1>안녕하세요, {{name}}님</h1><p>이것은 HTML 템플릿입니다.</p>"
}
}
이제 아래 명령어를 통해 템플릿을 생성합니다.
aws ses create-template \
--cli-input-json file://template.json \
--region ap-northeast-2
정상적으로 등록되면 list-templates
명령어로 확인하거나 콘솔에서 확인 가능하십니다.
aws ses list-templates \
--region ap-northeast-2
2. 템플릿으로 이메일 보내기
템플릿이 등록되었으면 이제 해당 템플릿을 사용해 이메일을 전송할 수 있습니다. 다음은 AWS CLI와 Python SDK를 각각 이용하는 예제입니다.
방법 1: AWS CLI 사용
템플릿 데이터만 입력하면 쉽게 이메일을 보낼 수 있습니다.
aws ses send-templated-email \
--from "발신자@example.com" \
--destination "ToAddresses=수신자@example.com" \
--template "MyTemplate" \
--template-data "{\"name\": \"홍길동\"}" \
--region ap-northeast-2
또는 아래와 같이 JSON 파일(template-email.json
)을 만들어 전송할 수도 있습니다.
{
"Source": "발신자@example.com",
"Destination": {
"ToAddresses": ["수신자@example.com"]
},
"Template": "MyTemplate",
"TemplateData": "{\"name\": \"홍길동\"}"
}
전송 명령어:
aws ses send-templated-email \
--cli-input-json file://template-email.json \
--region ap-northeast-2
방법 2: Python SDK 사용
boto3
를 사용해 템플릿 기반 이메일을 보낼 수 있습니다.
import boto3
ses = boto3.client('ses', region_name='ap-northeast-2')
response = ses.send_templated_email(
Source='발신자@example.com',
Destination={'ToAddresses': ['수신자@example.com']},
Template='MyTemplate',
TemplateData='{"name": "홍길동"}'
)
print(response)
3. 템플릿 수정 및 삭제
템플릿을 수정하거나 삭제하고 싶을 때도 CLI를 통해 가능합니다.
- 템플릿 수정:
aws ses update-template \
--cli-input-json file://template.json \
--region ap-northeast-2
- 템플릿 삭제:
aws ses delete-template \
--template-name MyTemplate \
--region ap-northeast-2
마무리
Amazon SES의 템플릿 기능은 반복적인 이메일 발송, 개인화된 마케팅 메일, 이벤트 알림 등에 매우 유용합니다. 특히 CLI와 SDK를 활용하면 이메일 자동화가 쉬워지고, 코드 기반으로 버전 관리도 가능해집니다.
이번 글을 통해 템플릿 생성부터 실제 전송까지 전체 흐름을 익히셨기를 바랍니다
감사합니다!