テンプレートを使用して、Amazon SES API でパーソナライズされた E メールを送信する - Amazon Simple Email Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

テンプレートを使用して、Amazon SES API でパーソナライズされた E メールを送信する

Amazon SES では、保存されたテンプレートを使用するか、インラインテンプレートを使用して、テンプレート化された E メールを送信できます。

  • 保存済みテンプレート – Amazon SES v2 API の CreateEmailTemplateオペレーションを使用して SES で作成および保存されるTemplateリソースを指します。 Amazon SES テンプレートには、書き込まれたコンテンツとインラインで変数 (プレースホルダー) を含む E メールの件名と本文が含まれています。SendEmail または SendBulkEmailv2 API オペレーションを呼び出すときに、保存されたテンプレートの名前とテンプレート内のプレースホルダー変数への動的データが提供されます。

    保存されたテンプレートは簡単に再利用でき、同様の種類の E メールを送信する際の時間と労力を節約できます。各 E メールをゼロから作成する代わりに、基本構造と設計を一度作成するだけで済み、テンプレート内の動的コンテンツを更新するだけです。

  • インラインテンプレートTemplateリソースは使用されませんが、変数 (プレースホルダー) を含む E メールの件名と本文は、これらのプレースホルダー変数の値とともに、 SendEmailまたは v2 API SendBulkEmail オペレーションを呼び出すときにインラインで提供されます。

    インラインテンプレートは、SES アカウントでテンプレートリソースを管理する必要がなくなり、アプリケーションロジック内にテンプレートコンテンツを直接含めることができるため、統合プロセスを簡素化することで、一括 E メールを送信するプロセスを合理化します。あたりの 20,000 テンプレートの制限にはカウントされません AWS リージョン。

ストアドテンプレートを使用する場合、次の制限が適用されます。

  • それぞれに最大 20,000 個の E メールテンプレートを作成できます AWS リージョン。

  • 各テンプレートは、テキストと HTML パートの両方を含めて、最大 500 KB のサイズまで可能です。

インラインテンプレートを使用する場合、次の制限が適用されます。

  • 各入力 JSON ファイルは、テキスト部分と HTML 部分の両方を含めて、最大 1 MB のサイズにすることができます。

以下は、保存されたテンプレートとインラインテンプレートの両方に適用されます。

  • 使用できる置換変数の数に制限はありません。

  • SendBulkEmail オペレーションの呼び出しごとに、最大 50 個の送信先オブジェクトに E メールを送信できます。Destination オブジェクトには、ToAddressesCcAddresses、および BccAddresses で定義された複数の受信者を含めることができます。v2 API への 1 回の呼び出しで問い合わせることができる送信先の数は、アカウントの最大送信レートによって制限される場合があります。詳細については、「Amazon SES 送信制限の管理」を参照してください。

この章では、ストアドテンプレートインラインテンプレートの両方を使用する例を含む手順について説明します。

注記

これらの手順では、 AWS CLIがすでにインストールされ、設定されていることを前提としています。のインストールと設定の詳細については AWS CLI、「 AWS Command Line Interface ユーザーガイド」を参照してください。

(オプション) パート 1: レンダリング失敗イベント通知を設定する

無効なパーソナライズコンテンツを含む E メールを送信する場合、Amazon SES はメッセージを受け入れることもありますが、配信することはできません。このため、パーソナライズされた E メールを送信する場合は、Amazon SNS を介してレンダリング失敗イベント通知を送信するように SES を設定する必要があります。レンダリング失敗イベント通知を受信した場合、無効なコンテンツが含まれていたメッセージを確認し、問題を修正して、もう一度メッセージを送信できます。

このセクションの手順はオプションですが、強くお勧めします。

レンダリング失敗イベント通知を設定するには
  1. Amazon SNS トピックを作成する。手続きについては、Amazon Simple Notification Service デベロッパーガイドのトピックの作成を参照してください。

  2. Amazon SNS トピックを購読します。たとえば、E メールでレンダリング失敗通知を受信する場合は、そのトピックを E メールエンドポイント (E メールアドレス) で購読する必要があります。

    手順については、Amazon Simple Notification Service デベロッパーガイドトピックを購読するを参照してください。

  3. イベント発行の Amazon SNS イベント送信先のセットアップ」の手順を完了して、設定セットをセットアップし、レンダリング失敗イベントを Amazon SNS トピックに発行します。

(オプション) パート 2: E メールテンプレートを作成する

保存されたテンプレートを使用する場合、このセクションでは、SES CreateEmailTemplate v2 API オペレーションを使用してテンプレートを作成する方法を示します。インラインテンプレートを使用する場合は、このステップをスキップできます。

