📧

SESとLambdaを使ってMarkdownテンプレートを使ったメール配信

2024/01/26に公開

概要

  • サーバーからメール配信処理を切り出すケースを想定
  • EC2 -> SQSキュー -> Lambda -> SES で呼び出せるようにする
  • メールテンプレートはMarkdownファイルで記述する
  • メールテンプレートには簡易的な変数の埋め込みができるようにする
  • MarkdownファイルはS3に置く
  • スタックはCDKで定義する

構成

準備

  • SESの検証済みID(送信元メールアドレス)を事前に登録しておく

サンプルコード

https://github.com/FuminoriSugawara/cdk-lambda-ses-sample/

サンプルコードの実行方法などはREADME.mdを参照

工夫した点

  • MarkdownファイルのfrontMatterを利用して、メール文面内に埋め込む変数がパラメータとして提供されているか、バリデーションできるようにした
  • frontMatterに利用している変数を記述しておくことで、テンプレート内で利用している変数を把握しやすい
  • メールテンプレートの保存場所をS3にすることで、メール文面追加とコードのリリースサイクルを分離できる

発展

  • SESの送信ログをS3に保存する
  • S3のバケットのバージョニングを有効にして、変更履歴を保存する

Discussion