본문 바로가기

[AWS]/[SES]

[AWS] SES 이메일 템플릿 파이썬으로 구현

반응형

필요 라이브러리
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