メニュー
Amazon Simple Email Service
開発者ガイド

Amazon SES API を使用してパーソナライズされた E メールを送信する

E メールのテンプレートを作成するには、CreateTemplate API オペレーションを使用できます。これらのテンプレートには、件名、E メール本文のテキストパートと HTML パートが含まれています。件名および本文セクションには、受信者ごとにパーソナライズされたユニークな値を含めることもできます。

これらの機能を使用する際に、いくつかの制限と考慮事項があります。

  • Amazon SES アカウントごとに最大 10,000 の E メールテンプレートを作成できます。

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

  • 各テンプレートに置換変数を回数の制限なく含めることができます。

  • SendBulkTemplatedEmail オペレーションの呼び出しごとに、最大 50 個の送信先に E メールを送信できます。送信先には受信者のリスト、CC および BCC の受信者が含まれます。1 回の API の呼び出しで連絡できる送信先がアカウントの最大送信レートによって制限される場合があります。詳細については、「Amazon SES の送信制限の管理」を参照してください。

このセクションでは、E メールテンプレートの作成手順と、パーソナライズされた E メールの送信手順について説明します。

パート 1: レンダリング失敗イベント通知を設定する

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

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

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

  1. Amazon SNS トピックを作成します。手順については、Amazon Simple Notification Service 開発者ガイドの「トピックの作成」を参照してください。

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

    手順については、Amazon Simple Notification Service 開発者ガイドの「トピックへのサブスクライブ」を参照してください。

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

パート 2: E メールのテンプレートを作成する

このセクションの手順では、AWS CLI を使用しており、AWS アカウントとやり取りするように設定していることを前提としています。AWS CLI のインストールおよび設定の詳細については、「AWS Command Line Interface ユーザーガイド」を参照してください。

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

  1. テキストエディタで新規ファイルを作成します。ファイルに次のコードを貼り付けます。

    { "Template": { "TemplateName": "MyTemplate", "SubjectPart": "Greetings, {{name}}!", "HtmlPart": "<h1>Hello {{name}},</h1><p>Your favorite animal is {{favoriteanimal}}.</p>", "TextPart": "Dear {{name}},\r\nYour favorite animal is {{favoriteanimal}}." } }

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

    • TemplateName – テンプレートの名前。E メールを送信する場合に、この名前を参照します。

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

      前述の例には、{{name}} および {{favoriteanimal}} の 2 つのタグが含まれます。

    • HtmlPart – E メールの HTML 本文。このプロパティには、置換タグが含まれる場合があります。

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

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

  3. コマンドラインで以下のコマンドを入力し、CreateTemplate API オペレーションを使用して新しいテンプレートを作成します。aws ses create-template --cli-input-json file://mytemplate.json

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

作成した E メールテンプレートは、E メールの送信に使用できます。テンプレートを使用して E メールを送信するのに使用できる 2 つの API オペレーションがあり、それは SendTemplatedEmail および SendBulkTemplatedEmail です。SendTemplatedEmailオペレーションは、一つへの送信先 (同じメールを受信する「To」、「CC」、「BCC」の集合) にカスタマイズされたメールを送信するのに役立ちます。SendBulkTemplatedEmail オペレーションは、単一の Amazon SES API 呼び出しで複数の宛先それぞれにユニークな E メールを送信するのに役立ちます。このセクションでは、AWS CLI で両方のオペレーションを使用して E メールを送信する方法の例を提供します。

単一の宛先にテンプレートに基づく E メールを送信する

単一の宛先に E メールを送信するには、SendTemplatedEmail オペレーションを使用できます。Destination オブジェクトにあるすべての受信者に、同じ E メールが届きます。

単一の宛先にテンプレートに基づく E メールを送信するには

  1. テキストエディタで新規ファイルを作成します。ファイルに次のコードを貼り付けます。

    { "Source": "sender@example.com", "Template": "MyTemplate", "ConfigurationSetName": "ConfigSet", "Destination": { "ToAddresses": [ "alejandro.rosalez@example.com" ] }, "TemplateData": "{ \"name\":\"Alejandro\", \"favoriteanimal\": \"alligator\" }" }

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

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

    • Template – E メールに対して適用するテンプレートの名前。

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

      注記

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

    • Destination – 受信者のアドレス。複数の「To」、「CC」、「BCC」アドレスを含めることができます。SendTemplatedEmailオペレーションを使用した場合、すべての受信者に同じ E メールが届きます。

    • TemplateData – キーと値のペアを含む JSON オブジェクト。キーはテンプレート内の変数 ({{name}} など) に対応します。値は E メール内の変数を置き換える内容を表します。

  2. ニーズに合わせて上記のコードの値を変更し、ファイルを myemail.json という名前で保存します。

  3. コマンドラインで以下のコマンドを入力して E メールを送信します。aws ses send-templated-email --cli-input-json file://myemail.json

複数の送信先にテンプレートに基づく E メールを送信する

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

複数の送信先にテンプレートに基づく E メールを送信するには

  1. テキストエディタで新規ファイルを作成します。ファイルに次のコードを貼り付けます。

    { "Source":"sender@example.com", "Template":"MyTemplate", "ConfigurationSetName": "ConfigSet", "Destinations":[ { "Destination":{ "ToAddresses":[ "anaya.iyengar@example.com" ] }, "ReplacementTemplateData":"{ \"name\":\"Anaya\", \"favoriteanimal\":\"angelfish\" }" }, { "Destination":{ "ToAddresses":[ "liu.jie@example.com" ] }, "ReplacementTemplateData":"{ \"name\":\"Liu\", \"favoriteanimal\":\"lion\" }" }, { "Destination":{ "ToAddresses":[ "shirley.rodriguez@example.com" ] }, "ReplacementTemplateData":"{ \"name\":\"Shirley\", \"favoriteanimal\":\"shark\" }" }, { "Destination":{ "ToAddresses":[ "richard.roe@example.com" ] }, "ReplacementTemplateData":"{}" } ], "DefaultTemplateData":"{ \"name\":\"friend\", \"favoriteanimal\":\"unknown\" }" }

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

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

    • Template – E メールに対して適用するテンプレートの名前。

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

      注記

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

    • Destinations – 1 つ以上の宛先が含まれている配列。

      • Destination – 受信者のアドレス。複数の「To」、「CC」、「BCC」アドレスを含めることができます。SendBulkTemplatedEmail オペレーションを使用した場合、同一の Destination オブジェクト内のすべての受信者に同じ E メールが届きます。

      • ReplacementTemplateData – キーと値のペアを含む JSON オブジェクト。キーはテンプレート内の変数 ({{name}} など) に対応します。値は E メール内の変数を置き換える内容を表します。

    • DefaultTemplateData – キーと値のペアを含む JSON オブジェクト。キーはテンプレート内の変数 ({{name}} など) に対応します。値は E メール内の変数を置き換える内容を表します。このオブジェクトにはフォールバックデータが含まれています。Destination オブジェクトの ReplacementTemplateData プロパティに空の JSON オブジェクトが含まれる場合、DefaultTemplateData プロパティの値が使用されます。

  2. ニーズに合わせて上記のコードの値を変更し、ファイルを mybulkemail.json という名前で保存します。

  3. コマンドラインで以下のコマンドを入力して一括 E メールを送信します。aws ses send-bulk-templated-email --cli-input-json file://mybulkemail.json