この手順は、 AWS CLIがすでにインストールされ、設定されていることを前提としています。のインストールと設定の詳細については AWS CLI、「 AWS Command Line Interface ユーザーガイド」を参照してください。

テンプレートを作成するには
  1. テキストエディタで、新しいファイルを作成し、必要に応じてカスタマイズする次のコードを貼り付けます。

    { "TemplateName": "MyTemplate", "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>" } }

    このコードには次のプロパティが含まれています。

    • TemplateNameTemplateリソースの名前。E メールを送信する場合に、この名前を参照します。

    • TemplateContent – 次の属性のコンテナ。

      • SubjectPart – E メールの件名。このプロパティには、置換タグが含まれる場合があります。これらのタグは以下のフォーマットを使用します: {{tagname}}。E メールを送信するとき、各宛先の tagname に対する値を指定できます。

      • HtmlPart – E メールの HTML 本文。このプロパティには、置換タグが含まれる場合があります。前述の例には、{{name}} および {{favoriteanimal}} の 2 つのタグが含まれます。

      • TextPart – E メールのテキスト本文。E メールクライアントに HTML コンテンツが表示されない受信者には、このバージョンの E メールが表示されます。このプロパティには代替タグが含まれている場合もあります。

  2. 上記の例をニーズに合わせてカスタマイズし、ファイルを mytemplate.json として保存します。

  3. コマンドラインで、次のコマンドを入力して v2 API CreateEmailTemplate オペレーションを使用して新しいテンプレートを作成します。

    aws sesv2 create-email-template --cli-input-json file://mytemplate.json

パート 3: パーソナライズされた E メールを送信する

次の 2 つの SES v2 API オペレーションを使用して、保存されたテンプレートまたはインラインテンプレートを使用して E メールを送信できます。

  • SendEmail オペレーションは、カスタマイズされた E メールを 1 つの送信先オブジェクトに送信するのに役立ちます。v2 API Destination オブジェクトには、ToAddressesCcAddresses、および BccAddresses プロパティを含めることができます。これらは任意の組み合わせで使用でき、同じ E メールを受信する 1 つ以上の E メールアドレスを含めることができます。

  • SendBulkEmail オペレーションは、v2 API への 1 回の呼び出しで複数の送信先オブジェクトに一意の E メールを送信する場合に便利です。

このセクションでは、 を使用して AWS CLI 、これら両方の送信オペレーションを使用してテンプレート化された E メールを送信する方法の例を示します。

テンプレート化された E メールを 1 つの送信先オブジェクトに送信する

SendEmail オペレーションを使用して、1 つの送信先オブジェクトで定義された 1 人以上の受信者に E メールを送信できます。Destination オブジェクトにあるすべての受信者に、同じ E メールが届きます。

テンプレート化された E メールを単一の送信先オブジェクトに送信するには
  1. 保存済みテンプレートを使用するかインラインテンプレートを使用するかに応じて、テキストエディタに貼り付けるコード例を選択し、必要に応じてカスタマイズします。

    Stored template code example

    前のステップで作成したテンプレート MyTemplateTemplateNameパラメータの値として参照されていることに注意してください。

    { "FromEmailAddress": "Mary Major <mary.major@example.com>", "Destination": { "ToAddresses": [ "alejandro.rosalez@example.com", "jimmy.jet@example.com" ] }, "Content": { "Template": { "TemplateName": "MyTemplate", "TemplateData": "{ \"name\":\"Alejandro\", \"favoriteanimal\": \"alligator\" }" } }, "ConfigurationSetName": "ConfigSet" }

    このコードには次のプロパティが含まれています。

    • FromEmailAddress – 送信者の E メールアドレス。

    • 送信先ToAddressesCcAddresses、および BccAddresses プロパティで定義された E メール受信者を含むオブジェクト。これらは任意の組み合わせで使用でき、同じ E メールを受信する 1 つ以上の E メールアドレスを含めることができます。

    • TemplateName – E メールに適用するTemplateリソースの名前。

    • TemplateData – キーと値のペアを含むエスケープされた JSON 文字列。キーは、 など、保存されたテンプレートのTemplateContentプロパティで定義された変数に対応します{{name}}。値は、変数を置き換えるコンテンツを表します。

    • ConfigurationSetName – E メールを送信するときに使用する設定セットの名前。

      注記

      レンダリング失敗イベントを Amazon SNS に発行するように設定された設定セットを使用することをお勧めします。詳細については、「(オプション) パート 1: レンダリング失敗イベント通知を設定する」を参照してください。

    Inline template code example

    TemplateContent プロパティ (通常、保存されたテンプレートで定義されます) は、これをインラインテンプレートにする TemplateDataプロパティとともにインラインで定義されていることに注意してください。

    { "FromEmailAddress": "Mary Major <mary.major@example.com>", "Destination": { "ToAddresses": [ "alejandro.rosalez@example.com", "jimmy.jet@example.com" ] }, "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" }

    このコードには次のプロパティが含まれています。

    • FromEmailAddress – 送信者の E メールアドレス。

    • 送信先ToAddressesCcAddresses、および BccAddresses プロパティで定義された E メール受信者を含むオブジェクト。これらは任意の組み合わせで使用でき、同じ E メールを受信する 1 つ以上の E メールアドレスを含めることができます。

    • TemplateContent – 次の属性のコンテナ。

      • SubjectPart – E メールの件名。このプロパティには、置換タグが含まれる場合があります。これらのタグは以下のフォーマットを使用します: {{tagname}}。E メールを送信するとき、各宛先の tagname に対する値を指定できます。

      • HtmlPart – E メールの HTML 本文。このプロパティには、置換タグが含まれる場合があります。前述の例には、{{name}} および {{favoriteanimal}} の 2 つのタグが含まれます。

      • TextPart – E メールのテキスト本文。E メールクライアントに HTML コンテンツが表示されない受信者には、このバージョンの E メールが表示されます。このプロパティには代替タグが含まれている場合もあります。

    • TemplateData – キーと値のペアを含むエスケープされた JSON 文字列。キーは、このファイルのTemplateContentプロパティで定義されている変数、例えば に対応します{{name}}。値は、変数を置き換えるコンテンツを表します。

    • ConfigurationSetName – E メールを送信するときに使用する設定セットの名前。

      注記

      レンダリング失敗イベントを Amazon SNS に発行するように設定された設定セットを使用することをお勧めします。詳細については、「(オプション) パート 1: レンダリング失敗イベント通知を設定する」を参照してください。

  2. 上記の例をニーズに合わせてカスタマイズし、ファイルを myemail.json として保存します。

  3. コマンドラインで、次の v2 API コマンドを入力して E メールを送信します。

    aws sesv2 send-email --cli-input-json file://myemail.json

