반응형
필요 라이브러리
boto3: 파이썬 전용 AWS SDK
이 작업은 당연히 Aws Cli를 사용해서도 커버가 가능하지만, 템플릿이나 특정값을 터미널에서 입력하면 번거로워서 코드로 작성해서 사용중이다.
1.Aws Cli
1-1. 생성 명령어
아래와 같은 Json파일이 있다고 가정하면
# template.json
{
"TemplateName": "<TEMPLATE_NAME>",
"SubjectPart": "<TITLE>",
"HtmlPart": "<html><body><h1>Hello, World!</h1></body></html>",
"TextPart": "Hello, World!"
}
aws cli로 json파일을 불러와서 명령어를 수행하면 된다.
aws ses create-template --template file://template.json
1-2. 삭제 명령어
삭제하기 위해서는 위에서 사용한 TEMPLATE_NAME이 필요하다
aws ses delete-template --template-name <TEMPLATE_NAME>
2. 파이썬 코드
근데 왜 파이썬으로 작성해? 라고 한다면...
html파일 혹은 이메일 템플릿이 절대로 저렇게 Hello World만 찍을리가 없다. 그래서 파이썬에서 html파일을 읽어서 사용하는게 더 편하다.
2-1. 템플릿 생성
생성하기 위해서 html파일이 같은 경로에 있다고 가정하자.
def create_email_template():
session = boto3.Session(profile_name="<PROFILE>")
ses_client = session.client("ses")
with open("./template.html", "r", encoding="utf-8") as html_file:
html_content = html_file.read()
template = {
"TemplateName": "template",
"SubjectPart": "[{{name}}] 서비스",
"HtmlPart": html_content,
"TextPart": "",
}
try:
response = ses_client.create_template(Template=template)
print(f"template created {response}")
except Exception as e:
print(f"template creation failed {e}")
if __name__ == "__main__":
create_email_template()
2-2. 템플릿 삭제
삭제하기 위해서는 명령어와 동일하게 템플릿 이름만 알면된다.
```python
def delete_email_template():
session = boto3.Session(profile_name="<PROFILE>")
ses_client = session.client("ses")
template_name = "template"
try:
response = ses_client.delete_template(TemplateName=template_name)
print(f"template deleted {response}")
except Exception as e:
print(f"template deletion failed {e}")
if __name__ == "__main__":
delete_email_template()
728x90
'[AWS] > [SES]' 카테고리의 다른 글
[AWS] SES 발송 실패에 대한 알림메일 받기 (0) | 2023.04.01 |
---|