1. 들어가기 전

때로는 유저에게 알림을 위한 이메일 전송 기능을 구현할때가 있습니다. 일반적으로는 AWS에서 제공하는 SES를 사용할 수 있습니다. 기능을 추가할 때마다 필요한 이메일 템플릿(html 소스)을 받아 해당 프로젝트 폴더에 넣어 관리하며, 필요할 때마다 원하는 템플릿 소스를 가져와서 이메일을 전송합니다. NestJS 컴파일러 옵션에 html 파일까지 빌드하는 옵션까지 추가되어 있고, 이 부분은 html 파일 크기나 갯수에 따라 NestJS 빌드 시간에 영향을 미칩니다.

{
	"compilerOptions": {
    "assets": [
      ".../*.html"
    ]
  }
}

이 방법은 템플릿에 수정사항이 생길 경우, 또는 추가 및 삭제를 해야할 경우, 프로젝트 폴더에서 바로 접근 가능하기 때문에 빠르고 간편하다는 장점이 있지만, 나중에 이메일 템플릿이 많아지거나, (거의 그럴일은 없겠지만) 소스의 크기가 엄청 큰 템플릿이 프로젝트에 추가될 경우, NestJS 빌드 시간이나 프로젝트 크기가 무거워질 수도 있습니다.

하지만 AWS SES Template을 사용하여 이메일 템플릿을 관리한다면, 이러한 부분을 해소할 수 있을것이고, 어느 레포지토리든 원하는 템플릿에 접근하여 이메일을 전송할 수 있을거라고 생각합니다.


2. 본격적으로 들어가기 전에

<aside> ‼️ aws cli 사용을 권장합니다!

템플릿은 아직 콘솔에서 관리할 수 없고, 상세 조회도 불가능합니다. (템플릿 목록만 조회가능) 즉, aws cli를 통해 관리해야합니다.

</aside>

SES Template 정보

이메일 템플릿 생성

만들어둔 템플릿으로 이메일 전송하기

SDK를 사용하여 관리하기

전체 소스 코드 https://github.com/jiho5993/playground/tree/main/apps/aws-ses