リスト管理の使用 - Amazon Simple Email Service

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

リスト管理の使用

Amazon SES にはリスト管理機能があります。つまり、カスタマーは連絡先リストと呼ばれる独自のメーリングリストを管理できます。連絡先リストは、特定の 1 つ以上のトピックを購読したすべての連絡先を保存できるリストです。連絡先は、E メールを受信しているエンドユーザーです。トピックは、リスト内の関心グループ、テーマ、またはラベルです。リストには、複数のトピックを含めることができます。

Amazon SES API v2の ListContacts オペレーションを使用して、特定のトピックを購読している連絡先のリストを取得し、SendEmail オペレーションを使用して、 連絡先に E メールを送信することができます。

サブスクリプション管理の詳細については、「サブスクリプションの使用」を参照してください。

リスト管理の概要

リスト管理を使用する場合は、次の要素を考慮する必要があります。

  • リストの作成中にリストトピックを指定できます。

  • AWS アカウント ごとに許可される連絡先リストは 1 つだけです。

  • リストには、最大 20 個のトピックを設定できます。

  • 既存の連絡先リストを更新できます。これには、リストへの新しいトピックの追加、リストからの連絡先の追加と削除、リストまたはトピックの連絡先設定の更新が含まれます。

  • トピックの表示名や説明などのトピックメタデータを更新できます。

  • 連絡先リストの連絡先、トピックを購読した連絡先、1つのトピックの購読を取り消した連絡先、およびリスト内のすべてのトピックの購読を取り消した連絡先のリストを取得できます。

  • 既存の連絡先リストを Amazon SES にインポートするには、CreateImportJob APIを使用します。

  • Amazon SES は、お客様の連絡先リストに登録されていない連絡先にメールを送信した場合、E メールをバウンスします。詳細については、「サブスクリプションの使用」を参照してください。

  • 各連絡先には、その連絡先に関する情報を格納するための属性を関連付けることができます。

リスト管理の設定

次の操作を使用して、リスト管理機能を設定できます。連絡先リストおよび連絡先操作の完全なリストは、Amazon SES API v2 リファレンスを参照してください。

連絡先リストを作成する

Amazon SES API v2 の CreateContactList オペレーションを使用して、連絡先リストを作成できます。AWS CLI を使用すると、この設定をすばやく簡単に設定できます。AWS CLI のインストールおよび設定の詳細については、「AWS Command Line Interface ユーザーガイド」を参照してください。

AWS CLI を使用してコンタクトリストを作成するには
  • コマンドラインで以下のコマンドを入力します。

    aws sesv2 create-contact-list --cli-input-json file://CONTACT-LIST-JSON

    上記のコマンドで、CONTACT-LIST-JSONCreateContactList リクエストの JSON ファイルへのパスに置き換えます。

    リクエストのための CreateContactList input JSON ファイルの例を次に示します。

    { "ContactListName": "ExampleContactListName", "Description": "Creating a contact list example", "Topics": [ { "TopicName": "Sports", "DisplayName": "Sports Newsletter", "Description": "Sign up for our free newsletter to receive updates on all sports.", "DefaultSubscriptionStatus": "OPT_OUT" }, { "TopicName": "Cycling", "DisplayName": "Cycling newsletter", "Description": "Never miss a cycling update by subscribing to our newsletter.", "DefaultSubscriptionStatus": "OPT_IN" }, { "TopicName": "NewProducts", "DisplayName": "New products", "Description": "Hear about new products by subscribing to this mailing list.", "DefaultSubscriptionStatus": "OPT_IN" }, { "TopicName": "DailyUpdates", "DisplayName": "Daily updates", "Description": "Start your day with sport updates, Monday through Friday.", "DefaultSubscriptionStatus": "OPT_OUT" } ] }

連絡先を作成

Amazon SES API v2 の CreateContact オペレーションを使用して、連絡先を作成できます。AWS CLI を使用すると、この設定をすばやく簡単に設定できます。AWS CLI のインストールおよび設定の詳細については、「AWS Command Line Interface ユーザーガイド」を参照してください。

