SES のインラインテンプレートで動的パラメータは利用できますか
困っていた内容
SES のインラインテンプレートで、変数を使った動的パラメータ設定はできますか?
送信時のメール内容を動的に変えたいと考えています。
また、ストアドテンプレートとインラインテンプレートで違いはありますか?
どう対応すればいいの?
ストアドテンプレート、インラインテンプレートのどちらも、TemplateData パラメータ(JSON 形式)で動的な値を指定できます。
以下は、公式ドキュメントに記載されているインラインテンプレートでの定義サンプルコードです。
{{name}} や {{favoriteanimal}} がプレースホルダー(変数)となっており、TemplateData で指定した JSON の値に置き換えられます。
{
"FromEmailAddress": "Mary Major <[email protected]>",
"Destination": {
"ToAddresses": ["[email protected]", "[email protected]"]
},
"Content": {
"Template": {
"TemplateContent": {
"Subject": "Greetings, {{name}}!",
"Text": "Dear {{name}},\r\nYour favorite animal is {{favoriteanimal}}.",
"Html": "<h1>Hello {{name}},</h1><p>Your favorite animal is {{favoriteanimal}}.</p>"
},
"TemplateData": "{ \"name\":\"Alejandro\", \"favoriteanimal\": \"alligator\" }"
}
},
"ConfigurationSetName": "ConfigSet"
}
使い分けの基準としては、テンプレート管理の観点から SES 側で一元管理したい場合は「ストアドテンプレート」、アプリケーション側でテンプレートを管理したい場合や、アプリケーション利用ユーザーがテンプレートを入力するケースでは、「インラインテンプレート」が適しています。
また制約事項として、テンプレートの容量制約があるため 500 KB 以内に収まる場合は「ストアドテンプレート」、500 KB を超える場合、または数量制限(リージョンあたり 20,000 個)が懸念される場合は、「インラインテンプレート」をご検討ください。
なお、ご参考までに、テンプレート機能は Amazon SES API でのみ使用可能です。
ストアドテンプレート・インラインテンプレート共に、SMTP インターフェースではご使用いただけませんので、API での実装が必要な点をご注意ください。
参考情報






