

aws ses send-emailでメールを送る、--to/--subject/--textだけで足りるパターンとJSON必須なパターン
この記事は、構成と文章の整理にAIを使っています。
あくまで読みやすくするための補助で、内容そのものをAIにすべて任せて書いているわけではありませんが、ところどころ相談しながら整えています。
AWS CLIからaws ses send-emailでメールを送る方法をまとめる。
Pattern 1: 簡易オプションで送る
宛先・件名・本文がシンプルなテキストだけなら、以下のオプションだけで送れる。
--from--to--cc--bcc--subject--text--html
コマンド
$ aws --region us-east-1 ses send-email --to to@example.com --from from@example.com --subject "Title." --text "Message body."返り値
{ "MessageId": "01090177b45112da-2a7f375c-579c-49b7-8655-a90273fcfafd-000000"}注意点として、--subjectなどの引用符は半角の"を使うこと。全角の”を使うとパースでコケる。
Pattern 2: destination/messageをJSONで渡す
HTML本文とテキスト本文を両方指定したい場合や、CC/BCCを複数まとめて指定したい場合は、--destination/--messageをJSONで渡す方法の方が見通しがいい。
$ aws ses send-email --from from@example.com --destination file://destination.json --message file://message.jsondestination.json
{ "ToAddresses": ["to@example.com"]}message.json
{ "Subject": { "Data": "Title.", "Charset": "UTF-8" }, "Body": { "Text": { "Data": "Message body.", "Charset": "UTF-8" } }}sesv2との違い
aws sesv2 send-emailの方はこのショートハンドが存在しない。--contentにSimple/Raw/Templatedのいずれかを含むJSON構造を渡す形式のみで、--toや--subjectのような簡易フラグはない。SESのCLI周りを調べるときはv1とv2のどちらのコマンドか意識した方がいい。
サンドボックス状態のアカウントだと、送信先アドレスも検証済みである必要がある点は変わらず。