AWS CLI を使用して接続を作成するには
  • コマンドラインで以下のコマンドを入力します。

    aws sesv2 create-contact --cli-input-json file://CONTACT-JSON

    上記のコマンドで、CONTACT-JSONCreateContact リクエストの JSON ファイルへのパスに置き換えます。

    リクエストのための CreateContact input JSON ファイルの例を次に示します。

    { "ContactListName": "ExampleContactListName", "EmailAddress": "example@amazon.com", "UnsubscribeAll": false, "TopicPreferences": [ { "TopicName": "Sports", "SubscriptionStatus": "OPT_IN" } ], "AttributesData": "{\"Name\": \"John\", \"Location\": \"Seattle\"}" }

    上の例で、falseUnsubscribeAll 値は、連絡先がすべてのトピックの購読を解除していないことを示し、true の値は、連絡先がすべてのトピックの購読を解除したことを意味します。

    TopicPreferences には、連絡先のトピックへのサブスクリプションステータスに関する情報が含まれています。前述の例では、連絡先は「スポーツ」トピックにオプトインしており、「スポーツ」トピックへのすべての E メールを受信します。

    AttributesData は JSON フィールドで、連絡先に関するメタデータを格納できます。有効な JSON オブジェクトである必要があります。

連絡先リストへの連絡先の一括インポート

アドレスを手動で一括追加するには、最初に、連絡先をAmazon S3 オブジェクトにアップロードしてから、Amazon SES API v2の CreateImportJob オペレーションまたは SES コンソールを使用します。詳細については、「アカウントレベルのサプレッションリストに E メールアドレスを一括で追加」を参照してください。

連絡先をインポートする前に、連絡先リストを作成する必要があります。

注記

ImportJob ごとに、最大 100 万件の連絡先を連絡先リストに追加できます。

連絡先リストに連絡先を一括で追加するには、次の手順を実行します。

  • 連絡先を CSV 形式または JSON 形式で Amazon S3 オブジェクトにアップロードします。

    CSV 形式

    Amazon S3 にアップロードされるファイルの最初の行は、ヘッダー行である必要があります。

    topicPreferences オブジェクトは、CSV 形式用にフラット化する必要があります。topicPreferences のすべてのトピックには、個別のヘッダーフィールドがあります。

    連絡先リストに一括で連絡先を追加するための CSV 形式の例:

    emailAddress,unsubscribeAll,attributesData,topicPreferences.Sports,topicPreferences.Cycling example1@amazon.com,false,{"Name": "John"},OPT_IN,OPT_OUT example2@amazon.com,true,,OPT_OUT,OPT_OUT

    JSON 形式

    newline-delimited JSON ファイルのみがサポートされています。この形式で、各行は 1 つの連絡先情報を含む完全な JSON オブジェクトです。

    連絡先リストに一括で連絡先を追加するための JSON 形式の例:

    { "emailAddress": "example1@amazon.com", "unsubscribeAll": false, "attributesData": "{\"Name\":\"John\"}", "topicPreferences": [ { "topicName": "Sports", "subscriptionStatus": "OPT_IN" }, { "topicName": "Cycling", "subscriptionStatus": "OPT_OUT" } ] } { "emailAddress": "example2@amazon.com", "unsubscribeAll": true, "topicPreferences": [ { "topicName": "Sports", "subscriptionStatus": "OPT_OUT" }, { "topicName": "Cycling", "subscriptionStatus": "OPT_OUT" } ] }

    前述の例ではexample1@amazon.comおよびexample2@amazon.comを、連絡先リストに追加する E メールアドレスに置き換えます。attributesData の値を、連絡先の特定の値に置き換えます。また、スポーツおよびサイクリングを、連絡先に適用する topicName に置き換えます。使用可能な topicPreferencesOPT_IN および OPT_OUT です。

    連絡先を CSV 形式または JSON 形式で Amazon S3 オブジェクトにアップロードする場合、次の属性がサポートされます。

    属性 説明
    emailAddress 連絡先の E メールアドレスです。これは必須フィールドです。
    unsubscribeAll 連絡先がすべての連絡先リストのトピックの購読を解除しているかどうかを通知するブール値のステータス。
    topicPreferences トピックへのオプトインまたはオプトアウトに関する連絡先の設定。
    attributesData 連絡先に添付された属性データ。
  • Amazon S3 オブジェクトを読み取るアクセス許可を Amazon SES に付与します。

    Amazon S3 バケットに適用すると、Amazon SES にそのバケットを読み込む許可を与えます。Amazon S3 バケットの添付ポリシーの詳細については、Amazon Simple Storage Service ユーザーガイド の「バケットポリシーとユーザーポリシーの使用 」を参照してください。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSESGet", "Effect": "Allow", "Principal": { "Service": "ses.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::BUCKET-NAME/OBJECT-NAME", "Condition": { "StringEquals": { "aws:Referer": "AWSACCOUNTID" } } } ] }
  • AWS KMS キーを使用する許可を Amazon SES に与える

    Amazon S3 オブジェクトが AWS KMS キーを暗号化する場合は、KMS キーを使用するための許可を Amazon SES に付与する必要があります。Amazon SES は、カスタマー管理キーからのみ許可を得ることができ、デフォルトの KMS キーからは許可を得られません。キーのポリシーにステートメントを追加することで、カスタマー管理キーを使用するための許可を Amazon SES に付与する必要があります。

    Amazon SES がカスタマー管理キーを使用することを許可するために Amazon SES に次のポリシーステートメントを貼り付けます。

    { "Sid": "AllowSESToDecrypt", "Effect": "Allow", "Principal": { "Service":"ses.amazonaws.com" }, "Action": [ "kms:Decrypt", ], "Resource": "*" }
  • CreateImportJob オペレーションを Amazon SES API v2 で使用します。