テンプレート化された E メールを複数の送信先オブジェクトに送信する

SendBulkEmail オペレーションを使用して、SES v2 API への 1 回の呼び出しで複数の送信先オブジェクトに E メールを送信できます。SES は、各Destinationオブジェクトの受信者に一意の E メールを送信します。

テンプレート化された E メールを複数の送信先オブジェクトに送信するには
  1. 保存済みテンプレートインラインテンプレートのどちらを使用するかに応じて、テキストエディタに貼り付けるコード例を選択し、必要に応じてカスタマイズします。

    Stored template code example

    前のステップで作成したテンプレート MyTemplateTemplateNameパラメータの値として参照されていることに注意してください。

    { "FromEmailAddress": "Mary Major <mary.major@example.com>", "DefaultContent": { "Template": { "TemplateName": "MyTemplate", "TemplateData": "{ \"name\":\"friend\", \"favoriteanimal\":\"unknown\" }" } }, "BulkEmailEntries": [ { "Destination": { "ToAddresses": [ "anaya.iyengar@example.com" ] }, "ReplacementEmailContent": { "ReplacementTemplate": { "ReplacementTemplateData": "{ \"name\":\"Anaya\", \"favoriteanimal\":\"angelfish\" }" } } }, { "Destination": { "ToAddresses": [ "liu.jie@example.com" ] }, "ReplacementEmailContent": { "ReplacementTemplate": { "ReplacementTemplateData": "{ \"name\":\"Liu\", \"favoriteanimal\":\"lion\" }" } } }, { "Destination": { "ToAddresses": [ "shirley.rodriguez@example.com" ] }, "ReplacementEmailContent": { "ReplacementTemplate": { "ReplacementTemplateData": "{ \"name\":\"Shirley\", \"favoriteanimal\":\"shark\" }" } } }, { "Destination": { "ToAddresses": [ "richard.roe@example.com" ] }, "ReplacementEmailContent": { "ReplacementTemplate": { "ReplacementTemplateData": "{}" } } } ], "ConfigurationSetName": "ConfigSet" }

    このコードには次のプロパティが含まれています。

    • FromEmailAddress – 送信者の E メールアドレス。

    • DefaultContent – オブジェクトTemplateNameと オブジェクトを含む JSON TemplateData オブジェクト。

    • TemplateName – E メールに適用するTemplateリソースの名前。

    • TemplateData – オブジェクトに空の JSON ReplacementEmailContent オブジェクト が ReplacementTemplateDataプロパティ{}に含まれている場合に使用されるキーと値のペアが含まれます。

    • BulkEmailEntries – 1 つ以上のDestinationオブジェクトを含む配列。

    • 送信先ToAddressesCcAddresses、および BccAddresses プロパティで定義された E メール受信者を含むオブジェクト。これらは任意の組み合わせで使用でき、同じ E メールを受信する 1 つ以上の E メールアドレスを含めることができます。

    • ReplacementTemplateData – キーと値のペアを含むエスケープされた JSON 文字列。キーは、 などのテンプレート内の変数に対応します{{name}}。値は E メール内の変数を置き換える内容を表します。(ここでの JSON 文字列が空で、 で示されている場合は{}DefaultContent オブジェクト内の TemplateDataプロパティで定義されたキーと値のペアが使用されます)。

    • ConfigurationSetName – E メールを送信するときに使用する設定セットの名前。

      注記

      レンダリング失敗イベントを Amazon SNS に発行するように設定された設定セットを使用することをお勧めします。詳細については、「(オプション) パート 1: レンダリング失敗イベント通知を設定する」を参照してください。

    Inline template code example

    TemplateContent プロパティ (通常、保存されたテンプレートで定義されます) は、これをインラインテンプレートにする TemplateDataプロパティとともにインラインで定義されていることに注意してください。

    { "FromEmailAddress": "Mary Major <mary.major@example.com>", "DefaultContent": { "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\":\"friend\", \"favoriteanimal\":\"unknown\" }" } }, "BulkEmailEntries": [ { "Destination": { "ToAddresses": [ "anaya.iyengar@example.com" ] }, "ReplacementEmailContent": { "ReplacementTemplate": { "ReplacementTemplateData": "{ \"name\":\"Anaya\", \"favoriteanimal\":\"angelfish\" }" } } }, { "Destination": { "ToAddresses": [ "liu.jie@example.com" ] }, "ReplacementEmailContent": { "ReplacementTemplate": { "ReplacementTemplateData": "{ \"name\":\"Liu\", \"favoriteanimal\":\"lion\" }" } } }, { "Destination": { "ToAddresses": [ "shirley.rodriguez@example.com" ] }, "ReplacementEmailContent": { "ReplacementTemplate": { "ReplacementTemplateData": "{ \"name\":\"Shirley\", \"favoriteanimal\":\"shark\" }" } } }, { "Destination": { "ToAddresses": [ "richard.roe@example.com" ] }, "ReplacementEmailContent": { "ReplacementTemplate": { "ReplacementTemplateData": "{}" } } } ], "ConfigurationSetName": "ConfigSet" }

    このコードには次のプロパティが含まれています。

    • FromEmailAddress – 送信者の E メールアドレス。

    • DefaultContent – オブジェクトTemplateContentと オブジェクトを含む JSON TemplateData オブジェクト。

    • TemplateContent – 次の属性のコンテナ。

      • SubjectPart – E メールの件名。このプロパティには、置換タグが含まれる場合があります。これらのタグは以下のフォーマットを使用します: {{tagname}}。E メールを送信するとき、各宛先の tagname に対する値を指定できます。

      • HtmlPart – E メールの HTML 本文。このプロパティには、置換タグが含まれる場合があります。前述の例には、{{name}} および {{favoriteanimal}} の 2 つのタグが含まれます。

      • TextPart – E メールのテキスト本文。E メールクライアントに HTML コンテンツが表示されない受信者には、このバージョンの E メールが表示されます。このプロパティには代替タグが含まれている場合もあります。

    • TemplateDataReplacementEmailContent オブジェクトに空の JSON オブジェクト が ReplacementTemplateDataプロパティ{}に含まれている場合に使用されるキーと値のペアが含まれます。

    • BulkEmailEntries – 1 つ以上のDestinationオブジェクトを含む配列。

    • 送信先ToAddressesCcAddresses、および BccAddresses プロパティで定義された E メール受信者を含むオブジェクト。これらは任意の組み合わせで使用でき、同じ E メールを受信する 1 つ以上の E メールアドレスを含めることができます。

    • ReplacementTemplateData – キーと値のペアを含むエスケープされた JSON 文字列。キーは、このファイルのTemplateContentプロパティで定義されている変数、例えば に対応します{{name}}。値は E メール内の変数を置き換える内容を表します。(ここでの JSON 文字列が空で、 で示されている場合{}DefaultContent オブジェクト内の TemplateDataプロパティで定義されたキーと値のペアが使用されます)。

    • ConfigurationSetName – E メールを送信するときに使用する設定セットの名前。

      注記

      レンダリング失敗イベントを Amazon SNS に発行するように設定された設定セットを使用することをお勧めします。詳細については、「(オプション) パート 1: レンダリング失敗イベント通知を設定する」を参照してください。

  2. 前のステップのコードの値をニーズに合わせて変更し、ファイルを mybulkemail.json として保存します。

  3. コマンドラインで、次の v2 API コマンドを入力して一括 E メールを送信します。

    aws sesv2 send-bulk-email --cli-input-json file://mybulkemail.json