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

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

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

Amazon SES では、保存済みテンプレートを使用するか、インラインテンプレートを使用して、テンプレートに基づく E メールを送信できます。

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

    保存済みテンプレートは簡単に再利用でき、似たような種類の 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 で定義された複数の受信者を含めることができます。1 回の v2 API の呼び出しで連絡できる送信先の数が、アカウントの最大送信レートによって制限される場合があります。詳細については、「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 – 次の属性のコンテナ。

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

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

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

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

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

    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 への単一の呼び出しで複数の送信先オブジェクトそれぞれに独自の E メールを送信するために役立ちます。

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

単一の送信先オブジェクトにテンプレートに基づく E メールを送信する

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 – 次の属性のコンテナ。

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

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

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

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

    • 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 への単一の呼び出しで、複数の送信先オブジェクトにメールを送信できます。SES は、各 Destination オブジェクトで、1 名または複数の受信者それぞれに独自の 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 メールアドレス。

    • DefaultContentTemplateName および TemplateData オブジェクトを含む JSON オブジェクト。

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

    • TemplateDataReplacementEmailContent オブジェクトで空の JSON オブジェクト {}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 メールアドレス。

    • DefaultContentTemplateContent および TemplateData オブジェクトを含む JSON オブジェクト。

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

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

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

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

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

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

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

    • ReplacementTemplateData – キーと値のペアを含むエスケープされた JSON 文字列。キーは、{{name}} など、このファイルの TemplateContent プロパティで定義された変数に対応します。値は 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