サービスからメール送信をする際に、AWS の SES (Simple Email Service) を利用することはよくあると思うのですが、手動でメールを送信しようとするとコマンドで行う必要があるので、備忘録として残しておきます。

前提として、AWS の CLI が使える状態になっているものとします。
環境未作成の場合は 公式サイト などを見て使える状態にしておいてください。

まず、メールのテンプレートを作成します。

{
    "Template": {
        "TemplateName": "TestTemplete",
        "SubjectPart": "サービスについてのお知らせ",
        "HtmlPart": "<p>これはHTMLの本文です。</p>",
        "TextPart": "これはテキストの本文です。"
    }
}

次に送信設定を作成します。

{
  "Source":"no-reply@*****.co.jp",
  "Template":"TestTemplete",
  "Destinations":[
    {
      "Destination":{
        "ToAddresses":[
          "sato@*****.co.jp"
        ]
      },
      "ReplacementTemplateData":"{}"
    },
    {
      "Destination":{
        "ToAddresses":[
          "suzuki@*****.co.jp"
        ]
      },
      "ReplacementTemplateData":"{}"
    }
  ],
  "DefaultTemplateData":"{}"
}

ToAddresses の部分に送信先を書いてください。

ちなみにテンプレートの特定の識別子を置換することもできますが、今回は割愛します。

あとはコマンドでこれらのファイルを SES 側に送信するだけです。

テンプレートの登録。
(us-west-2 の部分は適宜使用しているリージョンに変更してください)

% aws ses create-template --cli-input-json file://TestTemplete.json --region us-west-2

AWS の管理コンソールで登録できているか確認。

ちなみにテンプレートは同名のものは登録できないので、既存のものを修正する場合は create-template ではなく update-template コマンドを使用します。

送信設定。

% aws ses send-bulk-templated-email --cli-input-json file://MailData.json --region us-west-2

これでメールが送信されます。
私が試したときは、即座にメールが送信されていました。

投稿者プロフィール

みっちー
みっちー