注記

次の例では、AWS CLI がインストール済みであるものとします。AWS CLI のインストールおよび設定の詳細については、AWS Command Line Interface ユーザーガイドを参照してください。

コマンドラインで、以下のコマンドを入力します。s3バケット をAmazon S3 バケットの名前と置き換え、s3object をAmazon S3 オブジェクト名に置き換えます。

aws sesv2 create-import-job --import-destination ContactListDestination={ContactListName=ExampleContactListName,ContactListImportAction=PUT} --import-data-source S3Url="s3://s3bucket/s3object",DataFormat=CSV

例によるリスト管理のウォークスルー

次のウォークスルーでは、リスト管理を使用して連絡先を一覧表示し、ListManagementOptions を使用して E メールで連絡先リストとトピック名を指定する方法、およびサブスクリプションの解除リンクを挿入する方法の例を示します。

  1. AWS CLI を使用して連絡先を一覧表示するListContacts オペレーションを使用して、特定のトピックを購読している連絡先リストを取得すると共に、SendEmail オペレーションで、リストメンバーに E メールを送信できます。

    コマンドラインで以下のコマンドを入力します。

    aws sesv2 list-contacts --cli-input-json file://LIST-CONTACTS-JSON

    上記のコマンドで、LIST-CONTACTS-JSONListContacts リクエストの JSON ファイルへのパスに置き換えます。

    リクエストのための ListContacts input JSON ファイルの例を次に示します。

    { "ContactListName": "ExampleContactListName", "Filter": { "FilteredStatus": "OPT_IN", "TopicFilter": { "TopicName": "Cycling", "UseDefaultIfPreferenceUnavailable": true } }, "PageSize": 50 }

    FilteredStatus には、フィルタリングする購読ステータス (OPT_IN または OPT_OUT) が表示されます。

    TopicFilter は、結果が欲しいトピックを指定するオプションのフィルターです。上記の例では「Cycling」です。

    UseDefaultIfPreferenceUnavailable は、true または false の値を持つことができます。true の場合、連絡先にトピックに対する明示的な設定がなければ、トピックのデフォルト設定が使用されます。false の場合、明示的に定めた設定を持つ連絡先のみがフィルタリングの対象となります。

  2. ListManagementOptions を有効にしてメールを送信 — 上記の ListContactsオペレーションを使用してリスト内の連絡先を一覧表示した後、ListManagementOptions ヘッダーを利用して、連絡先リストとトピック名を指定し、SendEmail オペレーションを利用して各連絡先にメールを送信できます。

    SendEmail オペレーションで ListManagementOptions を使用するには、メールが属している contactListNametopicName を含めます (topicName はオプションです):

    ListManagementOptions: String contactListName String topicName

    連絡先リストにない受信者の E メールアドレスへの SendEmail リクエストに ListManagementOptions を含めると、連絡先がリストに自動的に作成されます。

    連絡先リストにある登録解除済み連絡先にメールを送信した場合、Amazon SES は E メールをバウンスします。つまり、登録解除した連絡先に送信されないようにするために SendEmail リクエストを更新する必要はありません。

  3. サブスクリプション解除のリンクの場所を示すListManagementOptions を利用する場合、Amazon SES を有効にし、{{amazonSESUnsubscribeUrl}} プレースホルダを使用して、SES でサブスクリプションの解除 URL を挿入する必要がある場所を指定して、E メールにサブスクリプションの解除フッターリンクを追加できるオプションがあります。プレースホルダの置き換えは、HTML および TEXT コンテンツタイプでのみサポートされます。プレースホルダは、最大 2 倍含めることができます。2 回以上使用した場合、最初の 2 つのオカレンスのみが置き換えられます。詳細については、「サブスクリプションの使用」を参照してください。

    または、SMTPインターフェイスで E メールを送信しながら、X-SES-LIST-MANAGEMENT-OPTIONS ヘッダーを使用してリストとトピック名を指定します。

    SMTP インターフェイスを使用して E メールを送信するときにリストとトピック名を指定するには、次の E メールヘッダーをメッセージに追加します。

    X-SES-LIST-MANAGEMENT-OPTIONS: {contactListName}; topic={topicName}