

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

# テンプレートを使用して、Amazon SES API でパーソナライズされた E メールを送信する
<a name="send-personalized-email-api"></a>

Amazon SES では、*保存済みテンプレート*を使用するか、*インラインテンプレート*を使用して、テンプレートに基づく E メールを送信できます。
+ **保存済みテンプレート** – Amazon SES v2 API の `CreateEmailTemplate` オペレーションを使用して SES で作成および保存される [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Template.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Template.html) リソースを指します。このテンプレートには、書き込まれたコンテンツとインラインで変数 (プレースホルダー) を含む 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 メールを送信できます。[https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Destination.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Destination.html) オブジェクトには、**ToAddresses**、**CcAddresses**、および **BccAddresses** で定義された複数の受信者を含めることができます。1 回の v2 API の呼び出しで連絡できる送信先の数が、アカウントの最大送信レートによって制限される場合があります。詳細については、「[Amazon SES 送信制限の管理](manage-sending-quotas.md)」を参照してください。

この章には、*保存済みテンプレート*と*インラインテンプレート*の両方を使用する例を含む手順が含まれています。

**注記**  
これらの手順では、 AWS CLIがすでにインストールされ、設定されていることを前提としています。のインストールと設定の詳細については AWS CLI、 [AWS Command Line Interface ユーザーガイド](https://docs.aws.amazon.com/cli/latest/userguide/)を参照してください。

## (オプション) パート 1: レンダリング失敗イベント通知を設定する
<a name="send-personalized-email-set-up-notifications"></a>

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

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

**レンダリング失敗イベント通知を設定するには**

1. Amazon SNS トピックを作成する。手続きについては、Amazon Simple Notification Service デベロッパーガイドの*トピックの作成*を参照してください。

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

   手順については、[Amazon Simple Notification Service デベロッパーガイド](https://docs.aws.amazon.com/sns/latest/dg/SubscribeTopic.html)の*トピックを購読する*を参照してください。

1. 「[イベント発行の Amazon SNS イベント送信先のセットアップ](event-publishing-add-event-destination-sns.md)」の手順を完了して、設定セットをセットアップし、レンダリング失敗イベントを Amazon SNS トピックに発行します。

## (オプション) パート 2: E メールのテンプレートを作成する
<a name="send-personalized-email-create-template"></a>

*保存済みテンプレート*を使用する場合、このセクションでは、SES [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_CreateEmailTemplate.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_CreateEmailTemplate.html) v2 API オペレーションを使用してテンプレートを作成する方法を示します。*インラインテンプレート*を使用する場合は、このステップをスキップできます。

この手順は、 AWS CLIがすでにインストールされ、設定されていることを前提としています。のインストールと設定の詳細については AWS CLI、 [AWS Command Line Interface ユーザーガイド](https://docs.aws.amazon.com/cli/latest/userguide/)を参照してください。

**テンプレートを作成するには**

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>"
       }
   }
   ```

   このコードには次のプロパティが含まれています。
   + **TemplateName** – `Template` リソースの名前。E メールを送信する場合に、この名前を参照します。
   + **TemplateContent** – 次の属性のコンテナ。
     + [**Subject**] – E メールの件名です。このプロパティには、置換タグが含まれる場合があります。これらのタグは以下のフォーマットを使用します: `{{tagname}}`。E メールを送信するとき、各宛先の `tagname` に対する値を指定できます。
     + **Html** – E メールの HTML 本文。このプロパティには、置換タグが含まれる場合があります。前述の例には、`{{name}}` および `{{favoriteanimal}}` の 2 つのタグが含まれます。
     + **Text** – E メールのテキスト本文。E メールクライアントに HTML コンテンツが表示されない受信者には、このバージョンの E メールが表示されます。また、このプロパティには置換タグが含まれる場合があります。

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

1. コマンドラインで次のコマンドを入力し、[https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_CreateEmailTemplate.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_CreateEmailTemplate.html) v2 API オペレーションを使用して新しいテンプレートを作成します。

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

## パート 3: パーソナライズされた E メールを送信する
<a name="send-personalized-email-api-operations"></a>

次の 2 つの SES v2 API オペレーションを使用して、*保存済みテンプレート*または*インラインテンプレート*で E メールを送信できます。
+ [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendEmail.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendEmail.html) オペレーションは、カスタマイズされた E メールを 1 つの送信先オブジェクトに送信するために役立ちます。v2 API [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Destination.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Destination.html) オブジェクトには、*ToAddresses*、*CcAddresses*、および *BccAddresses* の各プロパティを含めることができます。これらは任意の組み合わせで使用でき、同じ E メールを受信する 1 つ以上の E メールアドレスを含めることができます。
+ [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendBulkEmail.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendBulkEmail.html) オペレーションは、v2 API への単一の呼び出しで複数の送信先オブジェクトそれぞれに独自の E メールを送信するために役立ちます。

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

### 単一の送信先オブジェクトにテンプレートに基づく E メールを送信する
<a name="send-templated-email-single-destination"></a>

[https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendEmail.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendEmail.html) オペレーションを使用して、1 つの送信先オブジェクトで定義された 1 人以上の受信者に E メールを送信できます。[https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Destination.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Destination.html) オブジェクトにあるすべての受信者に、同じ E メールが届きます。

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

1. *保存済みテンプレート*を使用するか*インラインテンプレート*を使用するかに応じて、テキストエディタに貼り付けるそれぞれのコード例を選択し、必要に応じてカスタマイズします。

------
#### [ Stored template code example ]

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

   ```
   {
       "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 メールアドレス。
   + **送信先** – *ToAddresses*、*CcAddresses*、および *BccAddresses* の各プロパティで定義された E メール受信者を含むオブジェクト。これらは任意の組み合わせで使用でき、同じ E メールを受信する 1 つ以上の E メールアドレスを含めることができます。
   + **TemplateName** – E メールに対して適用する `Template` リソースの名前。
   + **TemplateData** – キーと値のペアを含むエスケープされた JSON 文字列。キーは保存済みテンプレートの `TemplateContent` プロパティに定義された変数 (`{{name}}` など) に対応します。値は変数を置き換える内容を表します。
   + **ConfigurationSetName** – E メールを送信するときに使用する設定セットの名前。
**注記**  
レンダリング失敗イベントを Amazon SNS に発行するように設定された設定セットを使用することをお勧めします。詳細については、「[(オプション) パート 1: レンダリング失敗イベント通知を設定する](#send-personalized-email-set-up-notifications)」を参照してください。

------
#### [ 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 メールアドレス。
   + **送信先** – *ToAddresses*、*CcAddresses*、および *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: レンダリング失敗イベント通知を設定する](#send-personalized-email-set-up-notifications)」を参照してください。

------

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

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

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

### 複数の送信先オブジェクトにテンプレートに基づく E メールを送信する
<a name="send-templated-email-multiple-destinations"></a>

[https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendBulkEmail.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendBulkEmail.html) オペレーションを使用して、SES v2 API への単一の呼び出しで、複数の送信先オブジェクトにメールを送信できます。SES は、各 [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Destination.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Destination.html) オブジェクトで、1 名または複数の受信者それぞれに独自の E メールを送信します。

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

1. *保存済みテンプレート*を使用するか*インラインテンプレート*を使用するかに応じて、テキストエディタに貼り付けるそれぞれのコード例を選択し、必要に応じてカスタマイズします。

------
#### [ Stored template code example ]

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

   ```
   {
       "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` および `TemplateData` オブジェクトを含む JSON オブジェクト。
   + **TemplateName** – E メールに対して適用する `Template` リソースの名前。
   + **TemplateData** – `ReplacementEmailContent` オブジェクトで空の JSON オブジェクト `{}` が `ReplacementTemplateData` プロパティに含まれている場合に使用されるキーと値のペアが含まれます。
   + **BulkEmailEntries** – 1 つ以上の `Destination` オブジェクトを含む配列。
   + **送信先** – *ToAddresses*、*CcAddresses*、および *BccAddresses* の各プロパティで定義された E メール受信者を含むオブジェクト。これらは任意の組み合わせで使用でき、同じ E メールを受信する 1 つ以上の E メールアドレスを含めることができます。
   + **ReplacementTemplateData** – キーと値のペアを含むエスケープされた JSON 文字列。キーはテンプレート内の変数 (`{{name}}` など) に対応します。値は E メール内の変数を置き換える内容を表します。(ここで JSON 文字列が空で、`{}` で示されている場合、`DefaultContent` オブジェクト内の `TemplateData` プロパティで定義されたキーと値のペアが使用されます)。
   + **ConfigurationSetName** – E メールを送信するときに使用する設定セットの名前。
**注記**  
レンダリング失敗イベントを Amazon SNS に発行するように設定された設定セットを使用することをお勧めします。詳細については、「[(オプション) パート 1: レンダリング失敗イベント通知を設定する](#send-personalized-email-set-up-notifications)」を参照してください。

------
#### [ 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` および `TemplateData` オブジェクトを含む JSON オブジェクト。
   + **TemplateContent** – 次の属性のコンテナ。
     + [**Subject**] – E メールの件名です。このプロパティには、置換タグが含まれる場合があります。これらのタグは以下のフォーマットを使用します: `{{tagname}}`。E メールを送信するとき、各宛先の `tagname` に対する値を指定できます。
     + **Html** – E メールの HTML 本文。このプロパティには、置換タグが含まれる場合があります。前述の例には、`{{name}}` および `{{favoriteanimal}}` の 2 つのタグが含まれます。
     + **Text** – E メールのテキスト本文。E メールクライアントに HTML コンテンツが表示されない受信者には、このバージョンの E メールが表示されます。また、このプロパティには置換タグが含まれる場合があります。
   + **TemplateData** – `ReplacementEmailContent` オブジェクトで空の JSON オブジェクト `{}` が `ReplacementTemplateData` プロパティに含まれている場合に使用されるキーと値のペアが含まれます。
   + **BulkEmailEntries** – 1 つ以上の `Destination` オブジェクトを含む配列。
   + **送信先** – *ToAddresses*、*CcAddresses*、および *BccAddresses* の各プロパティで定義された E メール受信者を含むオブジェクト。これらは任意の組み合わせで使用でき、同じ E メールを受信する 1 つ以上の E メールアドレスを含めることができます。
   + **ReplacementTemplateData** – キーと値のペアを含むエスケープされた JSON 文字列。キーは、`{{name}}` など、このファイルの `TemplateContent` プロパティで定義された変数に対応します。値は E メール内の変数を置き換える内容を表します。(ここで JSON 文字列が空で、`{}` で示されている場合、`DefaultContent` オブジェクト内の `TemplateData` プロパティで定義されたキーと値のペアが使用されます)。
   + **ConfigurationSetName** – E メールを送信するときに使用する設定セットの名前。
**注記**  
レンダリング失敗イベントを Amazon SNS に発行するように設定された設定セットを使用することをお勧めします。詳細については、「[(オプション) パート 1: レンダリング失敗イベント通知を設定する](#send-personalized-email-set-up-notifications)」を参照してください。

------

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

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

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