...

Amazon Simple Email Service - 開発者ガイド

by user

on
Category: Documents
1143

views

Report

Comments

Transcript

Amazon Simple Email Service - 開発者ガイド
Amazon Simple Email Service
開発者ガイド
API Version 2010-12-01
Amazon Simple Email Service 開発者ガイド
Amazon Simple Email Service: 開発者ガイド
Copyright © 2017 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.
Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any manner
that is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks not
owned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored by
Amazon.
Amazon Simple Email Service 開発者ガイド
Table of Contents
Amazon SES とは .............................................................................................................................. 1
Amazon SES を使用する理由 ....................................................................................................... 1
Amazon SES とその他の AWS サービス ....................................................................................... 1
このガイドの内容 ....................................................................................................................... 2
E メールを送信する ............................................................................................................................ 4
Amazon SES を使用して E メールを送信する方法 .......................................................................... 4
開始する方法 ............................................................................................................................. 5
概念 .......................................................................................................................................... 6
Amazon SESと配信可能性 ................................................................................................... 6
E メール送信プロセス ....................................................................................................... 10
E メールの形式と Amazon SES .......................................................................................... 12
クイックスタート ...................................................................................................................... 15
ステップ 1: AWS にサインアップ ....................................................................................... 15
ステップ 2: E メールアドレスの確認 ................................................................................... 15
ステップ 3: 最初の E メールの送信 ..................................................................................... 15
ステップ 4: バウンスや苦情の処理方法の検討 ....................................................................... 15
ステップ 5: Amazon SES サンドボックスの外への移動 .......................................................... 15
次のステップ .................................................................................................................... 16
はじめに .................................................................................................................................. 16
Amazon SES コンソールの使用 .......................................................................................... 16
Simple Mail Transfer Protocol(SMTP)の使用 ..................................................................... 16
AWS SDK の使用 ............................................................................................................. 17
開始する前に .................................................................................................................... 17
コンソールを使用して E メールを送信する ........................................................................... 17
SMTP を使用して E メールを送信する ................................................................................ 19
AWS SDK を使用して E メールを送信する ........................................................................... 27
E メールのセットアップ ............................................................................................................ 35
AWS にサインアップする .................................................................................................. 36
E メールアドレスとドメインの検証 ..................................................................................... 36
AWS アクセスキーの取得 .................................................................................................. 43
AWS SDK のダウンロード ................................................................................................. 44
カスタムの MAIL FROM ドメインを使用する ........................................................................ 44
SPF レコードを設定する ................................................................................................... 51
SMTP 認証情報の取得 ....................................................................................................... 51
サンドボックスの外への移動 .............................................................................................. 52
E メールの送信 ........................................................................................................................ 53
SMTP インターフェイス の使用 .......................................................................................... 54
API の使用 ....................................................................................................................... 79
E メールの認証 ........................................................................................................................ 86
SPF での E メールの認証 .................................................................................................. 87
DKIM での E メールの認証 ................................................................................................ 88
DMARC への準拠 ............................................................................................................. 95
送信アクティビティのモニタリング ............................................................................................. 96
コンソールまたは API を使用したモニタリング ..................................................................... 97
通知を使用したモニタリング .............................................................................................. 98
イベント発行を使用したモニタリング ................................................................................ 118
送信制限の管理 ....................................................................................................................... 167
送信制限のモニタリング ................................................................................................... 168
送信制限の引き上げ ......................................................................................................... 169
送信制限に達するとどうなるか ......................................................................................... 170
送信承認の使用 ....................................................................................................................... 171
送信承認の概要 ............................................................................................................... 172
送信承認ポリシー ............................................................................................................ 173
送信承認ポリシーの例 ...................................................................................................... 177
API Version 2010-12-01
iii
Amazon Simple Email Service 開発者ガイド
ID 所有者のタスク ...........................................................................................................
代理送信者のタスク .........................................................................................................
専用 IP アドレスの使用 ............................................................................................................
専用 IP のユースケース ....................................................................................................
専用 IP と共有 IP のトレードオフ .....................................................................................
専用 IP をリクエストおよび解放する方法 ...........................................................................
専用 IP のウォームアップ方法 ..........................................................................................
E メール送信のテスト ..............................................................................................................
Amazon SES およびセキュリティプロトコル ..............................................................................
E メール送信者から Amazon SES へ .................................................................................
Amazon SES から受信者へ ..............................................................................................
ベストプラクティス .................................................................................................................
配信可能性の向上 ............................................................................................................
受取人リストの取得と管理 ................................................................................................
バウンスと苦情の処理 ......................................................................................................
複数アカウントの使用 ......................................................................................................
トラブルシューティング ...........................................................................................................
配信に関する問題 ............................................................................................................
受け取った E メールに関する問題 .....................................................................................
E メール送信エラー .........................................................................................................
ドメインの確認に関する問題 .............................................................................................
DKIM に関する問題 .........................................................................................................
通知に関する問題 ............................................................................................................
サプレッションリストからの E メールアドレスの削除 ..........................................................
スループットを上げる ......................................................................................................
SMTP に関する問題 ........................................................................................................
SMTP 応答コード ...........................................................................................................
API エラーコード ............................................................................................................
エンフォースメントに関するよくある質問 ..........................................................................
IP ブラックリストに関するよくある質問 ............................................................................
E メールの受信 ...............................................................................................................................
メール受信の概念 ....................................................................................................................
受信者ベースの制御 .........................................................................................................
IP アドレスベースの制御 ..................................................................................................
E メール受信プロセス ......................................................................................................
E メール受信のご利用開始にあたって ........................................................................................
ステップ 1: 開始する前に .................................................................................................
ステップ 2: ドメインの検証 ..............................................................................................
ステップ 3: 受信ルールの設定 ...........................................................................................
ステップ 4: E メールの送信 ..............................................................................................
ステップ 5: 受信した E メールの参照 ................................................................................
ステップ 6: クリーンアップ ..............................................................................................
E メール受信のセットアップ ....................................................................................................
ユースケースの検討 .........................................................................................................
ドメインの検証 ...............................................................................................................
MX レコードの公開 .........................................................................................................
アクセス権限の付与 .........................................................................................................
IP アドレスフィルタの作成 ...............................................................................................
受信ルールセットの作成 ...................................................................................................
受信ルールの作成 ............................................................................................................
E メール受信の管理 .................................................................................................................
受信ルールセットの管理 ...................................................................................................
受信ルールの管理 ............................................................................................................
IP アドレスフィルタの管理 ...............................................................................................
エラーメトリクスの表示 ...................................................................................................
通知の使用 .....................................................................................................................
アクセスの制御 ...............................................................................................................................
API Version 2010-12-01
iv
182
186
192
192
193
194
195
197
199
199
200
200
200
201
202
202
202
203
204
204
206
208
209
210
211
212
214
216
219
231
234
234
235
235
235
236
236
237
237
238
238
239
239
240
241
242
242
244
245
245
257
257
259
261
262
263
272
Amazon Simple Email Service 開発者ガイド
Amazon SES にアクセスするための IAM ポリシーの作成 .............................................................
アクションの制限 ............................................................................................................
E メールアドレスの制限 ...................................................................................................
一般的な API の使用の制限 ..............................................................................................
Amazon SES の IAM ポリシーの例 ............................................................................................
すべての Amazon SES アクションへのフルアクセスを許可 ...................................................
E メール送信アクションへのアクセスのみを許可 .................................................................
送信期間の制限 ...............................................................................................................
受信者アドレスの制限 ......................................................................................................
"From" アドレスの制限 ....................................................................................................
E メール送信者の表示名の制限 .........................................................................................
バウンスや苦情のフィードバックの制限と送信先 .................................................................
API 呼び出しのログ作成 ...................................................................................................................
CloudTrail での Amazon SES 情報 ............................................................................................
Amazon SES ログファイルエントリの概要 .................................................................................
認証情報の使用 ...............................................................................................................................
API の使用 .....................................................................................................................................
クエリ API .............................................................................................................................
クエリリクエスト ............................................................................................................
リクエストの署名認証について .........................................................................................
GET と POST の例 .........................................................................................................
クエリレスポンス ............................................................................................................
リージョン .....................................................................................................................................
Amazon SES エンドポイント ...................................................................................................
メール送信エンドポイント ................................................................................................
メール受信エンドポイント ................................................................................................
リージョンの選択 ....................................................................................................................
Amazon SES API ............................................................................................................
Amazon SES SMTP インターフェイス ...............................................................................
Amazon SES コンソール .................................................................................................
サンドボックスのステータスと送信制限の引き上げ ......................................................................
検証 ......................................................................................................................................
E メールアドレスの検証 ...................................................................................................
ドメインの検証 ...............................................................................................................
Easy DKIM のセットアップ ......................................................................................................
サプレッションリスト ..............................................................................................................
フィードバック通知 .................................................................................................................
SMTP 認証情報 ......................................................................................................................
カスタムの MAIL FROM ドメイン .............................................................................................
送信承認 ................................................................................................................................
E メールの受信 .......................................................................................................................
制限 ..............................................................................................................................................
E メール送信に関連する制限 ....................................................................................................
送信制限 ........................................................................................................................
メッセージ制限 ...............................................................................................................
送信者と受取人の制限 ......................................................................................................
メール送信イベントの発行に関連する制限 ..........................................................................
Amazon EC2 関連の制限 ..................................................................................................
メール受信に関連する制限 ........................................................................................................
一般的な制限事項 ....................................................................................................................
Amazon SES API の制限 .................................................................................................
リソース ........................................................................................................................................
付録 ..............................................................................................................................................
付録: ヘッダーフィールド .........................................................................................................
付録: サポート対象外の添付ファイルの種類 ................................................................................
ドキュメント履歴 ............................................................................................................................
API Version 2010-12-01
v
272
273
273
274
274
274
275
275
275
276
276
277
278
278
279
287
290
290
290
293
293
294
296
296
296
297
297
297
297
297
297
298
298
298
298
298
298
299
299
299
299
301
301
301
301
302
302
302
303
303
303
304
306
306
308
309
Amazon Simple Email Service 開発者ガイド
Amazon SES を使用する理由
Amazon SES とは
Amazon Simple Email Service(Amazon SES)開発者ガイドへようこそ。Amazon SES は、ユーザー自身
の E メールアドレスとドメインを使用して E メールを送受信するための、簡単で費用効率の高い方法を提
供する E メールプラットフォームです。
たとえば、特価販売などのマーケティング E メールや、注文確認などの取引 E メール、ニュースレター
などのその他のタイプの通信文の送信に使用できます。Amazon SES を使用してメールを受信するとき
は、E メール自動応答システム、E メール受信停止システム、受信 E メールからカスタマーサポートチ
ケットを生成するアプリケーションなどのソフトウェアソリューションを開発できます。
使用した分に対してのみ料金が発生するため、ユーザーは送受信する E メールの量を自分の都合によって
調整できます。サービスの詳細、FAQ、料金情報については、Amazon SES の詳細ページを参照してくだ
さい。
Amazon SES を使用する理由
大規模な E メールソリューションを構築することは、ビジネスにとってしばしば複雑で高コストな課題
となります。E メールサーバーの管理、ネットワーク構成、IP アドレスの評価といったインフラストラ
クチャの課題に対処する必要があります。加えて、多くのサードパーティのメールソリューションでは、
契約や価格交渉だけでなく、かなりの初期費用が必要となります。Amazon SES はこれらの課題を解消
し、Amazon.com が大量のお客様に提供するために構築してきた長年の経験と、洗練された E メールイン
フラストラクチャの恩恵をご利用いただけます。
Amazon SES とその他の AWS サービス
Amazon SES では、他の AWS 製品がシームレスに統合されます。たとえば、次のようにすることができ
ます。
• AWS SDK または Amazon SES API を使用することにより、Amazon Elastic Compute Cloud (Amazon
EC2) インスタンスで動作している任意のアプリケーションに E メール機能を追加します。Amazon
EC2 インスタンスから Amazon SES 経由で E メールを送信する場合は、Amazon SES を無料で利用で
きます。
API Version 2010-12-01
1
Amazon Simple Email Service 開発者ガイド
このガイドの内容
• AWS Elastic Beanstalk を使用して E メール対応アプリケーション (Amazon SES を使用して顧客に
ニュースレターを送信するプログラムなど) を作成します。
• バウンスされた E メール、苦情が生成された E メール、受取人のメールサーバーに正常に配信された E
メールに関する通知を受け取るように、Amazon Simple Notification Service(Amazon SNS)をセット
アップします。Amazon SES を使用して E メールを受信するときに、E メールのコンテンツを Amazon
SNS トピックに公開することができます。
• AWS マネジメントコンソール を使用し、E メールの認証手段である Easy DKIM をセットアップしま
す。任意の DNS プロバイダーで Easy DKIM を使用できますが、特に、Amazon Route 53 でドメインを
管理する場合はセットアップが簡単です。
• E メール送信に対するユーザーアクセスを管理するには、AWS Identity and Access Management (IAM)
を使用します。
• 受信する E メールを Amazon Simple Storage Service (Amazon S3) に保存します。
• AWS Lambda 関数をトリガーすることで、受信する E メールに対してアクションを実行します。
• オプションで、受信する E メールを Amazon S3 バケット内で暗号化するには、AWS Key Management
Service (AWS KMS) を使用します。
• コンソールまたは Amazon SES API を使用して実行する Amazon SES API コールをログに記録するに
は、AWS CloudTrail を使用します。
• メール送信イベントを Amazon CloudWatch または Amazon Kinesis Firehose に発行します。メール
送信イベントを Firehose に発行した場合、Amazon Redshift、Amazon Elasticsearch Service、または
Amazon S3 でアクセスできます。
このガイドの内容
このガイドには以下のセクションがあります。
セクション
説明
E メールを送信する (p. 4)
Amazon SES を使用して E メールを送信する方法について説
明します。
E メールの受信 (p. 234)
Amazon SES を使用して E メールを受信する方法について説
明します。
アクセスの制御 (p. 272)
AWS Identity and Access Management (IAM) と Amazon SES
を使用して、どの Amazon SES リソースで、どの Amazon
SES API アクションをユーザーが実行できるかを指定する方
法を示します。
API 呼び出しのログ作成 (p. 278)
AWS CloudTrail を使用してログを記録できる Amazon SES
API のリストを示します。
認証情報の使用 (p. 287)
Amazon SES で使用できる認証情報の種類と、それらの認証
情報を使用できる場合を説明します。
API の使用 (p. 290)
Amazon SES クエリ API の使用方法を説明します。
リージョン (p. 296)
Amazon SES SMTP と、Amazon SES を利用できる AWS
リージョンの API エンドポイントの一覧を示し、Amazon
SES のエンドポイントを複数のリージョンで使用するときに
知っている必要のある情報を含んでいます。
制限 (p. 301)
Amazon SES の制限のリストを示します。
リソース (p. 304)
Amazon SES で作業するときに役に立つリソースを示しま
す。
API Version 2010-12-01
2
Amazon Simple Email Service 開発者ガイド
このガイドの内容
セクション
説明
付録 (p. 306)
ヘッダーフィールド、サポートされない添付の種類、スクリ
プトに関する補足情報を提供します。
Amazon SES のさまざまなトピックに関する技術的な考察については、「Amazon SES ブログ」をご覧
ください。お問い合わせを参照あるいは発信するには「Amazon SES フォーラム」をご覧ください。
API Version 2010-12-01
3
Amazon Simple Email Service 開発者ガイド
Amazon SES を使用して E メールを送信する方法
Amazon SES を介して E メールを送
信する
E メールを送信すると、その E メールは何らかのタイプのアウトバウンド E メールサーバーを通過しま
す。このような E メールサーバーは、インターネットサービスプロバイダー(ISP)や企業の IT 部門で
用意されますが、ユーザーが自分でセットアップする場合もあります。メールサーバーはメールコンテ
ンツを受け取り、E メール標準に準拠するようにフォーマットしてから、インターネット経由で送信しま
す。E メールは最終的に受信者(受取人の代わりに E メールを受け取る ISP などのエンティティ)に到達
する前に、他のサーバーを通過する場合があります。その後、受信者が E メールを受取人に送信します。
次の図は、基本的な E メール送信プロセスを示しています。
Amazon SES を使用する場合は、Amazon SES がアウトバウンド E メールサーバーになります。また
は、既存のメールサーバーを維持して、送信メールが Amazon SES 経由で送信されるように設定すること
もできます。この場合は、E メールクライアントの設定を変更する必要がありません。次の図は、E メー
ル送信プロセスでの Amazon SES の役割を示しています。
送信者は、さまざまな方法で E メールコンテンツを生成できます。メールクライアントアプリケーション
でメールを作成するか、E メールの自動生成プログラム(購入トランザクションのレスポンスとして注文
確認を送信するアプリケーションなど)を使用します。
Amazon SES を使用して E メールを送信する方法
Amazon SES を使用して E メールを送信するには、いくつかの方法があります。Amazon SES コンソー
ル、Simple Mail Transfer Protocol(SMTP)インターフェイス、または Amazon SES API の呼び出しを使
用できます。
• Amazon SES コンソール - システムをセットアップしていくつかのテスト E メールを送信するための最
も迅速な方法です。E メールキャンペーン開始の準備が完了した後は、このコンソールは主に送信アク
ティビティを監視するために使用されます。たとえば、送信済みの E メールの数や、受け取ったバウン
スおよび苦情の数をすばやく表示できます。
• SMTP インターフェイス - SMTP インターフェイスを使用して Amazon SES にアクセスするには、2 と
おりの方法があります。最初の方法は、SMTP 対応ソフトウェアで Amazon SES 経由の E メール送信
を設定する方法です。コーディングは必要ありません。たとえば、既存の E メールクライアントまたは
ソフトウェアプログラムで、現在のアウトバウンド E メールサーバーの代わりに Amazon SES SMTP
エンドポイントに接続するように設定します。
2 番目の方法は、SMTP と互換性のあるプログラミング言語(Java など)で、その言語の組み込み
SMTP 関数およびデータ型を使用して Amazon SES SMTP インターフェイスにアクセスする方法です。
API Version 2010-12-01
4
Amazon Simple Email Service 開発者ガイド
開始する方法
• Amazon SES API—HTTPS を介して Amazon SES クエリ API を直接呼び出すか、AWS Command Line
Interface、AWS Tools for Windows PowerShell、または AWS SDK を使用することができます。AWS
SDK は、Amazon SES API の低レベル機能を、詳細を自動的に処理する高レベルのデータ型および関数
の呼び出しでラップします。AWS SDK は Amazon SES のオペレーションだけでなく、基本的な AWS
機能(リクエスト認証、リクエスト再試行、エラー処理など)も提供します。
開始する方法
Amazon SES を初めて使用する方には、次のセクションを初めに読むことをおすすめします。
• Amazon SES クイック スタート (p. 15) - できるだけ迅速にセットアップしてテスト E メールを送信
する方法を示します。
• Amazon SES による E メール送信のご利用開始にあたって (p. 16) - Amazon SES コンソー
ル、SMTP インターフェイス、および AWS SDK を使用して E メールを送信する方法を示しま
す。C#、Java、および PHP の例を用意しています。
• Amazon SESと配信可能性 (p. 6) - Amazon SES を使用するときに理解を深めておく必要のある、E
メールの配信可能性の概念について説明します。
• Amazon SES の E メール送信プロセス (p. 10) - Amazon SES 経由で E メールを送信した場合の処理
の流れを示します。
• E メールの形式と Amazon SES (p. 12) - E メールの形式を確認し、Amazon SES に提供する必要の
ある情報を識別します。
次の表に示すセクションを読むことで、Amazon SES を使用した E メール送信の詳細を学ぶことができま
す。
セクション
説明
E メールのセットアップ (p. 35)
AWS へのサインアップ、AWS アクセスキーの取得、AWS
SDK のダウンロード、E メールアドレスやドメインの確
認、Amazon SES サンドボックスの外への移動を行う方法を
示します。
SMTP インターフェイス の使
用 (p. 54)
Amazon SES SMTP 認証情報を取得し、Amazon SES SMTP
エンドポイントに接続する方法について説明します。ま
た、Amazon SES 経由で E メールを送信するための E メー
ルクライアントおよびソフトウェアパッケージの設定方法の
例を示します。すべての送信 E メールが Amazon SES を通
過するように、既存の E メールサーバーを設定する方法につ
いても説明します。
API の使用 (p. 79)
Amazon SES API を使用して、フォーマットされたメールお
よび raw Eメールを送信する方法を示します。raw Eメールを
送信するときに多目的インターネットメール拡張(MIME)
標準を使用して、標準以外の文字を使用する方法および添付
ファイルを送信する方法について説明します。
E メールの認証 (p. 86)
Amazon SES で DKIM を使用して、送信元のドメインを所有
していることを ISP に示す方法について説明します。
送信アクティビティのモニタリン
グ (p. 96)
Amazon SES コンソールを使用するか、Amazon SES API を
呼び出して、使用統計(配信、バウンス、苦情の数など)お
よび送信制限を表示する方法を示します。バウンスおよび苦
情の通知を E メールで受け取る方法と、Amazon SNS 通知を
セットアップしてバウンス、苦情、および配信の通知を受け
取る方法も示します。
API Version 2010-12-01
5
Amazon Simple Email Service 開発者ガイド
概念
セクション
説明
送信制限の管理 (p. 167)
2 つの Amazon SES 送信制限(送信クォータと最大送信レー
ト)、これらの制限を緩和する方法、および制限に近付くと
生成されるエラーについて説明します。
配信可能性の向上 (p. 200)
E メールが受取人の受信箱に到達する割合を向上させる方法
のヒントを提供します。送信アクティビティの監視や、バウ
ンスおよび苦情の統計を低い値に抑える予防策の実施が含ま
れます。
送信承認の使用 (p. 171)
お客様の代わりにお客様の ID から E メールを送信すること
を他のユーザーに承認する方法を説明します。
専用 IP アドレスの使用 (p. 192)
Amazon SES での送信に共有 IP アドレスを使用するか専用
IP アドレスを使用するかを判断するために役立ちます。
E メール送信のテスト (p. 197)
Amazon SES メールボックスシミュレーターを使用して、送
信統計(バウンスおよび苦情メトリクスなど)に影響を与え
ずに一般的な E メールシナリオをシミュレートする方法につ
いて説明します。テストできるシナリオは、正常な配信、バ
ウンス、苦情、不在(OOTO)、およびサプレッションリス
トのアドレスです。
トラブルシューティング (p. 202)
配信問題の一般的な原因について説明し、一般的な Amazon
SES の例外および SMTP レスポンスコードを示します。
Amazon SES のさまざまなトピックに関する技術的な考察については、「Amazon SES ブログ」をご覧
ください。お問い合わせを参照あるいは発信するには「Amazon SES フォーラム」をご覧ください。
Amazon SES の E メール送信に関する概念
以下のセクションでは、Amazon SES がメールをどのように送信するのかについて基本的な情報を説明し
ます。
• Amazon SESと配信可能性 (p. 6)
• Amazon SES の E メール送信プロセス (p. 10)
• E メールの形式と Amazon SES (p. 12)
Amazon SES のさまざまなトピックに関する技術的な考察については、「Amazon SES ブログ」をご覧
ください。お問い合わせを参照あるいは発信するには「Amazon SES フォーラム」をご覧ください。
Amazon SESと配信可能性
送信者が望むのは、受取人が E メールを読み、有益であると見なし、スパムのラベルを付けないことで
す。つまり、E メールの配信可能性(メールが受取人の受信箱に到達する割合)を最大限に高める必要が
あります。このトピックでは、Amazon SES を使用する場合に理解を深めておく必要のある、E メールの
配信可能性の概念について説明します。
メールの配信可能性を最大限に高めるには、E メール配信の問題を理解して、問題を回避するステップを
積極的に実施し、送信メールのステータス情報を継続的に入手することが必要です。さらに、配信が成
API Version 2010-12-01
6
Amazon Simple Email Service 開発者ガイド
Amazon SESと配信可能性
功する確立を高めるために、必要に応じてメール送信プログラムを改善する必要があります。以下のセク
ションでは、これらのステップの基本となる概念について説明し、このプロセスの中で Amazon SES がど
のように役立つかを示します。
E メール配信問題の理解
ほとんどの場合、メッセージは対象の受取人に正常に配信されます。ただし、配信が失敗する場合や、送
信されたメールの受け取りを受取人が拒否する場合があります。以下のセクションで説明するバウンス、
苦情、およびサプレッションリストは、これらの配信問題に関連しています。
バウンス
受取人の受信者(ISP など)がメッセージを受取人に配信できなかった場合、受信者はそのメッセージを
Amazon SES にバウンスします。Amazon SES では、システムのセットアップ内容に応じて、E メール
または Amazon Simple Notification Service(Amazon SNS)を使用してバウンスされたメールについて通
知します。詳細については、「Amazon SES 通知を使用したモニタリング (p. 98)」を参照してくださ
い。
以下に示すように、ハードバウンスとソフトバウンスがあります。
• ハードバウンス – 永続的な E メール配信の障害。たとえば、メールボックスが存在しない場合で
す。Amazon SES は、DNS ルックアップの失敗を除いて、ハードバウンスを再試行しません。ハードバ
ウンスの原因となっている E メールアドレスに対して配信の試行を繰り返さないことを強くお勧めしま
す。
• ソフトバウンス - 一時的な E メール配信の障害。たとえば、メールボックスがいっぱいである、
接続が多すぎる(スロットリングとも呼ばれる)、または接続がタイムアウトになった場合で
す。Amazon SES では、ソフトバウンスは複数回、再試行されます。それでも E メールを配信できない
場合、Amazon SES は再試行を停止します。
Amazon SES は、以後再試行されないハードバウンスおよびソフトバウンスについて通知します。ただ
し、Amazon SES コンソールまたは GetSendStatistics API を使用して取得されるバウンス率とバウンス
メトリックに反映されるのはハードバウンスのみです。
バウンスには同期または非同期があります。同期バウンスは、送信者と受信者の E メールサーバーがアク
ティブに通信している間に発生します。非同期バウンスは、最初に受信者が E メールメッセージの配信を
承諾した後で、受取人への配信に失敗した場合に発生します。
苦情
ほどんどの E メールクライアントプログラムには、メッセージをスパムフォルダーに移動して ISP に転
送するためのボタン([Mark as Spam] など)が用意されています。また、ほとんどの ISP では、ユー
ザーが不要な E メールメッセージを転送して ISP による防止策をリクエストできる迷惑メール用アドレ
ス([email protected] など)を用意しています。どちらの場合も、受取人が苦情を申し立てます。ISP
がある送信者をスパム発信者であると判断し、Amazon SES がその ISP にフィードバックループをセット
アップしている場合、ISP は苦情を Amazon SES に送信します。Amazon SES はそのような苦情を受け
取ると、スパム発信者と見なされた送信者のシステムのセットアップに応じて、E メールまたは Amazon
SNS 通知でその送信者に苦情を転送します。詳細については、「Amazon SES 通知を使用したモニタリン
グ (p. 98)」を参照してください。苦情を申し立てている E メールアドレスに対して配信の試行を繰り
返さないことをお勧めします。
サプレッションリスト
Amazon SES サプレッションリストは、Amazon SES のお客様に対して最近ハードバウンスが発生した受
信者の E メールアドレスのリストです。サプレッションリストに登録されているアドレスに Amazon SES
経由で E メールを送信しようとした場合、Amazon SES の呼び出しは成功しますが、Amazon SES は、
API Version 2010-12-01
7
Amazon Simple Email Service 開発者ガイド
Amazon SESと配信可能性
この E メールを送信せず、代わりにハードバウンスとして扱います。ハードバウンスと同じく、ブラック
リストのバウンスは送信量上限やバウンス率にカウントされます。E メールアドレスは、サプレッション
リストに最大 14 日まで残ります。送信しようとしている E メールアドレスが有効であることがわかって
いる場合は、サプレッションリストの削除リクエストを送信できます。詳細については、「Amazon SES
サプレッションリストからの E メールアドレスの削除 (p. 210)」を参照してください。
積極的な対応
インターネットの E メールに関する最大の問題の 1 つは、未承諾一括 E メールつまりスパムです。ISP
では、顧客にスパムが送信されないように多くの防止策を実行しています。それに応じて、Amazon
SES では、ISP で E メールがスパムと見なされる可能性を低減するための積極的なステップを実施し
ます。Amazon SES は検証、認証、送信制限、およびコンテンツのフィルタリングを使用します。ま
た、Amazon SES は、ISP からの高信頼の評価を維持し、高品質の E メールを送信するようにユーザー
に要求します。Amazon SES ではこれらの作業の一部を自動的に行い(コンテンツのフィルタリング
など)、その他についてはツールが用意されているか(認証など)、適切な指示が示されます(送信制
限)。以下のセクションでは、それぞれの概念の詳細情報を提供します。
検証
残念ながらスパムの発信者は、E メールヘッダーを改ざんし、元のメールアドレスを偽装して、E メール
が別の送信元から送られたように見せかけることができます。ISP と Amazon SES の信頼関係を維持す
るために、Amazon SES は送信者が本人であることを確認する必要があります。したがって、送信者は送
信アイデンティティを保護するために、Amazon SES 経由で送信する E メールの送信元となるすべての
E メールアドレスを確認する必要があります。E メールアドレスを確認するには、Amazon SES コンソー
ルまたは Amazon SES API を使用します。また、ドメイン全体を確認することもできます。詳細につい
ては、「Amazon SES での E メールアドレスの検証 (p. 37)」および「Amazon SES でのドメインの検
証 (p. 39)」を参照してください。
アカウントが Amazon SES サンドボックスにまだある場合は、Amazon SES のメールボックスシミュ
レーターから提供されているアドレスを除く、すべての受取人のアドレスも確認する必要があります。サ
ンドボックスの外への移動については、「 Amazon SES サンドボックスの外への移動 (p. 52)」を参照
してください。メールボックスシミュレーターの詳細については、「Amazon SES E メール送信のテス
ト (p. 197)」を参照してください。
認証
認証は、本人であることを ISP に示す、もう 1 つの方法です。メールを認証するときに、自分がアカウン
トの所有者であり、E メールが転送中に変更されていないという証拠を提供します。場合によっては、ISP
は認証されない E メールの送信を拒否します。Amazon SES では、Sender Policy Framework (SPF) とド
メインキーアイデンティファイドメール (DKIM) の 2 つの認証方法がサポートされています。詳細につい
ては、「Amazon SES での E メールの認証 (p. 86)」を参照してください。
送信制限
ISP では、E メールの数量または頻度が突然急増する現象を検出すると、その送信者がスパム発信者であ
ることを疑い、E メールをブロックする場合があります。したがって、送信できる E メールメッセージの
数と送信レートを規制するために、すべての Amazon SES アカウントには一連の送信制限が割り当てられ
ます。これらの送信制限により、送信アクティビティを徐々に増やして ISP との信頼関係を守ることがで
きます。
Amazon SES には 2 つの送信制限があります。送信クォータ(24 時間以内に送信できるメッセージの最
大数)と最大送信レート(Amazon SES が 1 秒あたりにアカウントから受け付ける E メールの最大数)
です。ただし、Amazon SES の実際のメッセージ受信レートはこの最大送信レートよりも少ない場合があ
ります。新規ユーザーの場合、Amazon SES では毎日少量の E メールを送信できます。送信したメール
が ISP で許容されると、この制限は段階的に緩和されます。時間の経過とともに送信制限が次第に緩和さ
れ、より短い間隔でより多くの E メールを送信できるようになります。また、クォータをより迅速に増加
API Version 2010-12-01
8
Amazon Simple Email Service 開発者ガイド
Amazon SESと配信可能性
する必要がある場合は、クォータの増加を申請する SES Sending Limits Increase case を提出することも
できます。
送信制限の詳細および制限を緩和する方法については、「Amazon SES の送信制限の管理 (p. 167)」を
参照してください。
コンテンツのフィルタリング
多くの ISP では、コンテンツのフィルタリングを使用して、受信 E メールがスパムであるかどうかを判
断します。コンテンツフィルターは、疑わしいコンテンツを探し、E メールがスパムのプロファイルに適
合する場合はそのメールをブロックします。Amazon SES においてもコンテンツフィルターが使用されま
す。アプリケーションから Amazon SES にリクエストを送ると、Amazon SES で自動的に E メールメッ
セージがアセンブルされ、メッセージヘッダーおよび本文がスキャンされて、ISP でスパムと見なされる
可能性のあるコンテンツが含まれているかどうかが判断されます。Amazon SES で使用されているコンテ
ンツフィルターによってメッセージにスパムの疑いが生じた場合は、Amazon SES による評価が下がりま
す。メッセージがウイルスに感染している場合は、Amazon SES で完全に拒否されます。
評価
メール送信の評価とは、IP アドレス、E メールアドレス、または送信ドメインがスパムの発信元ではな
いことを確認する測定指標であり、非常に重要です。送信者の E メールが ISP から受取人の受信箱に配
信されるように、Amazon SES は ISP からの高い評価を維持します。同様に、送信者も Amazon SES
からの高信頼の評価を維持する必要があります。高品質なコンテンツを送信することにより、Amazon
SES との信頼関係を構築します。常に高品質なコンテンツを送信することで信頼性の評価が徐々に高く
なり、Amazon SES によって送信制限が緩和されます。バウンスおよび苦情が増えすぎると評価が下が
り、Amazon SES での送信制限が厳しくなったり、Amazon SES アカウントが停止されたりする場合があ
ります。
高い評価を維持する方法の 1 つは、システムをテストするときに、自分で作成した E メールアドレスに送
信するのではなくメールボックスシミュレーターを使用することです。メールボックスシミュレーターに
送信された E メールは、バウンスや苦情のメトリクスには影響しません。メールボックスシミュレーター
の詳細については、「Amazon SES E メール送信のテスト (p. 197)」を参照してください。
高品質 E メール
高品質 E メールは、受取人が価値を認めて受信を希望する E メールです。有益であるかどうかは受取人
によって異なり、その形式にはオファー、注文確認、領収書、ニュースレターなどがあります。ISP で品
質が低い(スパム)と見なされた E メールはブロックされるため、最終的に配信可能性は送信する E メー
ルの品質に左右されます。高品質 E メールを送信する方法の詳細については、「Amazon SES を使用する
際の配信可能性の向上 (p. 200)」および「Amazon Simple Email Service の E メール送信のベストプラク
ティスホワイトペーパー」を参照してください。
継続的な情報の入手
配信が失敗しても、受取人が E メールに対して苦情を申し立てても、Amazon SES によって E メールが
受取人のメールサーバーに正常に配信されても、Amazon SES の使用統計を簡単に監視できる機能と通知
を使用して問題を追跡することができます。
通知
E メールがバウンスされた場合、ISP は Amazon SES に通知し、Amazon SES は送信者に通知しま
す。Amazon SES は、Amazon SES が今後再試行しないハードバウンスとソフトバウンスについてお客様
に通知します。多くの ISP では苦情の転送も行われており、Amazon SES では主要な ISP に対する苦情
のフィードバックがセットアップ済みになっています。バウンス、苦情、および正常な配信に関する通知
を Amazon SES から受け取るには、2 とおりの方法があります。Amazon SNS を使用して通知を受け取る
ようにアカウントをセットアップするか、E メールで通知を受け取ることができます(バウンスおよび苦
API Version 2010-12-01
9
Amazon Simple Email Service 開発者ガイド
E メール送信プロセス
情のみ)。詳細については、「Amazon SES 通知を使用したモニタリング (p. 98)」を参照してくださ
い。
使用統計
Amazon SES の使用統計を利用して、失敗した配信を調べ、根本原因を判断して解決することができま
す。使用統計を表示するには、Amazon SES コンソールを使用するか、Amazon SES API を呼び出しま
す。配信、バウンス、苦情、およびウイルス感染により拒否された E メールの数を調べたり、送信制限を
超えていないかを確認したりできます。
E メール送信プログラムの向上
多数のバウンスや苦情が発生する場合は、E メール送信戦略を再評価する必要があります。バウンス、苦
情、および質の低い E メール送信の試行が多すぎると、迷惑メールの配信元と見なされ、AWS アカウン
トが停止されるおそれがあります。基本的に、Amazon SES を使用して高品質 E メールを送信し、受信を
希望する受信者にのみ E メールを送信する必要があります。詳細については、「Amazon SES を使用する
際の配信可能性の向上 (p. 200)」および「Amazon Simple Email Service の E メール送信のベストプラク
ティスホワイトペーパー」を参照してください。
Amazon SES の E メール送信プロセス
このトピックでは、Amazon SES でメールを送信したときに行われる処理と、E メール送信後に想定され
るさまざまな結果について説明します。次の図は、送信プロセスの概要を示しています。
1.
クライアントアプリケーションは、E メール送信者として動作し、Amazon SES にリクエストを送
り、1 人以上の受取人にメールを送信します。
2.
リクエストが有効な場合、Amazon SES は E メールを許可し、インターネット経由で受取人のレシー
バーに送信します。メッセージは Amazon SES に渡されると、通常は数ミリ秒内に発生する最初の配
信の試行ですぐに送信されるのが一般的です。
この時点で、さまざまな可能性があります。以下に例を示します。
3.
a.
b.
c.
ISP が、受取人の受信箱にメッセージを正常に配信します。
受取人の E メールアドレスが存在しないため、ISP が Amazon SES にバウンス通知を送信しま
す。Amazon SES は、その通知を送信者に転送します。
受取人がメッセージを受信したものの、そのメッセージをスパムと見なして、ISP に苦情を登録
します。その ISP に対して Amazon SES でフィードバックループがセットアップされている場
合は、苦情が Amazon SES に送信され、そこから送信者に転送されます。
以下のセクションでは、送信者が E メールリクエストを Amazon SES に送信した後、または Amazon
SES が E メールメッセージを受取人に送信した後に想定される結果について個々に説明します。
送信者が Amazon SES に E メールリクエストを送信した後
送信者が Amazon SES に E メール送信のリクエストを送ると、呼び出しが成功または失敗します。以下
のセクションでは、それぞれのケースで発生する状況を説明します。
リクエスト送信の成功
Amazon SES へのリクエストが成功すると、Amazon SES は成功のレスポンスを送信者に返します。こ
のメッセージには、リクエストを一意に識別する文字列であるメッセージ ID が含まれます。メッセー
ジ ID を使用すると、送信した E メールの識別や、送信中に発生した問題の追跡を行うことができま
す。Amazon SES では、リクエストパラメータに基づいて E メールメッセージをアセンブルし、メッセー
ジをスキャンして疑わしいコンテンツやウイルス感染を調べ、Simple Mail Transfer Protocol (SMTP) を使
用してインターネット経由で送信します。メッセージは、通常は数ミリ秒内に発生する最初の配信の試行
ですぐに送信されるのが一般的です。
API Version 2010-12-01
10
Amazon Simple Email Service 開発者ガイド
E メール送信プロセス
Note
Amazon SES が送信者のリクエストを正常に受け入れた後で、Amazon SES のコンテンツフィ
ルターによりメッセージのウイルス感染が検出された場合、Amazon SES はメッセージを削除
し、E メールで送信者に通知します。
リクエスト送信の失敗
送信者が Amazon SES に送った E メール送信リクエストが失敗した場合、Amazon SES ではエラーを含
むレスポンスを送信者に返して E メールを削除します。リクエストの失敗にはいくつかの理由が考えられ
ます。リクエストが適切にフォーマットされていない場合や、E メールアドレスが送信者によって検証さ
れていない場合などがあります。
リクエストが失敗したかどうかを判断する方法は、Amazon SES を呼び出す方法によって異なります。次
の例は、エラーと例外がどのように返されるかを示しています。
• Query(HTTPS)API(SendEmail または SendRawEmail)で Amazon SES を呼び出している場
合、そのアクションでエラーが返されます。詳細については、「Amazon Simple Email Service API
Reference」を参照してください。
• 例外を使用するプログラミング言語の AWS SDK を使用する場合は、Amazon SES の呼び出しによって
MessageRejectedException がスローされます(SDK によってはこの例外の名前が多少異なる場合があ
ります)。
• SMTP インターフェイスを使用する場合、送信者は SMTP レスポンスコードを受け取りますが、エラー
がどのように示されるかは送信者のクライアントによって異なります。一部のクライアントではエラー
コードが表示されますが、表示されないクライアントもあります。
Amazon SES で E メールを送信する場合に発生するエラーの詳細については、「Amazon SES の E メー
ル送信エラー (p. 204)」を参照してください。
Amazon SES による E メール送信後
送信者が Amazon SES に送ったリクエストが成功し、Amazon SES が E メールを送信すると、次の結果
のいずれかが発生します。
• 配信が成功し、受取人が E メールを拒否しない場合 - E メールは ISP により受け入れられ、ISP が E
メールを受取人に配信します。次の図は、正常な配信を示しています。
• ハードバウンス - 永続的な状態が原因でメールが ISP から拒否されるか、E メールアドレスが Amazon
SES サプレッションリストに含まれているためメールが Amazon SES に拒否されます。その E メー
ルアドレスが最近に Amazon SES のいずれかの顧客のハードバウンスの原因となった場合に、その E
メールアドレスは Amazon SES のサプレッションリストに含まれます。ISP のハードバウンスは、受
取人のアドレスが無効であるために発生する場合があります。ハードバウンス通知は ISP から Amazon
SES に送信されます。送信者のセットアップに応じて、E メールまたは Amazon Simple Notification
Service(Amazon SNS)を使用して送信者に通知されます。Amazon SES は、同じ方法でサプレッショ
ンリストのバウンスを送信者に通知します。次の図は、ISP からのハードバウンスのパスを示していま
す。
• ソフトバウンス - ISP がリクエストを処理できないほどビジーであったり、受信者の E メールボックス
がいっぱいであったりと、一時的な状態のため、ISP が受取人に E メールを配信できません。ドメイ
ンが存在しない場合も、ソフトバウンスが発生することがあります。その場合、ISP は Amazon SES
にソフトバウンス通知を返し、Amazon SES はドメインの E メールサーバーを見つけることができま
せん。いずれの場合も、Amazon SES は一定期間、E メールの配信を再試行します。その期間内に E
メールを配信できない場合、Amazon SES は E メールまたは Amazon SNS を通じてバウンス通知を送
信します。この再試行中に Amazon SES が E メールを受取人に配信できた場合、配信は成功です。次
の図は、ソフトバウンスを示しています。このケースでは、Amazon SES は E メールの送信を再試行
し、ISP は最終的に E メールを受取人に配信しています。
• 苦情 - メールは ISP に受け入れられて受取人に配信されますが、受取人がそのメールをスパムと見な
し、E メールクライアントの [Mark as spam] などのボタンをクリックします。Amazon SES がその ISP
API Version 2010-12-01
11
Amazon Simple Email Service 開発者ガイド
E メールの形式と Amazon SES
に対してフィードバックループをセットアップしている場合は、苦情の通知が Amazon SES に送信さ
れ、そこから送信者に転送されます。ほとんどの ISP は苦情を申告した受取人の E メールアドレスを提
供しないため、Amazon SES からの苦情通知で送信者に渡される受取人のリストは、Amazon SES が苦
情を受け取った ISP や元のメッセージの受取人に基づいて推定された、苦情を申告した可能性のある受
取人が記載されています。次の図は、苦情のパスを示しています。
• 自動応答 - E メールが ISP に受け入れられ、受取人に配信されます。ISP は自動応答(不在(OOTO)
メッセージなど)を Amazon SES に送信します。Amazon SES は、自動応答通知を送信者に転送しま
す。次の図は、自動応答を示しています。
Amazon SES に対応するプログラムで、自動レスポンスが生成されるメッセージの送信を再試行しない
ようにしてください。
Tip
Amazon SES メールボックスシミュレーターを使用して、正常な配信、バウンス、苦
情、OOTO をテストしたり、アドレスがサプレッションリストに含まれている場合にど
うなるかをテストしたりできます。詳細については、「Amazon SES E メール送信のテス
ト (p. 197)」を参照してください。
E メールの形式と Amazon SES
クライアントが Amazon SES にリクエストを送ると、Amazon SES では、Internet Message Format 仕
様(RFC 5322)に準拠した E メールメッセージを構築します。以下に説明するように、E メールはヘッ
ダー、本文、およびエンベロープで構成されます。
• ヘッダー - ルーティングの指示およびメッセージに関する情報が含まれています。例では、送信者のア
ドレス、受信者のアドレス、件名、および日付となっています。ヘッダーは、手紙の一番上に書かれる
情報に似ていますが、ヘッダーにはその他の数多くのタイプの情報(メッセージの形式など)を含める
ことができます。
• 本文 - メッセージ自体のテキストが含まれています。
• エンベロープ - SMTP セッション中に E メールクライアントとメールサーバーの間でやり取りされる実
際のルーティング情報が含まれています。この E メールエンベロープ情報は、封筒に書かれる情報に似
ています。E メールエンベロープのルーティング情報は、通常は E メールヘッダー内のルーティング情
報と同じですが、異なる場合もあります。たとえば、ブラインドカーボンコピー(BCC)を送信した場
合、エンベロープから取得される実際の受取人アドレスは、ヘッダーから取得されて受取人の E メール
クライアントに表示される「To」アドレスと同じではありません。
E メールのシンプルな例を次に示します。ヘッダーの後には空の行が続き、その後に E メールの本文が続
きます。エンベロープは E メール自体には含まれず、SMTP セッション中にクライアントとメールサー
バーの間で通信されるため、ここには示されていません。
Received: from abc.smtp-out.amazonses.com (123.45.67.89) by in.example.com (87.65.43.210);
Fri, 17 Dec 2010 14:26:22
From: "Andrew" <[email protected]>;
To: "Bob" <[email protected]>
Date: Fri, 17 Dec 2010 14:26:21 -0800
Subject: Hello
Message-ID: <[email protected]>
Accept-Language: en-US
Content-Language: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Hello, I hope you are having a good day.
API Version 2010-12-01
12
Amazon Simple Email Service 開発者ガイド
E メールの形式と Amazon SES
-Andrew
以下のセクションでは、E メールヘッダーと本文について説明し、Amazon SES を使用するときに提供す
る必要のある情報を示します。
E メールヘッダー
E メールメッセージごとに 1 個のヘッダーがあります。ヘッダーの各行にはフィールドが含まれ、その
後にコロン、その後にフィールド本文が続きます。メールクライアントでメールを読むときに、通常、E
メールクライアントには次のヘッダーフィールドの値が表示されます。
• To - メッセージの受信者の E メールアドレス。
• CC - メッセージのカーボンコピーの受信者の E メールアドレス。
• From - E メールの送信元の E メールアドレス。
• Subject - メッセージトピックの概要。
• Date - E メールが送信された日時。
これ以外にも、ルーティング情報を提供し、メッセージのコンテンツを説明するヘッダーフィールドが
多数あります。そのようなフィールドは、通常、E メールクライアントに表示されません。Amazon SES
が受け入れるヘッダーフィールドの完全なリストについては、「付録: ヘッダーフィールド (p. 306)」
を参照してください。Amazon SES を使用する場合は、特に「From」、「Reply-To」、および「ReturnPath」ヘッダーフィールドの違いを理解する必要があります。前述のように、「From」のアドレスはメッ
セージの送信者の E メールアドレスですが、「Reply-To」および「Return-Path」には次のような情報が
含まれています。
• Reply-To - 返信が送信される E メールアドレス。デフォルトでは、返信は元の送信者の E メールアドレ
スに送信されます。
• Return-Path - メッセージのバウンスおよび苦情が送信される E メールアドレス。「Return-Path」は、
「envelope from」、「envelope sender」、または「MAIL FROM」という名前になることもあります。
Note
Amazon SES を使用する場合は、常に「Return-Path」パラメータを設定して、バウンスを常時
把握し、バウンスの発生時に適切なアクションを実行できるようにすることをお勧めします。
バウンスされたメッセージと受取人を簡単に照合するために、可変エンベロープリターンパス(VERP)
を使用できます。VERP を使用することで、メッセージがバウンスされた場合にどの受取人からバウンス
されたかを自動的に把握できるように、受取人ごとに異なる「Return-Path」を設定できます。これによ
り、バウンスメッセージを開いて解析する必要がなくなります。
E メール本文
E メール本文には、メッセージのテキストが含まれています。本文は、次の形式で送信できます。
• HTML - 受取人の E メールクライアントで HTML を解釈できる場合は、フォーマットされたテキストお
よびハイパーリンクを本文に含めることができます。
• プレーンテキスト - 受取人の E メールクライアントがテキストベースの場合は、表示不可能な文字を本
文に含めることはできません。
• HTML とプレーンテキスト - 1 つのメッセージで両方の形式を使用して同じコンテンツを送信すると、
受信者の E メールクライアントでは機能に応じてどちらの形式で表示するかを決定します。
E メールメッセージを多数の受信者に送信する場合は、HTML とテキストの両方の形式で送信する方法が
適しています。HTML 対応 E メールクライアントを使用している受取人は、メッセージに埋め込まれたハ
API Version 2010-12-01
13
Amazon Simple Email Service 開発者ガイド
E メールの形式と Amazon SES
イパーリンクをクリックして表示できます。テキストベースの E メールクライアントを使用している受取
人については、URL をコピーしてウェブブラウザで表示できるように、URL を記載しておく必要がありま
す。
Amazon SES に提供する必要のある E メール情報
Amazon SES で E メールを送信する場合、指定する必要のある E メール情報は、Amazon SES をどのよ
うに呼び出すかによって異なります。最小限の情報を提供した場合は、Amazon SES ですべてのフォー
マットが自動的に処理されます。また、添付ファイルの送信などやや高度な作業を実行する場合は、raw
メッセージを自分自身で提供できます。以下のセクションでは、Amazon SES API、Amazon SES SMTP
インターフェイス、または Amazon SES コンソールを使用して E メールを送信するときに提供する必要
のある情報について説明します。
Amazon SES API
Amazon SES API を直接呼び出す場合は、SendEmail または SendRawEmail API を呼び出します。提供す
る必要がある情報の量は、呼び出す API によって異なります。
• SendEmail API では、送信元アドレス、宛先アドレス、メッセージの件名、メッセージ本文のみを提
供するだけで済みます。必要に応じて、「Reply-To」アドレスを指定できます。この API を呼び出す
と、Amazon SES では、E メールクライアントソフトウェアによる表示に最適化された、適切にフォー
マット済みのマルチパート多目的インターネットメール拡張(MIME)メールメッセージが自動的にア
センブルされます。詳細については、「Amazon SES API を使用してフォーマット済み E メールを送信
する (p. 81)」を参照してください。
• SendRawEmail API には、ヘッダー、MIME パーツ、およびコンテンツの種類を指定し、独自の raw E
メールメッセージをフォーマットして送信できる柔軟性があります。SendRawEmail は、通常は上級
ユーザーに利用されています。メッセージの本文とすべてのヘッダーフィールドは、Internet Message
Format 仕様(RFC 5322)に準拠した形式で入力する必要があります。詳細については、「Amazon
SES API を使用して raw Eメールを送信する (p. 81)」を参照してください。
AWS SDK を使用して Amazon SES API を呼び出す場合は、対応する関数(たとえば、Java の場合は
SendEmail や SendRawEmail)に上記の情報を指定します。
Amazon SES API を使用した E メール送信の詳細については、「Amazon SES API を使用して E メール
を送信する (p. 79)」を参照してください。
Amazon SES SMTP インターフェイス
SMTP インターフェイスで Amazon SES にアクセスする場合、SMTP クライアントアプリケーションで
メッセージがアセンブルされるため、提供する必要のある情報は使用するアプリケーションによって異な
ります。少なくとも、クライアントとサーバー間の SMTP 交換には、送信元アドレス、宛先アドレス、
およびメッセージデータが必要です。SMTP インターフェイスを使用していて、フィードバック転送が
有効になっている場合、バウンス、苦情、配信通知は "MAIL FROM" アドレスに送信されます。指定した
"Reply-To" アドレスはいずれも使用されません。
Amazon SES SMTP インターフェイスを使用した E メール送信の詳細については、「Amazon SES SMTP
インターフェイスを使用して E メールを送信する (p. 54)」を参照してください。
Amazon SES コンソール
Amazon SES コンソールを使用してメールを送信する場合、提供する必要のある情報の量は、フォーマッ
トされたメールまたは raw Eメールのどちらを送信するかによって異なります。
• フォーマットされた E メールを送信する場合、送信元アドレス、宛先アドレス、メッセージの件名、お
よびメッセージ本文を指定する必要があります。Amazon SES では、E メールクライアントソフトウェ
アによる表示に最適化された、適切にフォーマット済みのマルチパート MIME メールメッセージを自動
的にアセンブルします。また、Reply-To および Return-Path フィールドを指定することもできます。
API Version 2010-12-01
14
Amazon Simple Email Service 開発者ガイド
クイックスタート
• raw Eメールを送信する場合、送信元アドレス、宛先アドレス、およびメッセージコンテンツを指定しま
す。このコンテンツには、Internet Message Format 仕様(RFC 5322)に準拠した、メッセージ本文お
よびすべてのヘッダーフィールドを含める必要があります。
Amazon SES クイック スタート
この手順では、AWS へのサインアップ、E メールアドレスの確認、最初のメールの送信、バウンスや苦情
の処理方法の検討、Amazon Simple Email Service (Amazon SES) サンドボックスの外への移動の各ステッ
プについて説明します。
以下の場合、この手順を使用します。
• Amazon SES を試用している。
• プログラミングしないでテスト E メールを送信したい。
• できるだけ少ないステップでセットアップしたい。
ステップ 1: AWS にサインアップ
Amazon SES を利用する前に、AWS にサインアップする必要があります。AWS にサインアップすると、
アカウントが自動的にすべての AWS サービスにサインアップされます。
手順については、「AWS にサインアップする (p. 36)」を参照してください。
ステップ 2: E メールアドレスの確認
Amazon SES を介してメールアドレスからメールを送信する場合は、その前に、E メールアドレスを確認
してそのメールを所有していることを Amazon SES に示す必要があります。
手順については、「Amazon SES での E メールアドレスの検証 (p. 37)」を参照してください。
ステップ 3: 最初の E メールの送信
Amazon SES コンソールを使用して E メールを簡単に送信できます。アカウントはサンドボックスと呼ば
れるテスト環境に新規ユーザーとして作成されるため、確認した E メールアドレスでの E メール送受信の
みができます。
手順については、「Amazon SES コンソールを使用して E メールを送信する (p. 17)」を参照してくだ
さい。
ステップ 4: バウンスや苦情の処理方法の検討
次のステップに進む前に、バウンスや苦情の処理方法について検討する必要があります。少数の受取人に
送信する場合、E メールで受け取るバウンスや苦情のフィードバックを調査し、それらの受取人をメーリ
ングリストから削除するという簡単なプロセスになります。
詳細については、「バウンスと苦情の処理 (p. 202)」を参照してください。
ステップ 5: Amazon SES サンドボックスの外への移
動
未確認の E メールアドレスに E メールを送信する、1 日あたりに送信できる E メールの数を増やす、高速
で E メールを送信するためには、アカウントをサンドボックスの外に移動する必要があります。このプロ
セスでは、サポートセンターで SES Sending Limits Increase ケースを開く必要があります。
API Version 2010-12-01
15
Amazon Simple Email Service 開発者ガイド
次のステップ
サンドボックスの制限の詳細、また、サンドボックスの外への移動の申請方法の詳細については、「
Amazon SES サンドボックスの外への移動 (p. 52)」を参照してください。
次のステップ
• メールボックスシミュレーターへの E メールは送信クォータに加算されず、バウンス率や苦情率に
影響しないため、自身宛てに数通のテストメールを送信した後、Amazon SES メールボックスシミュ
レーターを使用して詳細なテストを行います。メールボックスシミュレーターの詳細については、
「Amazon SES E メール送信のテスト (p. 197)」を参照してください。
• 送信した E メールの数、バウンス数または受け取った苦情の数など、送信アクティビティをモニタリン
グします。詳細については、「Amazon SES 送信アクティビティのモニタリング (p. 96)」を参照し
てください。
• アドレスを個別に検証せずにドメイン内の E メールアドレスから E メールを送信できるように、ドメイ
ン全体を検証します。詳細については、「Amazon SES でのドメインの検証 (p. 39)」を参照してく
ださい。
• E メールを認証することにより、迷惑メールボックスではなく受取人の受信箱に E メールが配信される
可能性を高めます。詳細については、「Amazon SES での E メールの認証 (p. 86)」を参照してくだ
さい。
Amazon SES のさまざまなトピックに関する技術的な考察については、「Amazon SES ブログ」をご覧
ください。お問い合わせを参照あるいは発信するには「Amazon SES フォーラム」をご覧ください。
Amazon SES による E メール送信のご利用開始に
あたって
この入門用チュートリアルでは、Amazon Simple Email Service(Amazon SES)の設定と E メールの送信
方法をステップごとに説明します。最初に「Amazon SES を開始する前に (p. 17)」の情報を確認しま
す。次に、以下のいずれかの方法で E メールを送信します。動画の「Amazon SES の使用を開始する」も
用意しています。
Amazon SES E メールの料金については、Amazon SES の料金ページを参照してください。
Amazon SES コンソールの使用
最小限の設定で Amazon SES からテスト E メールの送信を開始する場合は、この方法を使用します。本
番の E メール送信キャンペーンを開始する準備が整ったら、別の送信方法に変更して、Amazon SES コン
ソールは主に送信業務を監視する目的で使用するようにしてください。
このチュートリアルを開始するには、「Amazon SES コンソールを使用して E メールを送信す
る (p. 17)」を参照してください。
Simple Mail Transfer Protocol(SMTP)の使用
プログラミングを利用して、または利用せずに Amazon SES SMTP インターフェイスから E メールを送
信する場合、この方法を以下のように使用します。
• SMTP 対応プログラミング言語を使用して、Amazon SES から E メールを送信できるようにアプリケー
ションを有効にします。C#、Java、および PHP の例を用意しています。このチュートリアルを開始す
るには、「プログラミングで Amazon SES の SMTP インターフェイスにアクセスして E メールを送信
する (p. 19)」を参照してください。
API Version 2010-12-01
16
Amazon Simple Email Service 開発者ガイド
AWS SDK の使用
• Amazon SES にメールを転送するようにメールサーバーをセットアップするか、Amazon SES を利用
して E メールを送信するように E メールクライアントや SMTP 対応ソフトウェアパッケージをセット
アップします。Postfix、Sendmail、Exim メールサーバーのほか、E メールクライアントの Microsoft
Outlook や問題管理ソフトウェアの Jira の例を用意しています。このチュートリアルを開始するには、
「既存の E メールサーバーまたは SMTP 対応アプリケーションを設定して Amazon SES から E メール
を送信する (p. 27)」を参照してください。
これらの SMTP 送信方法の基本的な情報については、「SMTP を使用して Amazon SES から E メールを
送信する (p. 19)」を参照してください。
AWS SDK の使用
この方法では、基盤となる Amazon SES クエリインターフェイスの詳細を扱うライブラリを使用し
て、Amazon SES APIを呼び出します。C#、Java、および PHP の例を用意しています。このチュートリ
アルを開始するには、「AWS SDK を使用して Amazon SES から E メールを送信する (p. 27)」を参照
してください。
Amazon SES のさまざまなトピックに関する技術的な考察については、「Amazon SES ブログ」をご覧
ください。お問い合わせを参照あるいは発信するには「Amazon SES フォーラム」をご覧ください。
Amazon SES を開始する前に
開始する前に、Amazon SES をセットアップする必要があります。E メール送信に Amazon SES コン
ソール、SMTP インターフェイス、Amazon SES API のいずれを使用する場合も、以下の操作を行う必要
があります。
• AWS にサインアップ – Amazon SES またはその他の AWS サービスを使用する前に、AWS アカウント
を作成する必要があります。詳細については、AWS にサインアップする (p. 36) を参照してくださ
い。
• メールアドレスまたはドメインの確認 – Amazon SES を使用してメールを送信する際には、常に
「From」アドレスを見て、E メールの所有者が自分であると示されていることを確認する必要があり
ます。サンドボックスの場合、「To」アドレスも確認する必要があります。E メールアドレスまたは
ドメイン全体を検証できます。詳細については、Amazon SES での E メールアドレスとドメインの検
証 (p. 36) を参照してください。
この一覧には、すべての E メール送信方法で必要なセットアップ作業が含まれています。E メール送信
方法別のその他のセットアップ作業については、関連する入門セクションに記載されています。すべての
セットアップ作業の一覧を確認するには、「Amazon SES で E メールをセットアップする (p. 35)」を
参照してください。
Amazon SES コンソールを使用して E メールを送信
する
Amazon SES で E メールを送信する最も簡単な方法は、Amazon SES コンソールを使用することです。
ただしコンソールでは手動で情報を入力する必要があるため、テストメールとして送信するのは、通常は
2~3 件です。Amazon SES の使用を開始した後は、Amazon SES の SMTP インターフェイスまたは API
を使用して E メールを送信できますが、送信アクティビティのモニタリングにはコンソールが便利です。
Important
この入門用チュートリアルでは、受信されたかどうかを確認できるように自分宛に E メールを送
信します。さらにテストを行う場合や負荷テストを行う場合には、Amazon SES メールボックス
API Version 2010-12-01
17
Amazon Simple Email Service 開発者ガイド
コンソールを使用して E メールを送信する
シミュレーターを使用してください。メールボックスシミュレーターに送信される E メールは、
送信クォータに加算されず、バウンス率や苦情率の計算にも含まれません。詳細については、
「Amazon SES E メール送信のテスト (p. 197)」を参照してください。
これらの手順を実行する前に、セットアップ手順を「Amazon SES を開始する前に (p. 17)」で必ず確
認してください。
Amazon SES コンソールから E メールメッセージを送信するには
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (Amazon SES コンソー
ル) を開きます。AWS アカウントにサインインしていない場合、このリンクから自動的にサインイン
ページにつながります。サインイン後、Amazon SES コンソールが表示されます。
2.
Amazon SES コンソールの [Navigation] ペインで、[Identity Management] の下にある [Email
Addresses] を選択し、「Amazon SES での E メールアドレスの検証 (p. 37)」で確認したメールア
ドレスを表示します。
3.
ID のリストから、確認した E メールアドレスのチェックボックスを選択します。
4.
[Send a Test Email] を選択します。
5.
[Send Test Email] ダイアログボックスで、[Email Format] を選択します。次の 2 つの選択肢がありま
す。
• フォーマット済み - これは最も簡単な選択肢です。[Body] テキストボックスにメッセージのみを
入力する場合には、この選択肢をお選びください。E メールを送信すると、Amazon SES はテキス
トを E メール形式に変換します。
• Raw - HTML や添付ファイルなどが含まれるさらに複雑なメッセージを送信する場合には、この
選択肢をお選びください。このような柔軟性により、Amazon SES API を使用して raw Eメールを
送信する (p. 81) に説明されるように各自でメッセージのフォーマットを設定する必要がありま
す。次に、[Body] テキストボックスにヘッダーを含めたすべてのフォーマット済みメッセージを貼
り付けます。HTML が含まれる次の例を使用して、Raw E メールフォーマットでテストメールを
送信してみてください。このメッセージをコピーし、[Body] テキストボックスにすべてを貼り付
けます。 E メールが HTML ではなくシンプルテキストとしてフォーマットされることがないよう
に、MIME-Version ヘッダーと Content-Type ヘッダーの間に空白行がないことを確認します。
Subject: Amazon SES Raw Email Test
MIME-Version: 1.0
Content-Type: text/html
<!DOCTYPE html>
<html>
<body>
<h1>This text should be large, because it is formatted as a header in HTML.</h1>
<p>Here is a formatted link: <a href="http://docs.aws.amazon.com/ses/latest/
DeveloperGuide/Welcome.html">Amazon Simple Email Service ######</a>.</p>
</body>
</html>
6.
[Send Test Email] ダイアログボックスで、残りのフィールドを入力します。Amazon SES サンド
ボックスで作業している場合には、[To] 欄のアドレスが正しいことを確認します。詳細については、
「Amazon SES での E メールアドレスの検証 (p. 37)」を参照してください。
7.
[Send Test Email] を選択します。
8.
E メールの宛先の E メールクライアントにサインインします。送信した E メールメッセージを確認し
ます。
API Version 2010-12-01
18
Amazon Simple Email Service 開発者ガイド
SMTP を使用して E メールを送信する
SMTP を使用して Amazon SES から E メールを送信
する
Amazon SES の SMTP インターフェイスで電子メールを送信するには、SMTP 対応のプログラミング言
語、メールサーバー、またはアプリケーションを使用できます。開始する前に、「Amazon SES を開始す
る前に (p. 17)」の手順を確認します。また、以下の追加情報を取得する必要があります。
• Amazon SES SMTP エンドポイントに接続する Amazon SES SMTP のユーザー名とパスワー
ド。Amazon SES SMTP のユーザー名とパスワードを取得するには、「Amazon SES SMTP 認証情報を
取得する (p. 55)」を参照してください。
Important
SMTP 認証情報は、AWS の認証情報とは異なります。認証情報の詳細については、「Amazon
SES での認証情報の使用 (p. 287)」を参照してください。
• Amazon SES SMTP ホスト名。email-smtp.us-east-1.amazonaws.com (us-east-1 リージョンの場
合)、email-smtp.us-west-2.amazonaws.com (us-west-2 リージョンの場合)、または email-smtp.euwest-1.amazonaws.com (eu-west-1 リージョンの場合) です。
• Amazon SES SMTP インターフェイスポート番号。接続方法によって異なります。詳細については、
「Amazon SES SMTP エンドポイントに接続する (p. 58)」を参照してください。
SMTP 認証情報を取得した後、Amazon SES SMTP エンドポイントに接続して、E メール送信を開始でき
ます。この入門用チュートリアルでは、以下の方法による Amazon SES SMTP インターフェイスからの E
メール送信について説明します。
• プログラミングで Amazon SES の SMTP インターフェイスにアクセスして E メールを送信す
る (p. 19)
• 既存の E メールサーバーまたは SMTP 対応アプリケーションを設定して Amazon SES から E メールを
送信する (p. 27)
Amazon SES SMTP インターフェイスの詳細については、「Amazon SES SMTP インターフェイスを使用
して E メールを送信する (p. 54)」を参照してください。
プログラミングで Amazon SES の SMTP インターフェイスにア
クセスして E メールを送信する
SMTP 対応のプログラミング言語を使用して、Amazon SES の SMTP インターフェイスにアクセスできま
す。SMTP 認証情報と Amazon SES SMTP ホスト名およびポート番号を使用して、プログラミング言語の
SMTP 生成機能によって E メールを送信します。
「SMTP を使用して Amazon SES から E メールを送信する (p. 19)」を確認した後、以下のいずれかの
チュートリアルを選択します。
• C# で Amazon SES の SMTP インターフェイスから E メールを送信する (p. 19)
• Java で Amazon SES の SMTP インターフェイスから E メールを送信する (p. 22)
• PHP で Amazon SES の SMTP インターフェイスから E メールを送信する (p. 24)
C# で Amazon SES の SMTP インターフェイスから E メールを送信する
次の手順では、Microsoft Visual Studio を使用してコンソールアプリケーションを作成し、C# コードを変
更して Amazon SES から E メールを送信する方法について説明します。プロジェクトテンプレートに基
づいた新しいプロジェクト作成のプロセスは、Microsoft Visual Studio の異なるエディションでもほぼ共通
していますが、こちらでは Microsoft Visual Studio Professional 2012 を使用した手順を見ます。
API Version 2010-12-01
19
Amazon Simple Email Service 開発者ガイド
SMTP を使用して E メールを送信する
以下の手順を実行する前に、「Amazon SES を開始する前に (p. 17)」と「SMTP を使用して Amazon
SES から E メールを送信する (p. 19)」に記載されているセットアップ作業を完了します。
Important
この入門用チュートリアルでは、受信されたかどうかを確認できるように自分宛に E メールを送
信します。さらにテストを行う場合や負荷テストを行う場合には、Amazon SES メールボックス
シミュレーターを使用してください。メールボックスシミュレーターに送信される E メールは、
送信クォータに加算されず、バウンス率や苦情率の計算にも含まれません。詳細については、
「Amazon SES E メール送信のテスト (p. 197)」を参照してください。
C# で Amazon SES の SMTP インターフェイスを使用して E メールを送信するには
1.
2.
次のステップを実行し、Visual Studio にコンソールプロジェクトを作成します。
a.
Microsoft Visual Studio を開きます。
b.
[File] メニューで [New] を選択し、[Project] を選択します。
c.
[New Project] ダイアログボックスの左ペインで、[Installed]、[Templates]、[Visual C#] の順に展
開します。
d.
[Visual C#] の下の [Windows] を選択します。
e.
f.
[Console Application] を選択します。
[Name] フィールドに、AmazonSESSample と入力します。ダイアログボックスの表示は以下の図の
ようになります。
g. [OK] を選択します。
Visual Studio プロジェクトで、Program.cs のすべてのコンテンツを次のコードに置き換えます。
using System;
namespace AmazonSESSample
{
class Program
{
static void Main(string[] args)
{
const String FROM = "[email protected]";
address. This address must be verified.
const String TO = "[email protected]";
If your account is still in the
// Replace with your "From"
// Replace with a "To" address.
// sandbox, this address must
be verified.
const String SUBJECT = "Amazon SES test (SMTP interface accessed using
C#)";
const String BODY = "This email was sent through the Amazon SES SMTP
interface by using C#.";
// Supply your SMTP credentials below. Note that your SMTP credentials are
different from your AWS credentials.
const String SMTP_USERNAME = "YOUR_SMTP_USERNAME"; // Replace with your
SMTP username.
const String SMTP_PASSWORD = "YOUR_SMTP_PASSWORD"; // Replace with your
SMTP password.
// Amazon SES SMTP host name. This example uses the #### (####) region.
const String HOST = "email-smtp.us-west-2.amazonaws.com";
// The port you will connect to on the Amazon SES SMTP endpoint. We are
choosing port 587 because we will use
// STARTTLS to encrypt the connection.
const int PORT = 587;
API Version 2010-12-01
20
Amazon Simple Email Service 開発者ガイド
SMTP を使用して E メールを送信する
// Create an SMTP client with the specified host name and port.
using (System.Net.Mail.SmtpClient client = new
System.Net.Mail.SmtpClient(HOST, PORT))
{
// Create a network credential with your SMTP user name and password.
client.Credentials = new System.Net.NetworkCredential(SMTP_USERNAME,
SMTP_PASSWORD);
// Use SSL when accessing Amazon SES. The SMTP session will begin on an
unencrypted connection, and then
// the client will issue a STARTTLS command to upgrade to an encrypted
connection using SSL.
client.EnableSsl = true;
// Send the email.
try
{
Console.WriteLine("Attempting to send an email through the Amazon
SES SMTP interface...");
client.Send(FROM, TO, SUBJECT, BODY);
Console.WriteLine("Email sent!");
}
catch (Exception ex)
{
Console.WriteLine("The email was not sent.");
Console.WriteLine("Error message: " + ex.Message);
}
}
Console.Write("Press any key to continue...");
Console.ReadKey();
}
}
}
3.
Program.cs で、以下の E メールアドレスを独自の値に置き換えます。
Important
E メールアドレスでは、大文字と小文字は区別されます。確認したアドレスと完全に一致す
ることを確認してください。
• [email protected] – 「From」の E メールアドレスに置き換えます。このアドレスを確認
してから、プログラムを実行してください。詳細については、「Amazon SES での E メールアドレ
スとドメインの検証 (p. 36)」を参照してください。
• [email protected] – 「To」の E メールアドレスに置き換えます。アカウントがサンド
ボックスにまだある場合は、このアドレスを使用前に確認する必要があります。詳細については、
「 Amazon SES サンドボックスの外への移動 (p. 52)」を参照してください。
4.
Program.cs で、以下の SMTP 認証情報を「Amazon SES SMTP 認証情報を取得する (p. 55)」で取
得した値に置き換えます。
Important
SMTP 認証情報は、AWS の認証情報とは異なります。認証情報の詳細については、
「Amazon SES での認証情報の使用 (p. 287)」を参照してください。
• YOUR_SMTP_USERNAME – SMTP ユーザー名に置き換えます。SMTP ユーザー名の認証情報は
20 文字の文字と数字の並びであり、意味のある名前ではありません。
• YOUR_SMTP_PASSWORD – SMTP パスワードに置き換えます。
5.
(任意)SMTP エンドポイント Amazon SES を 米国西部 (オレゴン) 以外のリージョンで使用する場
合、Program.cs の HOST を使用するエンドポイントに変更する必要があります。Amazon SES エン
ドポイントのリストについては、「リージョンと Amazon SES (p. 296)」を参照してください。
API Version 2010-12-01
21
Amazon Simple Email Service 開発者ガイド
SMTP を使用して E メールを送信する
6.
Program.cs を保存します。
7.
プロジェクトを構築します。[Build]、[Build Solution] の順に選択します。
8.
プログラムを実行します。[Debug]、[Start Debugging] の順に選択します。
9.
プログラムのコンソール出力をレビューして、正常に送信できたことを確認します。("Email sent!"
と表示されます)。
10. 受取人のアドレスの E メールクライアントにログインします。送信した E メールメッセージを確認し
ます。
Java で Amazon SES の SMTP インターフェイスから E メールを送信する
この例では、SMTP インターフェイスを使用して Amazon SES から E メールを送信するのに、Eclipse
IDE for Java EE Developers と JavaMail API を使用します。JavaMail API は Java EE プラットフォー
ムに含まれており、Java SE プラットフォームで使用するオプションパッケージとして利用できま
す。JavaMail API をインストールしていない場合は、JavaMail からインストールします。
Important
このチュートリアルには、JavaMail 1.5 以上が必要です。
以下の手順を実行する前に、「Amazon SES を開始する前に (p. 17)」と「SMTP を使用して Amazon
SES から E メールを送信する (p. 19)」に記載されているセットアップ作業を完了します。
Important
この入門用チュートリアルでは、受信されたかどうかを確認できるように自分宛に E メールを送
信します。さらにテストを行う場合や負荷テストを行う場合には、Amazon SES メールボックス
シミュレーターを使用してください。メールボックスシミュレーターに送信される E メールは、
送信クォータに加算されず、バウンス率や苦情率の計算にも含まれません。詳細については、
「Amazon SES E メール送信のテスト (p. 197)」を参照してください。
Java で Amazon SES の SMTP インターフェイスを使用して E メールを送信するには
1.
次のステップを実行し、Eclipse でプロジェクトを作成します。
a.
Eclipse を開きます。
b.
Eclipse で、[File] を選択し、[New]、[Java Project] の順に選択します。
c.
[Create a Java Project] ダイアログボックスで、プロジェクト名を入力し、[Next] を選択します。
d.
[Java Settings] ダイアログボックスの [Libraries] タブを選択します。
e.
[Add External JARs] を選択します。
f.
JavaMail のインストールを参照して、mail.jar を選択した後、[Open] を選択します。[Java
Settings] ダイアログボックスの表示は、以下の図のようになります。
g.
[Java Settings] ダイアログボックスの [Finish] を選択します。
2.
Eclipse で、[Package Explorer] ウィンドウのプロジェクトを展開します。
3.
プロジェクトの下の [src] ディレクトリを右クリックし、[New]、[Class] の順に選択します。
4.
[New Java Class] ダイアログボックスの [Name] フィールドに AmazonSESSample と入力し、[Finish]
を選択します。
5.
AmazonSESSample.java のすべてのコンテンツを以下のコードに置き換えます。
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
public class AmazonSESSample {
API Version 2010-12-01
22
Amazon Simple Email Service 開発者ガイド
SMTP を使用して E メールを送信する
static final String FROM = "[email protected]";
address. This address must be verified.
static final String TO = "[email protected]";
If your account is still in the
// Replace with your "From"
// Replace with a "To" address.
// sandbox, this address must be
verified.
static final String BODY = "This email was sent through the Amazon SES SMTP
interface by using Java.";
static final String SUBJECT = "Amazon SES test (SMTP interface accessed using
Java)";
// Supply your SMTP credentials below. Note that your SMTP credentials are
different from your AWS credentials.
static final String SMTP_USERNAME = "YOUR_SMTP_USERNAME"; // Replace with your
SMTP username.
static final String SMTP_PASSWORD = "YOUR_SMTP_PASSWORD"; // Replace with your
SMTP password.
// Amazon SES SMTP host name. This example uses the #### (####) region.
static final String HOST = "email-smtp.us-west-2.amazonaws.com";
// The port you will connect to on the Amazon SES SMTP endpoint. We are choosing
port 25 because we will use
// STARTTLS to encrypt the connection.
static final int PORT = 25;
public static void main(String[] args) throws Exception {
// Create a Properties object to contain connection configuration information.
Properties props = System.getProperties();
props.put("mail.transport.protocol", "smtps");
props.put("mail.smtp.port", PORT);
// Set properties indicating that we want to use STARTTLS to encrypt the
connection.
// The SMTP session will begin on an unencrypted connection, and then the client
// will issue a STARTTLS command to upgrade to an encrypted connection.
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.starttls.required", "true");
// Create a Session object to represent a mail session with the specified
properties.
Session session = Session.getDefaultInstance(props);
// Create a message with the specified information.
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(FROM));
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(TO));
msg.setSubject(SUBJECT);
msg.setContent(BODY,"text/plain");
// Create a transport.
Transport transport = session.getTransport();
// Send the message.
try
{
System.out.println("Attempting to send an email through the Amazon SES SMTP
interface...");
// Connect to Amazon SES using the SMTP username and password you specified
above.
transport.connect(HOST, SMTP_USERNAME, SMTP_PASSWORD);
API Version 2010-12-01
23
Amazon Simple Email Service 開発者ガイド
SMTP を使用して E メールを送信する
// Send the email.
transport.sendMessage(msg, msg.getAllRecipients());
System.out.println("Email sent!");
}
catch (Exception ex) {
System.out.println("The email was not sent.");
System.out.println("Error message: " + ex.getMessage());
}
finally
{
// Close and terminate the connection.
transport.close();
}
}
}
6.
AmazonSESSample.java で、以下の E メールアドレスを独自の値に置き換えます。
Important
E メールアドレスでは、大文字と小文字は区別されます。確認したアドレスと完全に一致す
ることを確認してください。
• [email protected] – 「From」の E メールアドレスに置き換えます。このアドレスを確認
してから、プログラムを実行してください。詳細については、「Amazon SES での E メールアドレ
スとドメインの検証 (p. 36)」を参照してください。
• [email protected] – 「To」の E メールアドレスに置き換えます。アカウントがサンド
ボックスにまだある場合は、このアドレスを使用前に確認する必要があります。詳細については、
「 Amazon SES サンドボックスの外への移動 (p. 52)」を参照してください。
7.
AmazonSESSample.java で、以下の SMTP 認証情報を「Amazon SES SMTP 認証情報を取得す
る (p. 55)」で取得した値に置き換えます。
Important
SMTP 認証情報は、AWS の認証情報とは異なります。認証情報の詳細については、
「Amazon SES での認証情報の使用 (p. 287)」を参照してください。
• YOUR_SMTP_USERNAME – SMTP ユーザー名の認証情報に置き換えます。SMTP ユーザー名の認
証情報は 20 文字の文字と数字の並びであり、意味のある名前ではありません。
• YOUR_SMTP_PASSWORD – SMTP パスワードに置き換えます。
8.
(任意)SMTP エンドポイント Amazon SES を 米国西部 (オレゴン) 以外のリージョンで使用す
る場合、AmazonSESSample.java の HOST を使用するエンドポイントに変更する必要がありま
す。Amazon SES エンドポイントのリストについては、「リージョンと Amazon SES (p. 296)」を
参照してください。
9.
AmazonSESSample.java を保存します。
10. プロジェクトを構築します。[Project]、[Build Project] の順に選択します。(このオプションが無効の
場合、自動構築が有効になっている可能性があります。)
11. プログラムを開始して E メールを送信します。[Run] を選択した後、もう一度 [Run] を選択します。
12. プログラムのコンソール出力をレビューして、正常に送信できたことを確認します。("Email sent!"
と表示されます)。
13. 受取人のアドレスの E メールクライアントにログインします。送信した E メールメッセージを確認し
ます。
PHP で Amazon SES の SMTP インターフェイスから E メールを送信する
この例では PEAR (PHP Extension and Application Repository) を使用して、Amazon SES の SMTP イン
ターフェイスで E メールを送信します。
API Version 2010-12-01
24
Amazon Simple Email Service 開発者ガイド
SMTP を使用して E メールを送信する
Important
このチュートリアルでは、受信を確認できるように自分宛に E メールを送信します。さらにテス
トを行う場合や負荷テストを行う場合には、Amazon SES メールボックスシミュレーターを使用
してください。メールボックスシミュレーターに送信される E メールは、送信クォータに加算さ
れず、バウンス率や苦情率の計算にも含まれません。詳細については、「Amazon SES E メール
送信のテスト (p. 197)」を参照してください。
前提条件
開始する前に、次のタスクを実行します。
• Amazon SES で E メールアドレスを検証する – Amazon SES で E メールを送信するには、送信者の E
メールアドレスを所有していることを検証する必要があります。アカウントが Amazon SES サンドボッ
クスにまだある場合は、受取人の E メールアドレスも検証する必要があります。E メールアドレスを検
証する最も簡単な方法は、Amazon SES コンソールを使用することです。詳細については、「検証手
順 (p. 38)」を参照してください。
• SMTP 認証情報を取得する – Amazon SES の SMTP インターフェイスにアクセスするには、Amazon
SES の SMTP ユーザー名とパスワードが必要です。SMTP 認証情報は、AWS 認証情報と同じではあ
りません。SMTP 認証情報は、Amazon SES コンソールの SMTP 設定ページで確認できます。SMTP
認証情報の詳細については、「Amazon SES SMTP 認証情報を取得する (p. 55)」を参照してくださ
い。
• PHP をインストールする – PHP は、http://php.net/downloads.php から入手できます。PHP をインス
トールした後、コマンドプロンプトから PHP を実行できるように環境変数に PHP のパスを追加しま
す。
• PEAR パッケージマネージャをインストールする – https://pear.php.net/manual/en/
installation.getting.php から入手できる PEAR パッケージマネージャを使用すると、必要な PEAR パッ
ケージをダウンロードできます。
• PEAR Mail パッケージと Net_SMTP パッケージをインストールする – PEAR Mail パッケージは
http://pear.php.net/package/Mail から、PEAR Net_SMTP パッケージは https://pear.php.net/package/
Net_SMTP から入手できます。
手順
次の手順は、PHP で Amazon SES を使用して E メールを送信する方法を示しています。
PHP で Amazon SES の SMTP インターフェイスを使用して E メールを送信するには
1.
amazon-ses-smtp-sample.php というファイルを作成します。テキストエディターでファイルを開
き、次のコードを貼り付けます。
<?php
// Replace [email protected] with your "From" address.
// This address must be verified with Amazon SES.
define('SENDER', '[email protected]');
// Replace [email protected] with a "To" address. If your account
// is still in the sandbox, this address must be verified.
define('RECIPIENT', '[email protected]');
// Replace smtp_username with your Amazon SES SMTP user name.
define('USERNAME','smtp_username');
// Replace smtp_password with your Amazon SES SMTP password.
define('PASSWORD','smtp_password');
// If you're using Amazon SES in a region other than #### (####),
// replace email-smtp.us-west-2.amazonaws.com with the Amazon SES SMTP
API Version 2010-12-01
25
Amazon Simple Email Service 開発者ガイド
SMTP を使用して E メールを送信する
// endpoint in the appropriate region.
define('HOST', 'email-smtp.us-west-2.amazonaws.com');
// The port you will connect to on the Amazon SES SMTP endpoint.
define('PORT', '587');
// Other message information
define('SUBJECT','Amazon SES test (SMTP interface accessed using PHP)');
define('BODY','This email was sent through the Amazon SES SMTP interface by using
PHP.');
require_once 'Mail.php';
$headers = array (
'From' => SENDER,
'To' => RECIPIENT,
'Subject' => SUBJECT);
$smtpParams = array (
'host' => HOST,
'port' => PORT,
'auth' => true,
'username' => USERNAME,
'password' => PASSWORD
);
// Create an SMTP client.
$mail = Mail::factory('smtp', $smtpParams);
// Send the email.
$result = $mail->send(RECIPIENT, $headers, BODY);
if (PEAR::isError($result)) {
echo("Email not sent. " .$result->getMessage() ."\n");
} else {
echo("Email sent!"."\n");
}
?>
2.
amazon-ses-smtp-sample.php で、以下の内容を独自の値に置き換えます。
• [email protected] – Amazon SES で検証したメールアドレスに置き換えます。詳細について
は、「E メールアドレスとドメインの検証 (p. 36)」を参照してください。Amazon SES では、E
メールアドレスの大文字と小文字が区別されます。検証したアドレスと完全に一致するアドレスを
入力してください。
• [email protected] – 受取人のアドレスに置き換えます。アカウントがサンドボックスにまだ
ある場合は、このアドレスを使用前に確認する必要があります。詳細については、「 Amazon SES
サンドボックスの外への移動 (p. 52)」を参照してください。検証したアドレスと完全に一致する
アドレスを入力してください。
• smtp_username – SMTP ユーザー名認証情報に置き換えます。この認証情報は、Amazon SES コ
ンソールの SMTP 設定ページから取得できます。これは、AWS アクセスキー ID とは異なりま
す。SMTP ユーザー名の認証情報は 20 文字の文字と数字の並びであり、意味のある名前ではあり
ません。
• smtp_password – SMTP パスワードに置き換えます。このパスワードは、Amazon SES コンソー
ルの SMTP 設定ページから取得できます。これは、AWS シークレットアクセスキーとは異なりま
す。
• (オプション) email-smtp.us-west-2.amazonaws.com – 米国西部 (オレゴン) 以外のリージョンで
Amazon SES SMTP エンドポイントを使用する場合は、使用するリージョンの Amazon SES SMTP
エンドポイントに置き換えます。Amazon SES SMTP エンドポイントのリストは、「リージョンと
Amazon SES (p. 296)」を参照してください。
API Version 2010-12-01
26
Amazon Simple Email Service 開発者ガイド
AWS SDK を使用して E メールを送信する
3.
amazon-ses-smtp-sample.php を保存します。
4.
プログラムを実行するには、amazon-ses-smtp-sample.php と同じディレクトリでコマンドプロンプ
トを開き、「php amazon-ses-smtp-sample.php」と入力します。
5.
出力を確認します。送信が成功した場合は、"Email sent!" と表示されます。
6.
受取人のアドレスの E メールクライアントにログインします。送信した E メールメッセージを確認し
ます。
既存の E メールサーバーまたは SMTP 対応アプリケーションを
設定して Amazon SES から E メールを送信する
プログラミングを行わずに、メールサーバー、E メールクライアント、E メール送信ソフトウェアパッ
ケージを設定して、Amazon SES からメッセージを送信できます。
最初に、「SMTP を使用して Amazon SES から E メールを送信する (p. 19)」を確認します。次に、
メールを Amazon SES に転送するメールサーバーの設定方法を紹介する、以下のいずれかのトピックを確
認します。
• Amazon SES と Postfix の連携 (p. 64)
• Amazon SES と Sendmail の連携 (p. 68)
• Amazon SES を Exim に統合する (p. 75)
E メールクライアントの Microsoft Outlook を設定して Amazon SES から E メールを送信する方法につい
ては、「Amazon SES を介して送信するために、E メールクライアントを設定する (p. 59)」を参照し
てください。
課題管理ソフトウェアパッケージの Jira を設定して Amazon SES から E メールを送信する方法について
は、「ソフトウェアパッケージから Amazon SES を介して E メールを送信する (p. 61)」を参照してく
ださい。
AWS SDK を使用して Amazon SES から E メールを
送信する
Amazon SES API を使用して E メールを送信するには、Query インターフェイスを直接使用できま
す。AWS SDK を使用して、HTTP のリクエストとレスポンスのアセンブルや解析など、低レベルの詳細
を処理することもできます。
AWS SDK を使用して E メールを送信する前に、「Amazon SES を開始する前に (p. 17)」の手順を確
認します。また、このチュートリアルでは以下が必要になります。
• AWS SDK のダウンロード – AWS SDK for .NET または AWS SDK for Java をダウンロードし、インス
トールします。詳細については、「AWS SDK のダウンロード (p. 44)」を参照してください。
• AWS 認証情報の取得 – プログラミングにより Amazon SES にアクセスするのに、AWS アクセスキー
が必要です。詳細については、「AWS アクセスキーの取得 (p. 43)」を参照してください。
使用する SDK をインストールして、AWS の認証情報を取得した後、以下のいずれかの例を使用し
て、Amazon SES から E メールを送信できます。
• AWS SDK for .NET を使用して Amazon SES から E メールを送信する (p. 28)
• AWS SDK for Java を使用して Amazon SES から E メールを送信する (p. 30)
• AWS SDK for PHP を使用して Amazon SES から E メールを送信する (p. 33)
API Version 2010-12-01
27
Amazon Simple Email Service 開発者ガイド
AWS SDK を使用して E メールを送信する
AWS SDK for .NET を使用して Amazon SES から E メールを送
信する
次の手順では、Microsoft Visual Studio と AWS Toolkit for Visual Studio を使用して AWS SDK プロジェク
トを作成し、C# コードを変更して Amazon SES から E メールを送信する方法について説明します。プロ
ジェクトテンプレートに基づいた新しいプロジェクト作成のプロセスは、Microsoft Visual Studio の異なる
エディションでもほぼ共通していますが、こちらでは Microsoft Visual Studio Professional 2012 を使用し
た手順を見ます。
この手順を開始する前に、「Amazon SES を開始する前に (p. 17)」と「AWS SDK を使用して Amazon
SES から E メールを送信する (p. 27)」に記載されているセットアップ作業を完了します。
Important
この入門用チュートリアルでは、受信されたかどうかを確認できるように自分宛に E メールを送
信します。さらにテストを行う場合や負荷テストを行う場合には、Amazon SES メールボックス
シミュレーターを使用してください。メールボックスシミュレーターに送信される E メールは、
送信クォータに加算されず、バウンス率や苦情率の計算にも含まれません。詳細については、
「Amazon SES E メール送信のテスト (p. 197)」を参照してください。
AWS SDK for .NET v.2 を使用して E メールを送信するには
1.
2.
次のステップを実行し、Visual Studio で AWS プロジェクトを作成します。
a.
Visual Studio を開きます。
b.
[File] メニューで [New] を選択し、[Project] を選択します。
c.
[New Project] ダイアログボックスの左ペインで、[Installed]、[Templates]、[Visual C#] の順に展
開します。
d.
[Visual C#] の下の [AWS] を選択します。
e.
[AWS Empty Project] を選択します。
f.
[Name] フィールドに、AmazonSESSample と入力します。ダイアログボックスの表示は以下の図の
ようになります。
g.
[OK] を選択します。
[AWS Access Credentials] ダイアログボックスで、既存のアカウントを選択するか、以下の情報を入
力します。
• 表示名 – アカウントを識別する名前を入力します。次回、Visual Studio で AWS プロジェクトを作
成するときは、このアカウントを選択できるため、再度情報を入力する必要はありません。
• アクセスキー ID – 「AWS アクセスキーの取得 (p. 43)」で取得した AWS アクセスキー ID を入
力します。
• シークレットアクセスキー – 「AWS アクセスキーの取得 (p. 43)」で取得した AWS シークレッ
トアクセスキーを入力します。
• アカウント番号 – (任意)AWS アカウント番号を入力します。AWS アカウント番号を確認するに
は、AWS マネジメントコンソールの [Security Credentials] ページで、[Account Identifiers] を選択
します。(AWS アカウントにログインしていない場合、こちらのリンクから、まず AWS アカウン
トのサインインページにつながります)。ページの最下部の、[Account Identifiers] の下に AWS ア
カウント ID が表示されます。
• デフォルトリージョン – 接続する Amazon SES エンドポイントの AWS リージョンを選択しま
す。サンドボックスステータス、送信制限、Amazon SES ID 関連の設定は、指定された AWS
リージョンに固有のものです。Amazon SES をセットアップする AWS リージョンを必ず選択し
てください。Amazon SES がサポートする AWS リージョンのリストは、「リージョンと Amazon
SES (p. 296)」を参照してください。
3.
[OK] を選択します。
4.
Visual Studio プロジェクトで、Program.cs のすべてのコンテンツを次のコードに置き換えます。
API Version 2010-12-01
28
Amazon Simple Email Service 開発者ガイド
AWS SDK を使用して E メールを送信する
using
using
using
using
System;
System.Collections.Generic;
Amazon.SimpleEmail;
Amazon.SimpleEmail.Model;
namespace AmazonSESSample
{
class Program
{
public static void Main(string[] args)
{
const String FROM = "[email protected]"; // Replace with your "From"
address. This address must be verified.
const String TO = "[email protected]"; // Replace with a "To" address.
If your account is still in the
// sandbox, this address must be verified.
const String SUBJECT = "Amazon SES test (AWS SDK for .NET)";
const String BODY = "This email was sent through Amazon SES by using the
AWS SDK for .NET.";
// Construct an object to contain the recipient address.
Destination destination = new Destination();
destination.ToAddresses = (new List<string>() { TO });
// Create the subject and body of the message.
Content subject = new Content(SUBJECT);
Content textBody = new Content(BODY);
Body body = new Body(textBody);
// Create a message with the specified subject and body.
Message message = new Message(subject, body);
// Assemble the email.
SendEmailRequest request = new SendEmailRequest(FROM, destination,
message);
// Choose the AWS region of the Amazon SES endpoint you want to connect to.
Note that your sandbox
// status, sending limits, and Amazon SES identity-related settings are
specific to a given
// AWS region, so be sure to select an AWS region in which you set up
Amazon SES. Here, we are using
// the #### (####) region. Examples of other regions that Amazon SES
supports are USEast1
// and EUWest1. For a complete list, see http://docs.aws.amazon.com/ses/
latest/DeveloperGuide/regions.html
Amazon.RegionEndpoint REGION = Amazon.RegionEndpoint.USWest2;
// Instantiate an Amazon SES client, which will make the service call.
AmazonSimpleEmailServiceClient client = new
AmazonSimpleEmailServiceClient(REGION);
// Send the email.
try
{
Console.WriteLine("Attempting to send an email through Amazon SES by
using the AWS SDK for .NET...");
client.SendEmail(request);
Console.WriteLine("Email sent!");
}
catch (Exception ex)
{
API Version 2010-12-01
29
Amazon Simple Email Service 開発者ガイド
AWS SDK を使用して E メールを送信する
Console.WriteLine("The email was not sent.");
Console.WriteLine("Error message: " + ex.Message);
}
Console.Write("Press any key to continue...");
Console.ReadKey();
}
}
}
5.
Program.cs で、以下の内容を独自の値に置き換えます。
Important
E メールアドレスでは、大文字と小文字は区別されます。確認したアドレスと完全に一致す
ることを確認してください。
• [email protected] – 「From」の E メールアドレスに置き換えます。このアドレスを確認
してから、プログラムを実行してください。詳細については、「Amazon SES での E メールアドレ
スとドメインの検証 (p. 36)」を参照してください。
• [email protected] – 「To」の E メールアドレスに置き換えます。アカウントがサンド
ボックスにまだある場合は、このアドレスを使用前に確認する必要があります。詳細については、
「 Amazon SES サンドボックスの外への移動 (p. 52)」を参照してください。
• REGION – 接続する Amazon SES エンドポイントの AWS リージョンに設定します。サンドボック
スステータス、送信制限、Amazon SES ID 関連の設定は、指定された AWS リージョンに固有の
ものです。Amazon SES をセットアップする AWS リージョンを必ず選択してください。この例で
は、米国西部 (オレゴン) リージョンを使用しています。Amazon SES がサポートするその他のリー
ジョンの例には、USEast1 と EUWest1 があります。Amazon SES がサポートするすべての AWS
リージョンのリストは、「リージョンと Amazon SES (p. 296)」を参照してください。
6.
Program.cs を保存します。
7.
プロジェクトを構築します。[Build]、[Build Solution] の順に選択します。
8.
プログラムを実行します。[Debug]、[Start Debugging] の順に選択します。
9.
プログラムのコンソール出力をレビューして、正常に送信できたことを確認します。("Email sent!"
と表示されます)。
10. 受取人のアドレスの E メールクライアントにログインします。送信した E メールメッセージを確認し
ます。
AWS SDK for Java を使用して Amazon SES から E メールを送
信する
以下の手順では、Eclipse IDE for Java EE Developers と AWS Toolkit for Eclipse を使用して AWS SDK プ
ロジェクトを作成し、Java コードを変更して Amazon SES から E メールを送信する方法について説明し
ます。環境変数から AWS の認証情報を取得します。
この手順を開始する前に、「Amazon SES を開始する前に (p. 17)」と「AWS SDK を使用して Amazon
SES から E メールを送信する (p. 27)」に記載されているセットアップ作業を完了します。
Important
この入門用チュートリアルでは、受信されたかどうかを確認できるように自分宛に E メールを送
信します。さらにテストを行う場合や負荷テストを行う場合には、Amazon SES メールボックス
シミュレーターを使用してください。メールボックスシミュレーターに送信される E メールは、
送信クォータに加算されず、バウンス率や苦情率の計算にも含まれません。詳細については、
「Amazon SES E メール送信のテスト (p. 197)」を参照してください。
API Version 2010-12-01
30
Amazon Simple Email Service 開発者ガイド
AWS SDK を使用して E メールを送信する
AWS SDK for Java を使用して E メールを送信するには
1.
AWS_ACCESS_KEY_ID という環境変数を作成し、自分の AWS アクセスキー ID を指定します。環境
変数の設定手順は、ご利用のオペレーティングシステムによって異なります。AWS アクセスキー ID
は AKIAIOSFODNN7EXAMPLE のようになります。
2.
AWS_SECRET_ACCESS_KEY という環境変数を作成し、AWS シークレットアクセスキーを指定し
ます。AWS シークレットアクセスキーは wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY のようにな
ります。
3.
以下のステップを実行し、Eclipse で AWS Java プロジェクトを作成します。
a.
Eclipse を開きます。
b.
Eclipse で、[File] を選択し、[New]、[AWS Java Project] の順に選択します。[AWS Java Project]
がオプションとして表示されない場合は、[Other] を選択してください。
c.
[Create an AWS Java Project] ダイアログボックスで、プロジェクト名を入力します。
d.
[Finish] を選択します。
4.
Eclipse で、[Package Explorer] ウィンドウのプロジェクトを展開します。
5.
プロジェクトの下の [src] ディレクトリを右クリックし、[New]、[Class] の順に選択します。
6.
[Java Class] ダイアログボックスの [Name] フィールドに AmazonSESSample と入力し、[Finish] を選択
します。
7.
AmazonSESSample.java のすべてのコンテンツを以下のコードに置き換えます。
import
import
import
import
java.io.IOException;
com.amazonaws.services.simpleemail.*;
com.amazonaws.services.simpleemail.model.*;
com.amazonaws.regions.*;
public class AmazonSESSample {
static final String FROM = "[email protected]"; // Replace with your "From"
address. This address must be verified.
static final String TO = "[email protected]"; // Replace with a "To" address.
If your account is still in the
// sandbox, this address must be
verified.
static final String BODY = "This email was sent through Amazon SES by using the AWS
SDK for Java.";
static final String SUBJECT = "Amazon SES test (AWS SDK for Java)";
public static void main(String[] args) throws IOException {
// Construct an object to contain the recipient address.
Destination destination = new Destination().withToAddresses(new String[]{TO});
// Create the subject and body of the message.
Content subject = new Content().withData(SUBJECT);
Content textBody = new Content().withData(BODY);
Body body = new Body().withText(textBody);
// Create a message with the specified subject and body.
Message message = new Message().withSubject(subject).withBody(body);
// Assemble the email.
SendEmailRequest request = new
SendEmailRequest().withSource(FROM).withDestination(destination).withMessage(message);
try
{
API Version 2010-12-01
31
Amazon Simple Email Service 開発者ガイド
AWS SDK を使用して E メールを送信する
System.out.println("Attempting to send an email through Amazon SES by using
the AWS SDK for Java...");
// Instantiate an Amazon SES client, which will make the service call. The
service call requires your AWS credentials.
// Because we're not providing an argument when instantiating the client,
the SDK will attempt to find your AWS credentials
// using the default credential provider chain. The first place the chain
looks for the credentials is in environment variables
// AWS_ACCESS_KEY_ID and AWS_SECRET_KEY.
// For more information, see http://docs.aws.amazon.com/sdk-for-java/v1/
developer-guide/credentials.html
AmazonSimpleEmailServiceClient client = new
AmazonSimpleEmailServiceClient();
// Choose the AWS region of the Amazon SES endpoint you want to connect to.
Note that your sandbox
// status, sending limits, and Amazon SES identity-related settings are
specific to a given AWS
// region, so be sure to select an AWS region in which you set up Amazon
SES. Here, we are using
// the #### (####) region. Examples of other regions that Amazon SES
supports are US_EAST_1
// and EU_WEST_1. For a complete list, see http://docs.aws.amazon.com/ses/
latest/DeveloperGuide/regions.html
Region REGION = Region.getRegion(Regions.US_WEST_2);
client.setRegion(REGION);
// Send the email.
client.sendEmail(request);
System.out.println("Email sent!");
}
catch (Exception ex)
{
System.out.println("The email was not sent.");
System.out.println("Error message: " + ex.getMessage());
}
}
}
8.
AmazonSESSample.java で、以下の内容を独自の値に置き換えます。
Important
E メールアドレスでは、大文字と小文字は区別されます。確認したアドレスと完全に一致す
ることを確認してください。
• [email protected] – 「From」の E メールアドレスに置き換えます。このアドレスを確認
してから、プログラムを実行してください。詳細については、「Amazon SES での E メールアドレ
スとドメインの検証 (p. 36)」を参照してください。
• [email protected] – 「To」の E メールアドレスに置き換えます。アカウントがサンド
ボックスにまだある場合は、このアドレスを使用前に確認する必要があります。詳細については、
「 Amazon SES サンドボックスの外への移動 (p. 52)」を参照してください。
• REGION – 接続する Amazon SES エンドポイントの AWS リージョンに設定します。サンドボック
スステータス、送信制限、Amazon SES ID 関連の設定は、指定された AWS リージョンに固有の
ものです。Amazon SES をセットアップする AWS リージョンを必ず選択してください。この例で
は、米国西部 (オレゴン) リージョンを使用しています。Amazon SES がサポートするその他の地域
の例には、US_EAST_1 と EU_WEST_1 があります。Amazon SES がサポートするすべての AWS
リージョンのリストは、「リージョンと Amazon SES (p. 296)」を参照してください。
9.
AmazonSESSample.java を保存します。
10. プロジェクトを構築します。[Project]、[Build Project] の順に選択します。(このオプションが無効の
場合、自動構築が有効になっている可能性があります。)
API Version 2010-12-01
32
Amazon Simple Email Service 開発者ガイド
AWS SDK を使用して E メールを送信する
11. プログラムを開始して E メールを送信します。[Run] を選択した後、もう一度 [Run] を選択します。
12. プログラムのコンソール出力をレビューして、正常に送信できたことを確認します。("Email sent!"
と表示されます)。
13. 受取人のアドレスの E メールクライアントにログインします。送信した E メールメッセージを確認し
ます。
AWS SDK for PHP を使用して Amazon SES から E メールを送
信する
このトピックでは、AWS SDK for PHP を使用して Amazon SES から E メールを送信する方法を示しま
す。
Important
このチュートリアルでは、受信を確認できるように自分宛に E メールを送信します。さらにテス
トを行う場合や負荷テストを行う場合には、Amazon SES メールボックスシミュレーターを使用
してください。メールボックスシミュレーターに送信される E メールは、送信クォータに加算さ
れず、バウンス率や苦情率の計算にも含まれません。詳細については、「Amazon SES E メール
送信のテスト (p. 197)」を参照してください。
前提条件
開始する前に、次のタスクを実行します。
• Amazon SES で E メールアドレスを検証する – Amazon SES で E メールを送信するには、送信者の E
メールアドレスを所有していることを検証する必要があります。アカウントが Amazon SES サンドボッ
クスにまだある場合は、受取人の E メールアドレスも検証する必要があります。E メールアドレスを検
証する最も簡単な方法は、Amazon SES コンソールを使用することです。詳細については、「検証手
順 (p. 38)」を参照してください。
• AWS 認証情報を取得する – SDK を使用して Amazon SES にアクセスするには、AWS アクセスキー ID
と AWS シークレットアクセスキーが必要です。認証情報は、AWS マネジメントコンソールの [Security
Credentials] ページを使用して確認できます。認証情報の詳細については、「Amazon SES での認証情
報の使用 (p. 287)」を参照してください。
• PHP をインストールする – PHP は、http://php.net/downloads.php から入手できます。このチュートリ
アルでは、バージョン 5.5 以上の PHP が必要です。PHP をインストールした後、コマンドプロンプト
から PHP を実行できるように環境変数に PHP のパスを追加します。
• AWS SDK for PHP バージョン 3.x をインストールする—ダウンロードとインストールの手順について
は、AWS SDK for PHP のドキュメントを参照してください。
手順
以下の手順は、AWS SDK for PHP を使用して Amazon SES で E メールを送信する方法を示しています。
AWS SDK for PHP を使用して Amazon SES から E メールを送信するには
1.
次の環境変数を作成して、AWS セキュリティ認証情報を設定します。AWS 認証情報をセットアップ
する別の方法については、AWS SDK for PHP のドキュメントを参照してください。
Note
環境変数の作成手順は、ご利用のオペレーティングシステムによって異なります。
a.
AWS_ACCESS_KEY_ID という環境変数を作成し、自分の AWS アクセスキー ID を指定しま
す。AWS アクセスキー ID は AKIAIOSFODNN7EXAMPLE のようになります。
API Version 2010-12-01
33
Amazon Simple Email Service 開発者ガイド
AWS SDK を使用して E メールを送信する
b.
AWS_SECRET_ACCESS_KEY という環境変数を作成し、AWS シークレットアクセスキーを指定しま
す。AWS シークレットアクセスキーは wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY のように
なります。
2.
amazon-ses-sample.php というファイルを作成します。テキストエディターでファイルを開き、次の
コードを貼り付けます。
<?php
// Replace path_to_sdk_inclusion with the path to the SDK as described in
// http://docs.aws.amazon.com/aws-sdk-php/v3/guide/getting-started/basic-usage.html
define('REQUIRED_FILE','path_to_sdk_inclusion');
// Replace [email protected] with your "From" address.
// This address must be verified with Amazon SES.
define('SENDER', '[email protected]');
// Replace [email protected] with a "To" address. If your account
// is still in the sandbox, this address must be verified.
define('RECIPIENT', '[email protected]');
// Replace us-west-2 with the AWS region you're using for Amazon SES.
define('REGION','us-west-2');
define('SUBJECT','Amazon SES test (AWS SDK for PHP)');
define('BODY','This email was sent with Amazon SES using the AWS SDK for PHP.');
require REQUIRED_FILE;
use Aws\Ses\SesClient;
$client = SesClient::factory(array(
'version'=> 'latest',
'region' => REGION
));
$request = array();
$request['Source'] = SENDER;
$request['Destination']['ToAddresses'] = array(RECIPIENT);
$request['Message']['Subject']['Data'] = SUBJECT;
$request['Message']['Body']['Text']['Data'] = BODY;
try {
$result = $client->sendEmail($request);
$messageId = $result->get('MessageId');
echo("Email sent! Message ID: $messageId"."\n");
} catch (Exception $e) {
echo("The email was not sent. Error message: ");
echo($e->getMessage()."\n");
}
?>
3.
amazon-ses-sample.php で、以下の内容を独自の値に置き換えます。
• path_to_sdk_inclusion – プログラムに AWS SDK for PHP を含めるために必要なパスに置き換えま
す。詳細については、AWS SDK for PHP のドキュメントを参照してください。
• [email protected] – Amazon SES で検証したメールアドレスに置き換えます。詳細について
は、「E メールアドレスとドメインの検証 (p. 36)」を参照してください。Amazon SES では、E
メールアドレスの大文字と小文字が区別されます。検証したアドレスと完全に一致するアドレスを
入力してください。
API Version 2010-12-01
34
Amazon Simple Email Service 開発者ガイド
E メールのセットアップ
• [email protected] – 受取人のアドレスに置き換えます。アカウントがサンドボックスにまだ
ある場合は、このアドレスを使用前に確認する必要があります。詳細については、「 Amazon SES
サンドボックスの外への移動 (p. 52)」を参照してください。検証したアドレスと完全に一致する
アドレスを入力してください。
• (オプション) us-west-2 – 米国西部 (オレゴン) 以外のリージョンで Amazon SES を使用する場合
は、使用するリージョンに置き換えます。Amazon SES を使用できるリージョンのリストについて
は、「リージョンと Amazon SES (p. 296)」を参照してください。
4.
amazon-ses-sample.php を保存します。
5.
プログラムを実行するには、amazon-ses-sample.php と同じディレクトリでコマンドプロンプトを開
き、「php amazon-ses-sample.php」と入力します。
6.
出力を確認します。送信が成功した場合は、"Email sent!" と表示されます。
Note
プログラムの実行時に "cURL error 60: SSL certificate problem" エラーが発生した場合
は、AWS SDK for PHP のドキュメントに従って、最新の CA バンドルをダウンロードしてく
ださい。次に、amazon-ses-sample.php で、SesClient::factory 配列に次の行を追加し、
ダウンロードした CA バンドルのパスで path_of_certs を置き換えて、プログラムを再実行
します。
'http' => [
'verify' => 'path_of_certs\ca-bundle.crt'
]
7.
受取人のアドレスの E メールクライアントにログインします。送信した E メールメッセージを確認し
ます。
Amazon SES で E メールをセットアップする
Amazon Simple Email Service (Amazon SES) で E メールをセットアップするには、以下のタスクを実行
する必要があります。
• Amazon SES またはその他の AWS サービスにアクセスする前に、AWS アカウントをセットアップする
必要があります。詳細については、「AWS にサインアップする (p. 36)」を参照してください。
• Amazon SES を通じて E メールを送信する前に、「From」アドレスを所有していることを確認する
必要があります。アカウントが Amazon SES サンドボックスにまだある場合は、「To」アドレスも
確認する必要があります。E メールアドレスまたはドメイン全体を検証できます。詳細については、
「Amazon SES での E メールアドレスとドメインの検証 (p. 36)」を参照してください。
以下のタスクは、行う操作によってはオプションです。
• Amazon SES API を通じて Amazon SES にアクセスする場合は、クエリ (HTTPS) インターフェイスに
よるか、AWS SDK、AWS Command Line Interface、または AWS Tools for Windows PowerShell を通
じて間接的に行うかにかかわらず、AWS アクセスキーを取得する必要があります。詳細については、
「AWS アクセスキーの取得 (p. 43)」を参照してください。
• クエリインターフェイスの低レベルの詳細を処理せずに Amazon SES API を呼び出したい場合
は、AWS SDK を使用できます。詳細については、「AWS SDK のダウンロード (p. 44)」を参照して
ください。
• SMTP インターフェイスを通じて Amazon SES にアクセスする場合は、SMTP ユーザー名とパスワード
を取得する必要があります。SMTP 認証情報は、AWS の認証情報とは異なります。詳細については、
「Amazon SES 用の SMTP 認証情報の取得 (p. 51)」を参照してください。
• 初めて Amazon SES にサインアップすると、アカウントは Amazon SES サンドボックス環境にありま
す。サンドボックスでは、他の Amazon SES ユーザーと同じメール送信手段を使用して E メールを送
API Version 2010-12-01
35
Amazon Simple Email Service 開発者ガイド
AWS にサインアップする
信することができますが、最大で 1 秒間に 1 通の E メール、24 時間に 2000 通までの E メール送信に
制限され、また送信する E メールアドレスは確認済みのものに限られます。 送信制限を引き上げ、検証
されていない E メールアドレスに E メールを送信するには、「 Amazon SES サンドボックスの外への
移動 (p. 52)」を参照してください。
• E メールが Sender Policy Framework (SPF) に基づいて DMARC (Domain-based Message
Authentication, Reporting and Conformance) 認証に合格するには、「カスタムの MAIL FROM ドメイン
を使用する (p. 44)」の説明に従って、カスタムの MAIL FROM ドメインから送信できるようにアイ
デンティティを設定します。
Amazon SES のさまざまなトピックに関する技術的な考察については、「Amazon SES ブログ」をご覧
ください。お問い合わせを参照あるいは発信するには「Amazon SES フォーラム」をご覧ください。
AWS にサインアップする
Amazon SES やその他のサービスを使用する前に、AWS アカウントを作成する必要があります。AWS ア
カウントを作成すると、すべてのサービスに自動的にサインアップされます。料金が発生するのは、実際
に使用したサービスの分のみです。
Note
Amazon EC2 インスタンスから、直接または AWS Elastic Beanstalk を通じて E メールを送信す
る場合は、Amazon SES を無料で使い始めることができます。詳細については、「Amazon SES
の料金」を参照してください。
初めて AWS にサインアップすると、Amazon SES の送信は Amazon SES サンドボックス環境にありま
す。サンドボックスでは、Amazon SES API および SMTP インターフェイスへのフルアクセスが可能で
す。ただし、次の制限が有効です。
• Amazon SES メールボックスシミュレーターと、検証済み E メールアドレスまたはドメインだけ
にメールを送信できます。詳細については、「Amazon SES での E メールアドレスとドメインの検
証 (p. 36)」を参照してください。
• 最大で 24 時間あたり 200 メッセージを送信できます。
• 最大で 1 秒あたり 1 メッセージを送信できます。
サンドボックスの外への移動については、「 Amazon SES サンドボックスの外への移動 (p. 52)」を参
照してください。
AWS アカウントを作成するには
1.
2.
https://aws.amazon.com/ses にアクセスして [今すぐ申し込む] を選択します。
画面上の指示に従ってください。
Note
アカウントが Amazon SES サンドボックスの外にある場合でも、「From」アドレスを確認し
て、そのアドレスを所有していることを確かめる必要があります。
Amazon SES での E メールアドレスとドメインの検
証
Amazon SES を使用してメールを送信する前に、「From」、「Source」、「Sender」、または「ReturnPath」アドレスとして使用する各 E メールアドレス (またはその E メールアドレスのドメイン) を検証
API Version 2010-12-01
36
Amazon Simple Email Service 開発者ガイド
E メールアドレスとドメインの検証
し、それを所有していることを証明する必要があります。アカウントが Amazon SES サンドボックスに
まだある場合は、Amazon SES のメールボックスシミュレーターから提供されているアドレスを除く、E
メールの送信元となるすべてのアドレスも確認する必要があります。E メールアドレスまたはドメインを
検証するには、Amazon SES コンソールまたは Amazon SES API を使用します。
E メールアドレスおよびドメインの検証ステータスは、AWS リージョンごとに個別です。詳細について
は、以下のセクションの検証手順を参照してください。
• E メールアドレスの検証については、「Amazon SES での E メールアドレスの検証 (p. 37)」を参照
してください。
• ドメイン全体の検証については、「Amazon SES でのドメインの検証 (p. 39)」を参照してくださ
い。
Amazon SES での E メールアドレスの検証
Amazon SES では、E メールアドレスまたはドメインを検証して、それを所有していることを確認し、他
のユーザーに使用されないようにする必要があります。このセクションでは、個々の E メールアドレスの
検証について説明します。ドメインの検証については、「Amazon SES でのドメインの検証 (p. 39)」
を参照してください。
概要
ラベルを含むアドレスを除いて (以下を参照)、メッセージの「From」、「Source」、「Sender」または
「Return-Path」アドレスとして使用する各 E メールアドレス (または E メールアドレスのドメイン) は、
検証する必要があります。アカウントを Amazon SES サンドボックスに外に移動するまでは、Amazon
SES のメールボックスシミュレーターから提供されているアドレスを除く、すべての受取人のアドレスも
確認する必要があります。メールボックスシミュレーターの詳細については、「Amazon SES E メール送
信のテスト (p. 197)」を参照してください。サンドボックスの外への移動の詳細については、「 Amazon
SES サンドボックスの外への移動 (p. 52)」を参照してください。
E メールアドレスの検証については、以下のような点が重要です。
• すべての E メールアドレスでは大文字と小文字が区別されます。たとえば、[email protected] を
検証した場合、[email protected] も検証しないと、[email protected] から E メールを
送信できません。ただし、ドメインの検証では大文字と小文字は区別されません。詳細については、
「Amazon SES でのドメインの検証 (p. 39)」を参照してください。
• メールアドレスを個別に検証し、そのアドレスのドメインも検証する場合、E メールアドレスの検証
されたアイデンティティ設定(DKIM、フィードバック通知など)はドメインレベルの設定をオーバー
ライドします。たとえば、example.com および [email protected] を検証し、example.com では
DKIM を有効にし、[email protected] では有効にしない場合、[email protected] から送信する
E メールには DKIM 署名が付きません。
• Amazon SES は複数の AWS リージョンにエンドポイントを持ち、E メールアドレスの検証ステータス
は AWS のリージョンごとに別個に扱われます。使用する AWS リージョンの各送信者について、E メー
ルアドレス検証プロセスを完了する必要があります。複数の AWS リージョンでの Amazon SES の使用
については、「リージョンと Amazon SES (p. 296)」を参照してください。
• AWS アカウントあたり約 10,000 件のアイデンティティ(任意の組み合わせのドメインおよび E メール
アドレス)を検証できます。
• E メールアドレスを検証すると、検証されたアドレスにラベルを追加することによって形成される任意
のアドレスを "From" と "Return-Path" のアドレスに設定できるようになります。ラベルを含むアドレス
は、[email protected] という形式であり、プラス記号(+)とアットマーク(@)の間はユー
ザー指定のテキストです。
たとえば、[email protected] を検証した場合、[email protected]、user
[email protected] などからも E メールを送信できます。これによって、可変エンベロープ
リターンパス(VERP)をサポートし、受取人ごとに異なるリターンパスを使用することができま
API Version 2010-12-01
37
Amazon Simple Email Service 開発者ガイド
E メールアドレスとドメインの検証
す。VERP に関する詳細については、http://en.wikipedia.org/wiki/Variable_envelope_return_path を参照
してください。
ラベルのないアドレスを検証すると、基本的に、検証されたアドレスにラベルを追加することに
よって形成されるすべてのアドレスを検証していることになります。ただし、その逆は真ではあ
りません。既にラベルが含まれている E メールアドレスを検証することによって、他のアドレス
からの送信が許可されることはありません。たとえば、[email protected] を検証
することによって、[email protected][email protected]、または andrew
[email protected] からの送信が許可されることはありません。
• "Sender" ヘッダーを含むメッセージを送信するために SendRawEmail API アクションを使用する場合
は、まず、そのヘッダー内の E メールアドレスまたはドメインを検証する必要があります。詳細につい
ては、「E メールヘッダーフィールドについて (p. 81)」を参照してください。
検証手順
次の手順は、Amazon SES コンソールを使用して Eメールアドレスを検証および表示する方法を示してい
ます。
E メールアドレスを検証するには
1.
Amazon SES コンソールの [email address list] に移動するか、次の手順に従って、そこに移動しま
す。
a.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
b.
ナビゲーションペインの [Identity Management] で [Email Addresses] を選択します。
2.
[Verify a New Email Address] を選択します。
3.
[Verify a New Email Address] ダイアログボックスの指定フィールドに E メールアドレスを入力し、
[Verify This Email Address] を選択します。
4.
E メールクライアントで、Amazon SES からのメッセージを開きます。このメッセージでは、この E
メールアドレスの所有者であることを確認するように求められます。
5.
メッセージ内のリンクをクリックします。
Note
検証メッセージ内のリンクは、元の検証リクエストから 24 時間で期限切れになります。
6.
Amazon SES コンソールでの E メールアドレスのステータスは、"pending verification" から "verified"
に変化します。
7.
Amazon SES を使用して、このアドレスから E メールを送信できるようになりました。テスト E
メールを送信するには、確認済み E メールアドレスの横のボックスをオンにして、[Send a Test
Email] を選択します。
検証済み E メールアドレスを表示するには
1.
2.
Amazon SES コンソールの [email address list] に移動するか、次の手順に従って、そこに移動しま
す。
a.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
b.
ナビゲーションペインの [Identity Management] で [Email Addresses] を選択します。
検証済み E メールアドレスのリストで、1 つ以上の E メールアドレスを展開して、詳細を表示するこ
とができます。
API Version 2010-12-01
38
Amazon Simple Email Service 開発者ガイド
E メールアドレスとドメインの検証
検証済み E メールアドレスを削除するには
1.
2.
Amazon SES コンソールの [email address list] に移動するか、次の手順に従って、そこに移動しま
す。
a.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
b.
ナビゲーションペインの [Identity Management] で [Email Addresses] を選択します。
削除する各 E メールアドレスの横にあるボックスをオンにし、[Remove] を選択します。
Amazon SES API を使用する
検証済み E メールアドレスを Amazon SES API で管理することもできます。以下のアクションを使用でき
ます。
• VerifyEmailIdentity
• ListIdentities
• DeleteIdentity
• GetIdentityVerificationAttributes
Note
以下の古い API アクションは、2012 年 5 月 15 日のドメイン検証のリリース時に廃止されたた
め、上記の API アクションを使用することをお勧めします。
• VerifyEmailAddress
• ListVerifiedEmailAddresses
• DeleteVerifiedEmailAddress
これらの API アクションを使用して、E メールアドレス検証用のカスタマイズされたフロントエンドア
プリケーションを作成できます。E メールの検証に関連する API アクションの完全な説明については、
「Amazon Simple Email Service API Reference」を参照してください。
Amazon SES でのドメインの検証
Amazon SES では、E メールアドレスまたはドメインを検証して、それを所有していることを
確認し、他のユーザーに使用されないようにする必要があります。ドメイン全体を検証すると、
そのドメインのすべての E メールアドレスを検証することになるため、そのドメインの E メー
ルアドレスを個別に検証する必要はありません。たとえば、ドメイン example.com を検証する
と、[email protected][email protected]、または example.com の他の任意のユーザーから E
メールを送信できます。
Amazon SES コンソールまたは Amazon SES API を使用して、検証済みドメインを管理できます。ド
メインの検証に関連する API アクションの完全な説明については、「Amazon Simple Email Service API
Reference」を参照してください。このセクションでは、以下のトピックを取り上げて、Amazon SES コ
ンソールを使用した操作について説明します。
• Amazon SES でのドメインの検証 (p. 40)
• Amazon SES で検証済みのドメインを表示する (p. 41)
• Amazon SES で検証済みのドメインを削除する (p. 41)
• Amazon SES でのドメイン検証の失効 (p. 42)
• Amazon SES のドメイン検証 TXT レコード (p. 42)
API Version 2010-12-01
39
Amazon Simple Email Service 開発者ガイド
E メールアドレスとドメインの検証
ドメインの検証については、以下のような点が重要です。
• Amazon SES は複数の AWS リージョンにエンドポイントを持っており、ドメインの検証は各 AWS
リージョンに個別に適用されます。特定のドメインからの送信を行うリージョンごとに、ドメイン全体
の検証手順を実行する必要があります。複数のリージョンにある同じドメインを検証する場合に、同じ
名前の複数の TXT レコードを持つことを DNS プロバイダーが許可しないときは、「ドメインの確認に
関する一般的な問題 (p. 207)」で回避策を参照してください。
• Amazon SES でドメインを検証する場合は、そのドメインの任意のサブドメインから送信することが
できます。サブドメインを個別に検証する必要はありません。たとえば、example.com を検証する場
合、a.example.com や a.b.example.com を検証する必要はありません。RFC 1034 で規定されているよ
うに、各 DNS ラベルには最大で 63 文字を指定することができ、ドメイン名全体の合計文字数は 255 を
超えることはできません。
• ルートドメインを共有するドメイン、サブドメイン、および E メールアドレスを検証する場合、検証さ
れるアイデンティティ設定(フィードバック通知、Easy DKIM など)は検証する最も細かいレベルで適
用されます。つまり、次のようになります。
• 検証済み E メールアドレス設定は、検証済みドメイン設定をオーバーライドします。
• 検証済みサブドメイン設定は、検証済みドメイン設定をオーバーライドします。より低いレベルのサ
ブドメイン設定は、より高いレベルのサブドメイン設定をオーバーライドします。
たとえば、[email protected]、a.b.example.com、b.example.com、および example.com を検証す
るとします。これらは、以下のシナリオで使用される検証済みのアイデンティティ設定です。
• [email protected](個別には検証されないアドレス)から送信される E メールは、example.com の
設定を使用します。
• [email protected](個別に検証されるアドレス)から送信される E メール
は、[email protected] の設定を使用します。
• [email protected](個別には検証されないアドレス)から送信される E メール
は、b.example.com の設定を使用します。
• ドメイン名では大文字と小文字は区別されません。example.com を検証すると、EXAMPLE.com からも
送信できます。
• AWS アカウントあたり約 10,000 件のアイデンティティ(任意の組み合わせのドメインおよび E メール
アドレス)を検証できます。
Amazon SES でのドメインの検証
以下の手順では、Amazon SES コンソールを使用してドメインを検証する方法を示します。代わりに
Amazon SES API を使用する場合は、「Amazon Simple Email Service API Reference」を参照してくださ
い。
ドメインを検証するには
1.
Amazon SES コンソールの [verified domain list] に移動するか、次の手順に従って、そこに移動しま
す。
a.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
b.
ナビゲーションペインで、[Identity Management] の [Domains] を選択します。
2.
[Verify a New Domain] を選択します。
3.
[Verify a New Domain] ダイアログボックスで、ドメイン名を入力します。このドメインに DKIM 署名
をセットアップしたい場合は、[Generate DKIM Settings] オプションを選択します。(DKIM 署名の詳
細については「Amazon SES における DKIM を使った E メールの認証 (p. 88)」を参照してくださ
い)[Verify This Domain] を選択します。
4.
[Verify a New Domain] ダイアログボックスには、[Domain Verification Record Set] が表示されます。
これには、[Name]、[Type]、および [Value] が含まれます。(ダイアログボックスを閉じた後でも、こ
の情報はドメイン名を選択することで表示できます。)
API Version 2010-12-01
40
Amazon Simple Email Service 開発者ガイド
E メールアドレスとドメインの検証
ドメインの検証を完了するには、表示された Name および Value を指定した TXT レコードをドメイ
ンの DNS サーバーに追加します。Amazon SES の TXT レコードに関する情報、および DNS サー
バーへの TXT レコードの追加方法に関する一般的なガイダンスについては、「Amazon SES のドメ
イン検証 TXT レコード (p. 42)」を参照してください。特に、次のことに注意してください。
• DNS プロバイダーがレコード名でのアンダースコアの使用を許可していない場合は、Name から
_amazonses を削除できます。
• ドメインの DNS 設定内でこのレコードを識別しやすくするために、必要に応じて Value の前に
amazonses: を付けることができます。
• DNS プロバイダーによっては、DNS レコード名にドメイン名が自動的に付加される場合がありま
す。ドメイン名の重複を避けるために、DNS レコードのドメイン名の末尾にピリオドを追加できま
す。これにより、レコード名が完全修飾されて、DNS プロバイダーによる追加のドメイン名の付加
が不要になります。
5.
検証対象のドメインが Amazon Route 53 の DNS サービスを使用しており、Amazon Route 53 用
の同じアカウントで AWS マネジメントコンソール にサインインしている場合、Amazon SES で
は、Amazon SES コンソール内からすぐに DNS サーバーを更新することもできます。Amazon Route
53 を使用しない場合、Amazon SES では、Name と Value を指定した TXT レコードがドメインの
DNS サーバーに追加されていることを確認する必要があります。これには最大で 72 時間かかる場合
があります。
検証が完了すると、Amazon SES コンソールでドメインのステータスが "pending verification" から
"verified" に変更され、AWS アカウントに関連付けられた E メールアドレスに Amazon SES からドメ
イン検証成功の通知メールが届きます。
6.
これで、Amazon SES を使用して、検証済みドメインの任意のアドレスから E メールを送信できる
ようになりました。テストメールを送信するには、検証済みドメインの隣のボックスをオンにし、
[Send a Test Email] を選択します。
DNS 設定が正しく更新されない場合は、Amazon SES からドメイン検証失敗の通知メールが届き、
[Domains] タブでドメインのステータスが "failed" と表示されます。この場合は、「Amazon SES のドメ
インの確認に関する問題 (p. 206)」でトラブルシューティングに関するページを参照してください。TXT
レコードが正しく配置されたことを確認したら、"failed" というステータス通知の隣の "retry" リンクをク
リックします。これで、ドメイン検証プロセスが再開始されます。
Amazon SES で検証済みのドメインを表示する
検証済みドメインを表示するには、以下の手順に従ってください。
検証済みドメインを表示するには
1.
2.
Amazon SES コンソールの [verified domain list] に移動するか、次の手順に従って、そこに移動しま
す。
a.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
b.
ナビゲーションペインで、[Identity Management] の [Domains] を選択します。
検証済みドメインのリストで、1 つ以上のドメインを展開して、詳細を表示することができます。
Amazon SES で検証済みのドメインを削除する
検証済みドメインを削除するには、以下の手順に従ってください。
API Version 2010-12-01
41
Amazon Simple Email Service 開発者ガイド
E メールアドレスとドメインの検証
検証済みドメインを削除するには
1.
Amazon SES コンソールの [verified domain list] に移動するか、次の手順に従って、そこに移動しま
す。
a.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
b.
ナビゲーションペインで、[Identity Management] の [Domains] を選択します。
2.
削除する各ドメインの横にあるボックスをオンにし、[Remove] を選択します。
3.
削除されたドメインからは E メールを送信できなくなります。
Amazon SES でのドメイン検証の失効
Amazon SES は定期的にドメインの検証ステータスを見直し、有効でなくなっている場合には検証を取り
消します。Amazon SES がドメインの所有権を確認するために必要な TXT レコード情報を検出できない
場合は、Amazon SES から "Amazon SES Domain Verification REVOCATION WARNING" E メールを受信
します。
72 時間以内に TXT レコード情報をドメインの DNS サーバーに復元すると、Amazon SES から "Amazon
SES Domain Verification REVOCATION CANCELLATION" E メールが届きます。
Note
以下の手順に従って、Amazon SES コンソールで必要な TXT レコードを確認できます。 ナビ
ゲーションペインで、[Identity Management] の [Domains] を選択します。ドメインのリストでド
メインを選択 (展開するだけではなく) して、TXT レコード名と値を含むドメインの確認設定を表
示します。
72 時間以内に TXT レコード情報をドメインの DNS サーバーに復元しないと、Amazon SES から
"Amazon SES Domain Verification REVOCATION" E メールが届き、ドメインは [Domains] タブの
[Verified Senders] の一覧から削除されて、そのドメインから E メールを送信できなくなります。
検証が失効したドメインを再検証するには、失効したドメインがまったく新しいドメインであるかのよう
に、検証手順を最初から再開始する必要があります。
Amazon SES のドメイン検証 TXT レコード
お客様のドメインは、DNS プロバイダーを介して管理する一連のドメインネームシステム (DNS) レコー
ドに関連付けられます。TXT レコードは、ドメインに関する追加情報を提供する一種の DNS レコードで
す。各 TXT レコードは名前と値で構成されます。
Amazon SES コンソールまたは API を使用してドメインの検証を開始すると、Amazon SES によっ
て TXT レコードに使用する名前と値が割り当てられます。たとえば、ドメインが example.com の場
合、Amazon SES によって生成される TXT レコードの設定は以下のようになります。
名前
タイプ
値
_amazonses.example.com
TXT
pmBGN/7MjnfhTKUZ06Enqq1
Name と Value を指定した TXT レコードをドメインの DNS サーバーに 追加します。Amazon SES がド
メインの DNS 設定内にその TXT レコードを検出すると、Amazon SES によるドメインの検証は完了で
す。
DNS プロバイダーが DNS レコード名でのアンダースコアの使用を許可していない場合は、Name から
_amazonses を削除できます。その場合、前の例で TXT レコード名は _amazonses.example.com では
API Version 2010-12-01
42
Amazon Simple Email Service 開発者ガイド
AWS アクセスキーの取得
なく、example.com になります。レコードを識別しやすくメンテナンスしやすくするために、必要に応
じて Value の前に amazonses: を付けることもできます。したがって、前の例で TXT レコードの値は
amazonses:pmBGN/7MjnfhTKUZ06Enqq1PeGUaOkw8lGhcfwefcHU= になります。
Note
Amazon SES では以前、TXT レコード名にアンダースコアなしの amazonses を含めることが
できました。ドメインが検証済みで、TXT レコードにアンダースコアなしの amazonses が含ま
れている場合、そのドメインは引き続き検証済みとなります。お客様の側で必要になる操作はあ
りません。ただし、新しいドメインの検証には、TXT レコード名の amazonses には先頭にアン
ダースコアをつけるか、または _amazonses を完全に TXT レコード名から削除する必要がありま
す。
ドメイン検証の設定に関するトラブルシューティング情報と確認手順については、「Amazon SES のドメ
インの確認に関する問題 (p. 206)」を参照してください。
ドメインの DNS サーバーに TXT レコードを追加する
ドメインの DNS サーバーに TXT レコードを追加する手順は DNS プロバイダーによって異なりま
す。DNS プロバイダーとしては、Amazon Route 53 のほか、GoDaddy のようなドメイン名レジストラー
を利用できます。ここでは、ドメインの DNS サーバーに TXT レコードを追加する方法について具体的な
手順ではなく、DNS プロバイダーが通常使用する一般的な手順を示します。
ドメインの DNS サーバーに TXT レコードを追加するには(一般的な手順)
1.
DNS プロバイダーのウェブサイトに移動します。ドメインで利用している DNS プロバイダーがわか
らない場合は、無料の Whois サービス を使用して検索してみてください。
2.
ドメインのアカウントにサインインします。
3.
ドメインの DNS レコードを更新するためのページを見つけます。このページには多くの場合、"DNS
Records"、"DNS Zone File"、"Advanced DNS" のような名前が付いています。
4.
ドメインの TXT レコードを見つけます。
5.
Amazon SES によって割り当てられた名前と値を指定した TXT レコードを追加します。
Important
DNS プロバイダーによっては、DNS レコードの末尾にドメイン名が自動的に付加される場
合があります。既にドメイン名が含まれているレコード(_amazonses.example.com など)
を追加すると、ドメイン名が重複したレコード(_amazonses.example.com.example.com な
ど)になる場合があります。ドメイン名の重複を避けるには、DNS レコードのドメイン名
の末尾にピリオドを追加します。こうすることで、DNS プロバイダーにレコード名が完全修
飾されている(つまり、ドメイン名に対して相対的でなくなる)ことを示し、DNS プロバイ
ダーによってドメイン名が追加されないようにします。
6.
変更を保存します。DNS レコードの更新が有効になるには、最大 48 時間かかることがあります
が、多くの場合それよりも大幅に早く有効になります。「ドメインの確認に関する設定を確認する方
法 (p. 206)」の手順を使用して、TXT レコードが正しく公開されることを確認できます。
AWS アクセスキーの取得
Amazon SES API から Amazon SES にアクセスするには、クエリ (HTTPS) インターフェイスから直
接アクセスする場合も、AWS SDK、AWS Command Line Interface、または AWS Tools for Windows
PowerShell から間接的にアクセスする場合も、Amazon SES へのサインアップ後に AWS アクセスキーを
取得する必要があります。AWS アクセスキーは、アクセスキー ID とシークレットアクセスキーで構成さ
れます。
AWS アクセスキーの取得の詳細については、『AWS General Reference』の「AWS セキュリティの認証
情報」を参照してください。
API Version 2010-12-01
43
Amazon Simple Email Service 開発者ガイド
AWS SDK のダウンロード
AWS SDK のダウンロード
raw HTTP リクエストの組み立てなどの低レベルの詳細を処理せずに Amazon SES API を呼び出す場合
は、AWS SDK を使用できます。AWS SDK は、Amazon SES サービスやその他の AWS サービスの機能
をカプセル化する関数とデータ型を提供します。
AWS SDK をダウンロードするには、上の一覧の適切なリンクを参照してください。各 SDK の前提条件と
インストール手順が、対応するページに表示されます。
Note
この開発者ガイドの使用開始セクションでは、.NET、Java、および PHP 用の AWS SDK を
使用して E メールを送信する方法の例を示します。詳細については、「AWS SDK を使用して
Amazon SES から E メールを送信する (p. 27)」を参照してください。
すべての AWS SDK のリストを表示するには、「サンプルコードとライブラリ」を参照してください。
Amazon SES でカスタムの MAIL FROM ドメインを使
用する
送信される E メールには、送信元を示すアドレスが 2 つ含まれています。1 つはメールヘッダーに記述
されている "From" アドレス、もう 1 つは、送信側メールサーバーがメッセージの送信元を示すために受
信側メールサーバーに対して指定する MAIL FROM アドレス (envelope sender、envelope from、bounce
address、Return Path と呼ばれることもあります) です。受取人が受信箱で E メールを確認すると、受取
人はその E メールの "From" アドレスを見ることができます。一方、MAIL FROM アドレスは、バウンス
メッセージなどのエラー通知を返すためにメールサーバーが使用するものであり、一般的には、未加工の
メッセージソースでメールヘッダーを調べない限り受取人からは見えません。Amazon SES では、ユー
ザーが独自に設定しない限り、MAIL FROM ドメインにはデフォルト値が設定されます。
カスタムの MAIL FROM ドメインを使用する理由
デフォルトでは、Amazon SES から送信するメッセージには、MAIL FROM ドメインとして
amazonses.com (またはそのサブドメイン) が使用されます。この場合、デフォルトの MAIL FROM ド
メインが送信側メールサーバーである Amazon SES と一致するため、これらのメッセージは Sender
Policy Framework (SPF) 認証に合格します。多くの送信者にとってはこのレベルの認証で十分です
が、Sender Policy Framework (SPF) に基づく DMARC (Domain-based Message Authentication, Reporting
and Conformance) 認証に E メールが合格するためには、所有するドメインを MAIL FROM ドメインに設
定する必要があります。この認証には、SPF ドメインアラインメントに関する追加チェックが必要にな
ります。DMARC を使用すると、送信側ドメインでは E メールが SPF またはドメインキーアイデンティ
ファイドメール (DKIM)、あるいはその両方で保護されていることを DNS レコードで示すことができま
す。
DMARC 認証に合格するには、SPF または DKIM を使用します。この認証では "From" アドレスに指定さ
れたドメインが MAIL FROM ドメインと一致する必要があるため、独自の MAIL FROM ドメインを使用し
ない限り、SPF の使用による DMARC 認証に合格することはできません。独自の MAIL FROM ドメイン
を使用すると、SPF または DKIM、あるいはその両方を使用して、DMARC 認証に合格することができま
す。詳細については、「SPF での E メールの認証 (p. 87)」を参照してください。
MAIL FROM ドメインの選択
Amazon SES で独自の MAIL FROM ドメインを使用する場合、この MAIL FROM ドメインが以下の要件を
満たしている必要があります。
• MAIL FROM ドメインは、E メールの送信元である確認済みアイデンティティ (E メールアド
レスまたはドメイン) のサブドメインである必要があります。たとえば、bounce.example.com
は、[email protected] というE メールアドレスまたは example.com ドメインに対する有効な MAIL
FROM ドメインです。
API Version 2010-12-01
44
Amazon Simple Email Service 開発者ガイド
カスタムの MAIL FROM ドメインを使用する
• E メールのフィードバック転送で MAIL FROM ドメインへのフィードバック転送が一切発生しないと確
認できる場合を除き、"From" アドレス ("From"、"Return Path"、"Source") には MAIL FROM ドメインを
使用することはできません。これは、フィードバックを受信できないフィードバックループを防止する
ためです。"From" アドレスに MAIL FROM ドメインを使用する必要がある場合は、E メールのフィード
バック転送を無効にしてバウンスを Amazon SNS 通知から受け取るか、MAIL FROM ドメインがフィー
ドバックの宛先でないことを確認します。E メールのフィードバック転送の宛先を調べる方法について
は、「E メールのフィードバック転送先 (p. 100)」を参照してください。
• MAIL FROM ドメインには、E メールの受信に使用するドメインを指定することはできません。
セットアッププロセス
確認済みアイデンティティに対して MAIL FROM ドメインを設定するには、Amazon SES コンソールまた
は API を使用して確認済みアイデンティティを設定し、MX レコード (オプションで SPF レコードも) を
MAIL FROM ドメインの DNS サーバーに公開します。Amazon SES のデフォルトの MAIL FROM ドメイ
ンに戻すには、確認済みアイデンティティの設定から MAIL FROM ドメインを削除します。これらの手順
については、これ以降のセクションで説明します。
• MAIL FROM ドメインを設定する (p. 45)
• MAIL FROM ドメインを削除する (p. 48)
• MAIL FROM ドメインを編集する (p. 49)
カスタム MAIL FROM ドメインのセットアップ状態については、「MAIL FROM ドメインのセットアップ
状態 (p. 50)」を参照してください。
Amazon SES で MAIL FROM ドメインを設定する
このトピックでは、カスタム MAIL FROM ドメインのセットアッププロセスの概要を紹介し、Amazon
SES コンソールを使用した手順について説明します。
Note
複数の AWS リージョンで同じ MAIL FROM アドレスを使用することもできます。詳細について
は、「リージョンと Amazon SES (p. 296)」を参照してください。
セットアッププロセスの概要
確認済みアイデンティティに対する MAIL FROM ドメインのセットアップは、次の 3 ステップで構成され
ます。
1.
2.
Amazon SES コンソールまたは API で、指定した MAIL FROM ドメインが使用されるようにアイデン
ティティを設定します。
MAIL FROM ドメインの DNS サーバーに MX レコードを公開します。このレコードは、セットアップ
プロセスの間に Amazon SES から提供されます。たとえば、example.com というアイデンティティ
が 米国西部 (オレゴン) リージョンで bounce.example.com という MAIL FROM ドメインを使用する
ように設定している場合、次のような MX レコード設定が Amazon SES から提供されます。
名前
タイプ
値
bounce.example.com
MX
10 feedbacksmtp.uswest-2.amazonses.com
レコード値のエンドポイントは、AWS リージョンによって異なります。すべての AWS リージョンの
フィードバックエンドポイントについては、「カスタムの MAIL FROM ドメイン (p. 299)」を参照
してください。
API Version 2010-12-01
45
Amazon Simple Email Service 開発者ガイド
カスタムの MAIL FROM ドメインを使用する
3.
(オプション) E メールが Sender Policy Framework (SPF) チェックに合格するには、カスタム
MAIL FROM ドメインの DNS サーバーに SPF レコードを公開する必要があります。このレコー
ドは、セットアッププロセスの間に Amazon SES から提供されます。MAIL FROM ドメイン
bounce.example.com の SPF レコードには、次の設定が記述されます。
名前
タイプ
値
bounce.example.com
TXT
"v=spf1 include:amazonses.com all"
SPF レコードのセットアップの詳細については、「Amazon SES における SPF を使った E メールの
認証 (p. 87)」を参照してください。
セットアップ手順の詳細
次の手順は、指定された MAIL FROM ドメインを使用して E メールを送信するように確認済み E
メールアドレスまたはドメインを Amazon SES コンソールで設定する方法を示しています。代わ
りに Amazon SES API を使用する場合は、「Amazon Simple Email Service API Reference」で
SetIdentityMailFromDomain API に関する記述を参照してください。
指定された MAIL FROM ドメインが確認済み E メールアドレスで使用されるように設定するには
1.
Amazon SES コンソールの [verified email address list] に移動します。次の手順に従って移動すること
もできます。
a.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
b.
ナビゲーションペインの [Identity Management] で [Email Addresses] を選択します。
2.
確認済み E メールアドレスリストで、MAIL FROM ドメインを設定する E メールアドレスのステー
タスが verified であることを確認します。ステータスが failure であれば、[retry] を選択して、自分の
E メールクライアントに送られてきた確認 E メール内のリンクをクリックします。それ以外の場合
は、E メールアドレスを選択し、次の手順に進みます。
3.
確認済み E メールアドレスの詳細ペインで、[MAIL FROM Domain] を展開します。
4.
[Set MAIL FROM Domain] を選択します。
5.
[Set MAIL FROM Domain] ダイアログボックスで、使用する MAIL FROM ドメインの名前を入力しま
す。ここには、確認済み E メールアドレスのドメインのサブドメインを指定する必要があります。
6.
この手順では、後でカスタムの MAIL FROM ドメインの DNS サーバーに MX レコードを公開する必
要があります。ここでは、E メールを送信した際に Amazon SES が MX レコードを正しく読み取れな
かった場合の動作を [Behavior if MX record not found] で選択します。次のオプションがあります。
• Use default Amazon SES value – カスタム MAIL FROM ドメインの MX レコードが正しくセット
アップされていない場合、Amazon SES はデフォルトの MAIL FROM ドメイン (amazonses.com ま
たは amazonses.com のサブドメイン) を使用します。
• Reject message – カスタム MAIL FROM ドメインの MX レコードが正しくセットアップされていな
い場合、Amazon SES は MailFromDomainNotVerified エラーを返し、E メールを送信しません。
7.
[Set MAIL FROM Domain] を選択します。
8.
次に、カスタム MAIL FROM ドメインの DNS サーバーに、MX レコードを公開する必要があります。
Important
Amazon SES でカスタムの MAIL FROM ドメインを正しくセットアップするには、MAIL
FROM ドメインの DNS サーバーに、MX レコードを 1 件のみ公開する必要がありま
す。MAIL FROM ドメインに複数の MX レコードが存在すると、Amazon SES でのカスタム
MAIL FROM セットアップは失敗になります。
API Version 2010-12-01
46
Amazon Simple Email Service 開発者ガイド
カスタムの MAIL FROM ドメインを使用する
9.
a.
MAIL FROM ドメインに対する DNS サービスの提供元が Amazon Route 53 であり、Amazon
Route 53 で使用している同じアカウントで AWS マネジメントコンソール にサインインしている
場合に、MX レコードまたは SPF レコード、あるいはその両方を Amazon SES コンソールで公
開するには、[Publish Records Using Route 53] を選択してください。
b.
MAIL FROM ドメインで Amazon Route 53 が使用されていない場合は、表示された MX レコード
を MAIL FROM ドメインの DNS サーバーに自分で公開する必要があります。MX レコードをドメ
インの DNS サーバーに追加する手順は、DNS サービスの提供元によって異なります。お使いの
DNS サービスのドキュメントを参照してください。Amazon SES によってレコードが検出される
と、この確認済み E メールアドレスから送信した E メールには、指定した MAIL FROM ドメイン
が使用されます。それまで Amazon SES では、この手順で指定した設定に従って、デフォルトの
MAIL FROM ドメインが使用されるか、メッセージが拒否されます。Amazon SES では、MX レ
コードの検出までに、最大 72 時間かかることがあります。
(オプション) Sender Policy Framework (SPF) チェックに合格するには、SPF レコードを MAIL FROM
ドメインの DNS サーバーに公開することで、ドメインに代わって E メールの送信を Amazon SES に
許可したことを受信側のメールサーバーに示す必要があります。詳細については、「Amazon SES に
おける SPF を使った E メールの認証 (p. 87)」を参照してください。
指定された MAIL FROM ドメインが確認済みドメインで使用されるように設定するには
1.
Amazon SES コンソールの [verified domain list] に移動するか、次の手順に従って、そこに移動しま
す。
a.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
b.
ナビゲーションペインで、[Identity Management] の [Domains] を選択します。
2.
確認済みドメインリストで、MAIL FROM ドメインを設定するドメインのステータスが verified であ
ることを確認します。ステータスが failure の場合は、[retry] を選択し、表示された TXT レコードを
「Amazon SES のドメイン検証 TXT レコード (p. 42)」の説明に従って DNS サーバーに追加しま
す。それ以外の場合は、ドメインを選択してこの手順を続行します。
3.
確認済みドメインの詳細ペインで、[MAIL FROM Domain] を展開します。
4.
[Set MAIL FROM Domain] を選択します。
5.
[Set MAIL FROM Domain] ダイアログボックスで、使用する MAIL FROM ドメインの名前を入力しま
す。ここには、確認済みドメインのサブドメインを指定してください。
6.
この手順では、後で確認済みドメインの DNS サーバーに MX レコードを公開する必要があります。
ここでは、E メールを送信した際に Amazon SES が MX レコードを正しく読み取れなかった場合の動
作を [Behavior if MX record not found] で選択します。次のオプションがあります。
• Use default Amazon SES value – カスタム MAIL FROM ドメインの MX レコードが正しくセット
アップされていない場合、Amazon SES はデフォルトの MAIL FROM ドメイン (amazonses.com ま
たは amazonses.com のサブドメイン) を使用します。
• Reject message – カスタム MAIL FROM ドメインの MX レコードが正しくセットアップされていな
い場合、Amazon SES は MailFromDomainNotVerified エラーを返し、E メールを送信しません。
7.
[Set MAIL FROM Domain] を選択します。
8.
次に、カスタム MAIL FROM ドメインの DNS サーバーに、MX レコードを公開する必要があります。
Important
Amazon SES でカスタムの MAIL FROM ドメインを正しくセットアップするには、MAIL
FROM ドメインの DNS サーバーに、MX レコードを 1 件のみ公開する必要がありま
す。MAIL FROM ドメインに複数の MX レコードが存在すると、Amazon SES でのカスタム
MAIL FROM セットアップは失敗になります。
a.
MAIL FROM ドメインに対する DNS サービスの提供元が Amazon Route 53 であり、Amazon
Route 53 で使用している同じアカウントで AWS マネジメントコンソール にサインインしている
API Version 2010-12-01
47
Amazon Simple Email Service 開発者ガイド
カスタムの MAIL FROM ドメインを使用する
場合に、MX レコードまたは SPF レコード、あるいはその両方を Amazon SES コンソールで公
開するには、[Publish Records Using Route 53] を選択してください。
b.
9.
MAIL FROM ドメインで Amazon Route 53 が使用されていない場合は、表示された MX レコード
を MAIL FROM ドメインの DNS サーバーに自分で公開する必要があります。MX レコードをドメ
インの DNS サーバーに追加する手順は、DNS サービスの提供元によって異なります。お使いの
DNS サービスのドキュメントを参照してください。Amazon SES によってレコードが検出され
ると、この確認済みドメインから送信した E メールには、指定した MAIL FROM ドメインが使用
されます。それまで Amazon SES では、この手順で指定した設定に従って、デフォルトの MAIL
FROM ドメインが使用されるか、メッセージが拒否されます。Amazon SES では、MX レコード
の検出までに、最大 72 時間かかることがあります。
(オプション) Sender Policy Framework (SPF) チェックに合格するには、SPF レコードを MAIL FROM
ドメインの DNS サーバーに公開することで、ドメインに代わって E メールの送信を Amazon SES に
許可したことを受信側のメールサーバーに示す必要があります。詳細については、「Amazon SES に
おける SPF を使った E メールの認証 (p. 87)」を参照してください。
Amazon SES で MAIL FROM ドメインを削除する
Amazon SES のデフォルトの MAIL FROM ドメインを使用する場合は、確認済みアイデンティティからカ
スタムの MAIL FROM ドメイン設定を削除できます。
次の手順では、Amazon SES コンソールを使用して、確認済み E メールアドレスまたはドメインの設定か
らカスタムの MAIL FROM ドメインを削除する方法を示しています。代わりに Amazon SES API を使用す
る場合は、「Amazon Simple Email Service API Reference」で SetIdentityMailFromDomain API に関す
る記述を参照してください。
確認済み E メールアドレスの設定からカスタムの MAIL FROM ドメインを削除するには
1.
Amazon SES コンソールの [verified email address list] に移動します。次の手順に従って移動すること
もできます。
a.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
b.
ナビゲーションペインの [Identity Management] で [Email Addresses] を選択します。
2.
確認済み E メールアドレスリストで、カスタムの MAIL FROM ドメインを削除する確認済み E メール
アドレスを選択します。
3.
確認済み E メールアドレスの詳細ペインで、[MAIL FROM Domain] を展開します。
4.
[Remove MAIL FROM Domain] を選択します。
5.
[Yes, Remove MAIL FROM Domain] を選択します。
6.
(オプション) DNS サービスにログインし、Amazon SES で MAIL FROM ドメインをセットアップし
た際に公開した MX レコードを削除します。
7.
(オプション) Amazon SES でカスタムの MAIL FROM ドメインをセットアップした際に公開した SPF
レコードを削除します。
確認済みドメインの設定からカスタムの MAIL FROM ドメインを削除するには
1.
2.
Amazon SES コンソールの [verified domain list] に移動するか、次の手順に従って、そこに移動しま
す。
a.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
b.
ナビゲーションペインで、[Identity Management] の [Domains] を選択します。
確認済みドメインリストで、カスタムの MAIL FROM ドメインを削除する確認済みドメインを選択し
ます。
API Version 2010-12-01
48
Amazon Simple Email Service 開発者ガイド
カスタムの MAIL FROM ドメインを使用する
3.
確認済みドメインの詳細ペインで、[MAIL FROM Domain] を展開します。
4.
[Remove MAIL FROM Domain] を選択します。
5.
[Yes, Remove MAIL FROM Domain] を選択します。
6.
(オプション) DNS サービスにログインし、Amazon SES で MAIL FROM ドメインをセットアップし
た際に公開した MX レコードを削除します。
7.
(オプション) Amazon SES でカスタムの MAIL FROM ドメインをセットアップした際に公開した SPF
レコードを削除します。
Amazon SES で MAIL FROM ドメインを編集する
次の手順では、Amazon SES コンソールを使用して、確認済み E メールアドレスまたはドメインのカスタ
ム MAIL FROM ドメイン設定を編集する方法を示しています。代わりに Amazon SES API を使用する場合
は、「Amazon Simple Email Service API Reference」で SetIdentityMailFromDomain API に関する記述
を参照してください。
確認済み E メールアドレスの MAIL FROM 設定を編集するには
1.
Amazon SES コンソールの [verified email address list] に移動します。次の手順に従って移動すること
もできます。
a.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
b.
ナビゲーションペインの [Identity Management] で [Email Addresses] を選択します。
2.
確認済み E メールアドレスリストで、MAIL FROM ドメインを設定する対象の E メールアドレスを選
択します。
3.
確認済み E メールアドレスの詳細ペインで、[MAIL FROM Domain] を展開します。
4.
[Edit MAIL FROM Domain] を選択します。
5.
[Edit MAIL FROM Domain] ダイアログボックスで、設定を編集し、[Save MAIL FROM Domain] を選
択します。
6.
設定の編集時に MAIL FROM ドメイン名を変更した場合は、新しい MAIL FROM ドメインの MX レ
コードを DNS サーバーに公開する必要があります。
7.
a.
MAIL FROM ドメインに対する DNS サービスの提供元が Amazon Route 53 であり、Amazon
Route 53 で使用している同じアカウントで AWS マネジメントコンソール にサインインしている
場合に、MX レコードまたは SPF レコード、あるいはその両方を Amazon SES コンソールで公
開するには、[Publish Records Using Route 53] を選択してください。
b.
ドメインで Amazon Route 53 が使用されていない場合は、表示された MX レコードを MAIL
FROM ドメインの DNS サーバーに自分で公開する必要があります。MX レコードをドメインの
DNS サーバーに追加する手順は、DNS サービスの提供元によって異なります。お使いの DNS
サービスのドキュメントを参照してください。Amazon SES によってレコードが検出されると、
この確認済み E メールアドレスから送信した E メールには、指定した MAIL FROM ドメインが
使用されます。それまで Amazon SES では、この手順で指定した設定に従って、デフォルトの
MAIL FROM ドメインが使用されるか、メッセージが拒否されます。Amazon SES では、MX レ
コードの検出までに、最大 72 時間かかることがあります。
(オプション) MAIL FROM ドメイン名を変更した場合に Sender Policy Framework (SPF) チェックに
合格するには、SPF レコードを MAIL FROM ドメインの DNS サーバーに公開することで、ドメイン
に代わって E メールの送信を Amazon SES に許可したことを受信側のメールサーバーに示す必要が
あります。詳細については、「Amazon SES における SPF を使った E メールの認証 (p. 87)」を参
照してください。
API Version 2010-12-01
49
Amazon Simple Email Service 開発者ガイド
カスタムの MAIL FROM ドメインを使用する
確認済みドメインの MAIL FROM 設定を編集するには
1.
Amazon SES コンソールの [verified domain list] に移動するか、次の手順に従って、そこに移動しま
す。
a.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
b.
ナビゲーションペインで、[Identity Management] の [Domains] を選択します。
2.
確認済みドメインリストで、MAIL FROM ドメインを設定する対象のドメインを選択します。
3.
確認済みドメインの詳細ペインで、[MAIL FROM Domain] を展開します。
4.
[Edit MAIL FROM Domain] を選択します。
5.
[Edit MAIL FROM Domain] ダイアログボックスで、設定を編集し、[Save MAIL FROM Domain] を選
択します。
6.
設定の編集時に MAIL FROM ドメイン名を変更した場合は、新しい MAIL FROM ドメインの MX レ
コードを DNS サーバーに公開する必要があります。
7.
a.
MAIL FROM ドメインに対する DNS サービスの提供元が Amazon Route 53 であり、Amazon
Route 53 で使用している同じアカウントで AWS マネジメントコンソール にサインインしている
場合に、MX レコードまたは SPF レコード、あるいはその両方を Amazon SES コンソールで公
開するには、[Publish Records Using Route 53] を選択してください。
b.
ドメインで Amazon Route 53 が使用されていない場合は、表示された MX レコードを MAIL
FROM ドメインの DNS サーバーに自分で公開する必要があります。MX レコードをドメインの
DNS サーバーに追加する手順は、DNS サービスの提供元によって異なります。お使いの DNS
サービスのドキュメントを参照してください。Amazon SES によってレコードが検出されると、
この確認済みドメインから送信した E メールには、指定した MAIL FROM ドメインが使用されま
す。それまで Amazon SES では、この手順で指定した設定に従って、デフォルトの MAIL FROM
ドメインが使用されるか、メッセージが拒否されます。Amazon SES では、MX レコードの検出
までに、最大 72 時間かかることがあります。
(オプション) MAIL FROM ドメイン名を変更した場合に Sender Policy Framework (SPF) チェックに
合格するには、SPF レコードを MAIL FROM ドメインの DNS サーバーに公開することで、ドメイン
に代わって E メールの送信を Amazon SES に許可したことを受信側のメールサーバーに示す必要が
あります。詳細については、「Amazon SES における SPF を使った E メールの認証 (p. 87)」を参
照してください。
Amazon SES での MAIL FROM ドメインのセットアップ状態
カスタムの MAIL FROM ドメインが使用されるようにアイデンティティを設定した後、Amazon SES が
DNS 設定内の必要な MX レコードを検出しようとする間は、セットアップの状態が "pending" になりま
す。この状態は、Amazon SES が MX レコードを検出したかどうかによって変化します。次の表は、そ
れぞれの状態に対応する E メール送信動作と Amazon SES のアクションを示します。状態が変化するた
びに、AWS アカウントに関連付けられている E メールアドレスに、Amazon SES から通知が送信されま
す。
状態
E メール送信動作
Amazon SES のア
クション
Pending
カスタムの MAIL FROM フォールバック設定を使用
Amazon SES は、
必要な MX レコー
ドの検出を 72 時
間試行します。検
出できない場合、
状態は "Failed" に
変化します。
API Version 2010-12-01
50
Amazon Simple Email Service 開発者ガイド
SPF レコードを設定する
状態
E メール送信動作
Amazon SES のア
クション
Success
カスタムの MAIL FROM ドメインを使用
Amazon SES で
は、必要な MX レ
コードがあるかど
うかを継続的に確
認します。
TemporaryFailure
カスタムの MAIL FROM フォールバック設定を使用
Amazon SES は、
必要な MX レコー
ドの検出を 72 時
間試行します。検
出できない場合、
状態は "Failed" に
変化します。検出
できた場合、状態
は "Success" に変
化します。
Failed
カスタムの MAIL FROM フォールバック設定を使用
Amazon SES は、
必要な MX レコー
ドを検出するため
の試行を停止しま
した。カスタムの
MAIL FROM ドメ
インを使用するに
は、MAIL FROM
ドメインを設定
する (p. 45) の
セットアッププロ
セスをやり直す必
要があります。
Amazon SES 用に SPF レコードを設定する
SPF レコードは ISP に対し、ドメインへのメール送信を Amazon SES に許可したことを示しま
す。Amazon SES を使用する場合、SPF レコードを公開すべきかどうかは、E メールが受信側のメール
サーバーによる SPF チェックに合格すればよいのか、SPF に基づく DMARC (Domain-based Message
Authentication, Reporting and Conformance) 認証に合格するために必要な追加要件も満たす必要があ
るのかによって決まります。詳細については、「Amazon SES における SPF を使った E メールの認
証 (p. 87)」を参照してください。
Amazon SES 用の SMTP 認証情報の取得
Amazon SES SMTP インターフェイスを使用するには、まず、SMTP ユーザー名とパスワードを作
成する必要があります。SMTP 認証情報を取得するには、「Amazon SES SMTP 認証情報を取得す
る (p. 55)」を参照してください。
Important
SMTP ユーザー名とパスワードは、AWS アクセスキー ID およびシークレットアクセスキーと同
じではありません。Amazon SES SMTP エンドポイントに対して自身の承認を行う際に、AWS
認証情報を使用しないでください。認証情報の詳細については、「Amazon SES での認証情報の
使用 (p. 287)」を参照してください。
API Version 2010-12-01
51
Amazon Simple Email Service 開発者ガイド
サンドボックスの外への移動
Amazon SES サンドボックスの外への移動
お客様を詐欺行為や不正行為から保護し、ISP およびメールの受信者に対する信頼性を確立できるよう
にするため、新しいユーザーには無制限の Amazon SES の使用をすぐに許可していません。新しいユー
ザーは、最初に Amazon SES のサンドボックスに配置されます。サンドボックスでは、すべての Amazon
SES E メール送信方法と機能へフルアクセスができるので、サービスのテストおよび評価ができます。た
だし、次の制限があります。
• Amazon SES メールボックスシミュレーターと、検証済み E メールアドレスおよびドメインだけにメー
ルを送信できます。
• メールは、検証済み E メールアドレスまたはドメインからのみ送信できます。
• 最大で 24 時間あたり 200 メッセージを送信できます。
• Amazon SES では、お客様のアカウントから最大で 1 秒あたり 1 メッセージを受け取ることができま
す。
受取人アドレスの制限を解除し、送信制限を引き上げるには、次の手順を使用してサポートセンターで
ケースを開く必要があります。
アカウントを Amazon SES サンドボックスの外に移動するには
1.
AWS マネジメントコンソール にサインインします。
2.
SES Sending Limits Increase case を開きます。ケースの作成に移動するには、サポートセンターに
アクセスし、[Create Case]、[Service Limit Increase] の順に選択してから、制限タイプとして [SES
Sending Limits] を選択することもできます。
3.
フォームで、以下の情報を入力します。
• リージョン: 送信制限の引き上げをリクエストする AWS リージョンを選択します。Amazon SES サ
ンドボックスのステータスと送信制限はリージョン単位で適用されます。詳細については、「リー
ジョンと Amazon SES (p. 296)」を参照してください。
• 制限: [Desired Daily Sending Quota] または [Desired Maximum Send Rate] を選択します。送信制限
については、「Amazon SES の送信制限の管理 (p. 167)」を参照してください。
Note
Amazon SES のメッセージ受信レートはこの最大送信レートよりも少ない場合がありま
す。
• 新しい制限値: リクエストするメール量を入力します。メール量は必要な分だけリクエストしてくだ
さい。 リクエストしたメール量が必ずしも許可されるわけではありません。リクエストする送信制
限を引き上げるほど、そのメール量の正当化に必要な理由が増えます。
• E メールのタイプ: [Transactional]、[System Notifications]、[Subscription]、[Marketing]、または
[Other] を選択します。
• ウェブサイトの URL. ウェブサイトへのリンクを入力します。必ずしも入力する必要はありません
が、リンクがあれば入力することを強くお勧めします。リクエストの評価に役立つためです。
• E メール送信は AWS のサービス条件と AWS の適正利用規約 (AUP) に準拠します。[Yes] または
[No] を選択します。
• 私は明確にリクエストされた受信者にのみメールを送信します.[Yes] または [No] を選択します。高
品質のメールを送信して受取人リストをクリーンな状態に維持する方法のヒントについては、「受
取人リストの取得と管理 (p. 201)」と「Amazon Simple Email Service の E メール送信のベストプ
ラクティスホワイトペーパー」を参照してください。
• バウンスや苦情を処理するプロセスがあります.[Yes] または [No] を選択します。バウンスと苦情の
監視および処理方法の詳細については、「バウンスと苦情の処理 (p. 202)」を参照してください。
• 申請理由の説明. できる限り詳しく状況を説明します。たとえば、送信する E メールがどのような
タイプであるか、ビジネスにどのように適しているかを説明します。想定される受取人に送信する
API Version 2010-12-01
52
Amazon Simple Email Service 開発者ガイド
E メールの送信
メールの質の高さを示す情報が多いほど、リクエストが承認される可能性は高くなります。リクエ
ストする制限値が高くなるほど、より詳しい情報を提供する必要があります。
AWS がお客様の申請を確認後、ケースに対応します。手続きには 1 営業日かかりますがご了承く
ださい。送信制限の引き上げが認められた場合は、アカウントはサンドボックスの外に移動され、
「To」アドレスを確認する必要はなくなります。
アカウントがサンドボックスの外に移動されたかどうかを判断するには、以下の 3 つの方法があります。
• SES Sending Limits Increase ケースでのやり取りにより、リクエストが許可されたことがわかります。
• Amazon SES を正常に使用して、検証済み E メールアドレスから自分が所有している未検証アド
レスに E メールメッセージを送信できます。E メールアドレスが検証されていないことを知らせる
MessageRejected エラーを受け取った場合は、サンドボックスにとどまっている。
• Amazon SES コンソールは、送信クォータが 24 時間あたり 200 のメッセージより高いことを示しま
す。詳細については、「Amazon SES 送信制限のモニタリング (p. 168)」を参照してください。
アカウントがサンドボックスの外に移動されたら、「To」アドレスまたはドメインを確認する必要はなく
なります。ただし、追加の「From」アドレスまたはドメイン、「Return-Path」アドレスまたはドメイン
は、まだ確認する必要があります。時間の経過とともに、Amazon SES は送信制限を徐々に引き上げま
す。しかし、段階的な引き上げがニーズを満たさない場合は、また別の SES Sending Limits Increase ケー
スを開くことができます。詳細については、「Amazon SES の送信制限の管理 (p. 167)」を参照してく
ださい。
Amazon SES で E メールを送信する
Amazon SES コンソール、Amazon SES Simple Mail Transfer Protocol(SMTP)インターフェイス、ま
たは Amazon SES API を使用し、Amazon Simple Email Service(Amazon SES)を介して E メールを送
信できます。通常、テスト E メールを送信して送信アクティビティを管理する場合は、コンソールを使用
します。一括 E メールを送信する場合には、SMTP インターフェイスまたは API を使用します。Amazon
SES E メールの料金については、「Amazon SES の料金」を参照してください。
• SMTP 対応のソフトウェアパッケージ、アプリケーション、またはプログラミング言語を使用
し、Amazon SES を介して E メールを送信する場合や、Amazon SES を既存のメールサーバーに統合
する場合には、Amazon SES SMTP インターフェイスを使用します。詳細については、「Amazon SES
SMTP インターフェイスを使用して E メールを送信する (p. 54)」を参照してください。
• raw HTTP リクエストを使用して、Amazon SES を呼び出す場合には、Amazon SES API を使用しま
す。詳細については、「Amazon SES API を使用して E メールを送信する (p. 79)」を参照してくだ
さい。
E メールを送信する前に、「Amazon SES で E メールをセットアップする (p. 35)」を参照してくださ
い。
Important
複数の受取人(「To」、「CC」、「BCC」の各アドレスで受取人が指定されている)にメール
を送信する場合、Amazon SES の呼び出しに失敗すると、E メール全体が拒否されて、どの受信
者も目的のメールを受信できません。そのため、1 回につき 1 人の受取人に E メールを送信する
ことをお勧めします。
Amazon SES のさまざまなトピックに関する技術的な考察については、「Amazon SES ブログ」をご覧
ください。お問い合わせを参照あるいは発信するには「Amazon SES フォーラム」をご覧ください。
API Version 2010-12-01
53
Amazon Simple Email Service 開発者ガイド
SMTP インターフェイス の使用
Amazon SES SMTP インターフェイスを使用して E
メールを送信する
Amazon SES を介して本稼働 E メールを送信する場合には、Simple Mail Transfer Protocol(SMTP)イン
ターフェイスまたは Amazon SES API を使用できます。Amazon SES API の詳細については、「Amazon
SES API を使用して E メールを送信する (p. 79)」を参照してください。このセクションでは、SMTP
インターフェイスについて説明します。
Amazon SES は、インターネットで最も一般的な E メールプロトコルである SMTP を使用してメールを
送信します。Amazon SES の SMTP インターフェイスに接続する SMTP 対応のさまざまなプログラミン
グ言語やソフトウェアを使用することにより、Amazon SES を介して E メールを送信できます。このセク
ションでは、Amazon SES を介して E メールを送信するために、Amazon SES の SMTP 認証情報を取得
する方法、SMTP インターフェイスを使用して E メールを送信する方法、および、各種のソフトウェアお
よびメールサーバーの設定方法を説明します。
Note
SMTP インターフェイスを介して Amazon SES を使用する際に発生する可能性がある一般的な問
題の解決策については、「Amazon SES SMTP に関する問題 (p. 212)」を参照してください。
Amazon SES SMTP インターフェイスを使用して E メールを送信するには、次の情報が必要です。
• AWS アカウント。詳細については、「AWS にサインアップする (p. 36)」を参照してください。
• SMTP インターフェイスのホスト名(エンドポイント)。Amazon SES SMTP エンドポイントのリスト
は、「Amazon SES SMTP エンドポイントに接続する (p. 58)」を参照してください。
• SMTP インターフェイスのポート番号。ポート番号は接続方法によって変わります。詳細については、
「Amazon SES SMTP エンドポイントに接続する (p. 58)」を参照してください。
• SMTP ユーザー名とパスワード。すべての AWS リージョンで、同じ SMTP 認証情報セットを使用でき
ます。
Important
SMTP ユーザー名とパスワードは、Amazon SES コンソールにログインするときに使用する
AWS アクセスキーや認証情報と同じではありません。SMTP ユーザー名とパスワードを生成す
る方法については、「Amazon SES SMTP 認証情報を取得する (p. 55)」を参照してくださ
い。
• Transport Layer Security(TLS)を使用して通信できるクライアントソフトウェア。詳細については、
「Amazon SES SMTP エンドポイントに接続する (p. 58)」を参照してください。
• Amazon SES で検証済みの E メールアドレス。詳細については、「Amazon SES での E メールアドレ
スとドメインの検証 (p. 36)」を参照してください。
• 大量の E メールを送信する場合、送信制限を引き上げます。詳細については、「Amazon SES の送信制
限の管理 (p. 167)」を参照してください。
次に、以下を実行することにより、E メールを送信できます:
• Amazon SES を介してメールを送信するために、E メールクライアントを設定する方法については、
「Amazon SES を介して送信するために、E メールクライアントを設定する (p. 59)」を参照してく
ださい。Microsoft Outlook の例が含まれています。
• Amazon SES SMTP インターフェイスを介して E メールを送信するために、SMTP 対応ソフトウェア
を設定する方法については、「ソフトウェアパッケージから Amazon SES を介して E メールを送信す
る (p. 61)」を参照してください。課題管理ソフトウェア Jira の例が含まれています。
• Amazon SES を介して E メールを送信するようにアプリケーションをプログラムするには、「アプリ
ケーションから Amazon SES を介して E メールを送信する (p. 62)」を参照してください。
API Version 2010-12-01
54
Amazon Simple Email Service 開発者ガイド
SMTP インターフェイス の使用
• Amazon SES を介してすべての送信 E メールを送信するために、既存の E メールサーバーを設定する
方法については、「Amazon SES を既存の E メールサーバーに統合する (p. 62)」を参照してくださ
い。
• コマンドラインを使用して、Amazon SES SMTP インターフェースを操作する(テストを行うときに
有効)方法については、「コマンドラインを使用し、Amazon SES SMTP インターフェイスを介して E
メールを送信する (p. 77)」を参照してください。
SMTP 応答コードのリストについては、「Amazon SES から返される SMTP 応答コード (p. 214)」を参
照してください。
提供する E メール情報
SMTP インターフェイスで Amazon SES にアクセスする場合、SMTP クライアントアプリケーションで
メッセージがアセンブルされるため、提供する必要のある情報は使用するアプリケーションによって異な
ります。少なくとも、クライアントとサーバー間の SMTP 交換には、送信元アドレス、宛先アドレス、お
よびメッセージデータが必要です。
SMTP インターフェイスを使用していて、フィードバック転送が有効になっている場合、バウンス、苦
情、配信通知は "MAIL FROM" アドレスに送信されます。指定した "Reply-To" アドレスはいずれも使用さ
れません。
Amazon SES SMTP 認証情報を取得する
Amazon SES SMTP インターフェイスにアクセスするには、Amazon SES SMTP のユーザー名とパスワー
ドが必要です。すべての AWS リージョンで、同じ SMTP 認証情報セットを使用できます。
Important
SMTP ユーザー名とパスワードは、AWS アクセスキー ID およびシークレットアクセスキーと同
じではありません。SMTP エンドポイントに対して認証を行う際に、AWS 認証情報を使用しない
でください。認証情報の詳細については、「Amazon SES での認証情報の使用 (p. 287)」を参
照してください。
SMTP 認証情報を生成するには、2 とおりの方法があります。Amazon SES コンソールを使用する方法
か、AWS 認証情報から SMTP 認証情報を生成させる方法のいずれかを使用できます。
次の場合には、Amazon SES コンソールを使用して、SMTP 認証情報を生成します。
• 最も簡単な方法で、SMTP 認証情報を取得したい。
• コードまたはスクリプトを使用して SMTP 証明書を自動的に生成させる必要がない。
次の場合には、AWS の認証情報から SMTP 認証情報を生成します。
• IAM インターフェイスを使用して作成した既存の AWS Identity and Access Management (IAM) ユー
ザーが存在し、そのユーザーが Amazon SES SMTP インターフェイスを使用して E メールを送信でき
るようにしたい。
• コードまたはスクリプトを使用して、SMTP 証明書の生成を自動化したい。
それぞれの方法の詳細については、「Amazon SES コンソールを使用して Amazon SES SMTP 認証情報
を取得する (p. 56)」および「AWS 認証情報を変換することにより、Amazon SES SMTP 認証情報を取
得する (p. 56)」を参照してください。
API Version 2010-12-01
55
Amazon Simple Email Service 開発者ガイド
SMTP インターフェイス の使用
Amazon SES コンソールを使用して Amazon SES SMTP 認証情報を取得する
Amazon SES コンソールを使用して SMTP 認証情報を生成する場合、Amazon SES コンソール
は、Amazon SES を呼び出すための適切なポリシーを持った IAM ユーザーを作成した上で、そのユーザー
に関連付けられている SMTP 認証情報を提示します。
Note
IAM ユーザーは Amazon SES SMTP 認証情報を作成できます。ただし、Amazon SES SMTP
認証情報は IAM によって作成されるため、IAM ユーザーのポリシーは、IAM そのものを使用す
るためのアクセス許可を IAM ユーザーに与えるものでなければなりません。IAM ユーザーがコ
ンソールを使用して Amazon SES SMTP 認証情報を作成するときに、IAM ユーザーに IAM へ
のアクセス許可がない場合には、"… not authorized to perform iam:ListUsers…" というエラー
メッセージが表示されます。このようなとき、ルートアカウントの所有者は、IAM ユーザーが
「iam:ListUsers」、「iam:CreateUser」、「iam:CreateAccessKey」、「iam:PutUserPolicy」と
いう IAM アクションにアクセスできるように、IAM ユーザーのポリシーを変更する必要がありま
す:
SMTP 認証情報を作成するには
1.
AWS マネジメントコンソールにサインインし、https://console.aws.amazon.com/ses/ で Amazon
SES コンソールを開きます。
2.
ナビゲーションペインで [SMTP Settings] を選択します。
3.
コンテンツペインで、[Create My SMTP Credentials] を選択します。
4.
[Create User for SMTP] ダイアログボックスに、SMTP ユーザー名が入力されていることがわかりま
す。この推奨ユーザー名を受け入れるか、または、別のユーザー名を入力することもできます。続行
するには、[Create] を選択します。
5.
[Show User SMTP Credentials] を選択します。SMTP 認証情報が画面に表示されます。これをコピー
して安全な場所に保存します。[Download Credentials] を選択して、自身の認証情報を含むファイル
をダウンロードすることもできます。
Important
これは、SMTP 認証情報を確認することができる唯一の機会です ! これらの認証情報はダウ
ンロードしておき、他のユーザーに知られないようにすることを強くお勧めします。
6.
[Close Window] を選択します。
SMTP 認証情報を削除する場合は、https://console.aws.amazon.com/iam/ の IAM コンソールに移動
し、SMTP 認証情報に対応する IAM ユーザー名を削除します。詳細については、『ユーザーの削除』ガイ
ドを参照してください。
SMTP パスワードを変更する場合には、IAM コンソールに移動して既存の IAM ユーザーを削除した上で、
さらに、Amazon SES コンソールに移動し、SMTP 認証情報をもう一度生成します。
AWS 認証情報を変換することにより、Amazon SES SMTP 認証情報を取得する
IAM インターフェイスを使用して設定した IAM ユーザーがいる場合は、その AWS 認証情報からユーザー
の Amazon SES SMTP 認証情報を取得できます。
Important
一時的な AWS 認証情報を使用して、SMTP 認証情報を取得しないでください。 Amazon
SESSMTP インターフェイスは、一時的なセキュリティ認証情報から生成された SMTP 認証情報
をサポートしていません。
IAM ユーザーが Amazon SES SMTP インターフェイスを使用して電子メールを送信できるようにするに
は、次の 2 つの手順を実行する必要があります。
API Version 2010-12-01
56
Amazon Simple Email Service 開発者ガイド
SMTP インターフェイス の使用
• このセクションで提供されるアルゴリズムを使用して AWS 認証情報からユーザーの SMTP 認証情報
を取得します。AWS 認証情報から開始するため、SMTP ユーザー名は AWS アクセスキー ID と同じで
す。そのため SMTP パスワードを生成する必要があります。
Important
Amazon SES コンソールを使用して SMTP 認証情報を生成する場合、SMTP ユーザー名は
AWS アクセスキー ID とは異なります。このセクションで説明したように、SMTP ユーザー名
と AWS アクセスキー ID は、プログラムによって SMTP パスワードを生成する場合のみ同じ
となります。
• IAM ユーザーに次のポリシーを適用します。
{ "Statement": [{
"Effect":"Allow",
"Action":"ses:SendRawEmail",
"Resource":"*"
}]}
IAM で Amazon SES を使用する場合の詳細については、「Amazon SES へのアクセスの制
御 (p. 272)」を参照してください。
Note
既存の IAM ユーザーに対して Amazon SES SMTP 認証情報を生成できますが、セキュリティ上
の理由から、SMTP パスワードの生成に使用する AWS 認証情報に対して別の IAM ユーザーを
作成することをお勧めします。目的別にユーザーを作成することが推奨される理由については、
「IAM のベストプラクティス」を参照してください。
次の擬似コードは、AWS シークレットアクセスキーを Amazon SES SMTP パスワードに変換するアルゴ
リズムを示しています。
key = AWS Secret Access Key;
message = "SendRawEmail";
versionInBytes = 0x02;
signatureInBytes = HmacSha256(message, key);
signatureAndVer = Concatenate(versionInBytes, signatureInBytes);
smtpPassword = Base64(signatureAndVer);
次は、AWS シークレットアクセスキーを Amazon SES SMTP パスワードに変換する Java の実装例で
す。プログラムを実行する前に、環境変数の AWS_SECRET_ACCESS_KEY に IAM ユーザーの AWS
シークレットアクセスキーを入力します。このプログラムの出力は、SMTP パスワードです。このパス
ワードと SMTP ユーザー名 (SMTP パスワードをプログラムで生成した場合には AWS アクセスキー ID と
同じ) が、ユーザーの Amazon SES SMTP 認証情報です。
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import javax.xml.bind.DatatypeConverter;
public class SesSmtpCredentialGenerator {
private static final String KEY_ENV_VARIABLE = "AWS_SECRET_ACCESS_KEY"; // Put your
AWS secret access key in this environment variable.
private static final String MESSAGE = "SendRawEmail"; // Used to generate the HMAC
signature. Do not modify.
private static final byte VERSION = 0x02; // Version number. Do not modify.
public static void main(String[] args) {
// Get the AWS secret access key from environment variable
AWS_SECRET_ACCESS_KEY.
API Version 2010-12-01
57
Amazon Simple Email Service 開発者ガイド
SMTP インターフェイス の使用
String key = System.getenv(KEY_ENV_VARIABLE);
if (key == null)
{
System.out.println("Error: Cannot find environment variable
AWS_SECRET_ACCESS_KEY.");
System.exit(0);
}
// Create an HMAC-SHA256 key from the raw bytes of the AWS secret access key.
SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(), "HmacSHA256");
try {
// Get an HMAC-SHA256 Mac instance and initialize it with the AWS
secret access key.
Mac mac = Mac.getInstance("HmacSHA256");
mac.init(secretKey);
// Compute the HMAC signature on the input data bytes.
byte[] rawSignature = mac.doFinal(MESSAGE.getBytes());
// Prepend the version number to the signature.
byte[] rawSignatureWithVersion = new byte[rawSignature.length + 1];
byte[] versionArray = {VERSION};
System.arraycopy(versionArray, 0, rawSignatureWithVersion, 0, 1);
System.arraycopy(rawSignature, 0, rawSignatureWithVersion, 1,
rawSignature.length);
// To get the final SMTP password, convert the HMAC signature to base
64.
String smtpPassword =
DatatypeConverter.printBase64Binary(rawSignatureWithVersion);
System.out.println(smtpPassword);
}
catch (Exception ex) {
System.out.println("Error generating SMTP password: " +
ex.getMessage());
}
}
}
Amazon SES SMTP エンドポイントに接続する
次の表は、Amazon SES を利用できるリージョンの Amazon SES SMTP エンドポイントを示します。
リージョン名
SMTP エンドポイント
米国東部(バージニア北部)
email-smtp.us-east-1.amazonaws.com
米国西部 (オレゴン)
email-smtp.us-west-2.amazonaws.com
欧州 (アイルランド)
email-smtp.eu-west-1.amazonaws.com
Amazon SES SMTP エンドポイントでは、すべての接続が Transport Layer Security(TLS)を使用して暗
号化されている必要があります(TLS は、前のバージョンのプロトコルの名前である SSL と呼ばれること
があります)。Amazon SES は、TLS で暗号化された接続を確立するために、STARTTLS、TLS ラッパー
という 2 とおりのメカニズムをサポートしています。ソフトウェアが STARTTLS および TLS ラッパーを
サポートしているかどうかは、ソフトウェアのドキュメントを参照してください。
ソフトウェアが STARTTLS も TLS ラッパーもサポートしていない場合には、オープンソースの stunnel
プログラムを使用して、暗号化された接続(「安全なトンネル」と呼ばれる)を設定し、安全なトンネル
を使用して Amazon SES SMTP エンドポイントに接続します。
API Version 2010-12-01
58
Amazon Simple Email Service 開発者ガイド
SMTP インターフェイス の使用
Important
Amazon Elastic Compute Cloud (Amazon EC2) では、E メールトラフィックをデフォルトでポー
ト 25 経由のみに制限しています。EC2 から SMTP エンドポイントを介して E メールを送信す
る際のタイムアウトを回避するには、他のポート(587 または 2587)を使用するか、または
「Request to Remove Email Sending Limitations」に必要事項を入力してスロットルを削除しま
す。
STARTTLS
STARTTLS とは、暗号化されていない接続を暗号化された接続にアップグレードする方法で
す。STARTTLS には、様々なプロトコルに対応したバージョンがあります。SMTP バージョンは、「RFC
3207」に定義されています。
STARTTLS 接続を設定する場合、SMTP クライアントは、ポート 25、587、または 2587 で Amazon SES
SMTP エンドポイントに接続し、EHLO コマンドを発行します。次に、サーバーから STARTTLS SMTP
拡張機能をサポートしているという通知が来るのを待ちます。通知を受けたクライアントは、STARTTLS
コマンドを発行し、TLS ネゴシエーションを開始します。ネゴシエーションが完了すると、クライアント
が暗号化された新しい接続で EHLO コマンドを発行し、SMTP セッションが正常に進行します。
TLS ラッパー
TLS ラッパー(SMTPS またはハンドシェイクプロトコルとも呼ばれる)は、最初に暗号化されていない
接続を確立するのではなく、最初から暗号化された接続を開始する方法です。TLS ラッパーを使用する場
合、Amazon SES SMTP エンドポイントは TLS ネゴシエーションを実行しません。TLS を使用してエン
ドポイントに接続し、通信全体で TLS の使用を継続するのはクライアントの役割です。TLS ラッパーは古
いプロトコルですが、数多くのクライアントが今もサポートしています。
TLS ラッパー接続を設定する場合、SMTP クライアントは、Amazon SES SMTP エンドポイントにポート
465 または 2465 で接続します。サーバーが自身の証明書を提示すると、クライアントが EHLO コマンド
を発行し、SMTP セッションが正常に進行します。
安全なトンネル
ソフトウェアが STARTTLS も TLS ラッパーもサポートしていない場合、ソフトウェアは、セキュアなト
ンネルを設定することによって、Amazon SES SMTP エンドポイントと通信できるようになります。この
オプションは、メールサーバー管理者によって最もよく使用されています。詳細については、「Amazon
SES を既存の E メールサーバーに統合する (p. 62)」を参照してください。
Amazon SES を介して送信するために、E メールクライアントを
設定する
SMTP ユーザー名とパスワード (p. 55)を取得すると、Amazon SES でメールを送信できるようになり
ます。SMTP をサポートし、Transport Layer Security (TLS) を使用して SMTP エンドポイントに接続でき
るものなら、どのような E メールクライアントアプリケーションも使用できます。
次の手順は、E メールクライアントの 1 つである Microsoft Outlook 2013 を設定し、Amazon SES SMTP
インターフェイスを介してメールを送信する方法を示しています。他のメールクライアントを使用してい
る場合には、E メールクライアントのベンダーの指示に従い、次の手順に記載された設定を使用してくだ
さい。
Microsoft Outlook 2013 を設定して Amazon SES を介してメールを送信するには
1.
Microsoft Outlook で、[File] を選択し、[Info] を選択します。
2.
3.
[Add Account] を選択します。
[Add Account] ダイアログボックスで [Manual setup or additional server types] を選択し、[Next] を選
択します。
API Version 2010-12-01
59
Amazon Simple Email Service 開発者ガイド
SMTP インターフェイス の使用
4.
[Choose Service] で [ POP or IMAP] を選択し、[Next] を選択します。
5.
[POP and IMAP Account Settings] で、次のフィールドに入力します。
a.
Your Name—名前を入力します。
b.
Email Address—E メールを送信する E メールアドレスを入力します。この E メールアドレスま
たはドメインを検証する (p. 36)必要があります。E メールアドレスでは大文字と小文字が区別
されます。検証したアドレスと完全に一致するアドレスであることを確認してください。
c.
Account Type—POP3 を選択します。
d.
Incoming mail server—none と入力します。(Amazon SES が E メール送信専用に設定されている
場合でも、このフィールドは必須です。)
e.
Outgoing mail server (SMTP)—送信用メールサーバーの SMTP エンドポイントを入力しま
す。Amazon SES SMTP エンドポイントのリストは、「Amazon SES SMTP エンドポイン
トに接続する (p. 58)」を参照してください。たとえば、米国西部 (オレゴン) リージョ
ンの Amazon SES エンドポイントを使用する場合、送信メールサーバーは email-smtp.uswest-2.amazonaws.com です。
f.
User Name—none と入力します。(この手順の後で、認証情報を設定します)。
6.
[More Settings] を選択します。
7.
[Internet E-Mail Settings] ダイアログボックスで、[Outgoing Server] タブを選択し、次のフィールドに
入力します。
a.
My outgoing server (SMTP) requires authentication—このチェックボックスをオンにします。
b.
Log on using—このオプションを選択します。
c.
User Name—SMTP ユーザー名の認証情報を入力します。Amazon SES SMTP 認証情報を取得す
る (p. 55)の手順を使用して取得した文字と数字の文字列です。
Important
SMTP ユーザー名 (p. 55)は、AWS アクセスキー ID と同じではありません。
d.
Password—SMTP パスワードを入力します。Amazon SES SMTP 認証情報を取得す
る (p. 55)の手順を使用して取得した文字と数字の文字列です。
Important
SMTP パスワード (p. 55)は、AWS シークレットアクセスキーと同じではありませ
ん。
e.
8.
Remember Password—このチェックボックスを選択します。
[Advanced] タブを選択し、次のフィールドに入力します。
Note
この例では、一般的な設定を示しています。代替設定については、Amazon SES SMTP エン
ドポイントに接続する (p. 58)を参照してください。[TLS] というラベルの付いた Outlook
暗号化接続タイプは STARTTLS (p. 59) に対応します。[SSL] というラベルの付いた
Outlook 暗号化接続タイプは TLS ラッパー (p. 59) に対応します。
9.
a.
Outgoing server (SMTP)—587 と入力します。
b.
Use the following type of encrypted connection—TLS を選択します。
[OK] を選択します。
10. [Add Account] ページで、[Test Account Settings] を選択します。これにより、Outlook が Amazon
API Version 2010-12-01
SES を介して E メールを送信するため、設定結果をテストできます。
60
Amazon Simple Email Service 開発者ガイド
SMTP インターフェイス の使用
Note
Amazon SES を E メール送信専用サーバーとして使用しているため、受信用メールサーバー
へのログインテストは失敗します。テストメールの送信テストには合格するはずです。
11. Amazon SES を介して Outlook が送信したテストメーセージが正しく到着していたら、[Test Account
Settings by clicking the Next button] チェックボックスの選択を解除した上で (受信 E メールを設定し
ない場合テストが失敗するため)、[Next] を選択します。
12. [Next ] を選択し、さらに [Finish] を選択します。
13. Amazon SES は E メール送信専用に設定されています。アカウントの設定で、Amazon SES を使用
してメッセージを受信しないように、以下のステップに従ってアカウントでの電子メール取得を無効
にする必要があります。
a.
Microsoft Outlook の、[Send/Receive] タブを選択します。
b.
[Send/Receive] タブで、[Send/Receive Groups] を選択し、さらに、[Define Send/Receive
Groups] を選択します。
c.
[Send/Receive Groups] ダイアログボックスで、[Edit] を選択します。
d.
左の [Accounts] セクションで、Amazon SES を介してメールを送信するために作成したばかりの
アカウントを選択します。
e.
[Account Options] の下にある [Receive mail items] の選択を解除します。
f.
[OK] を選択し、[Close] を選択します。
ソフトウェアパッケージから Amazon SES を介して E メールを
送信する
SMTP を介した E メール送信をサポートしている市販/オープンソースのソフトウェアパッケージは多数あ
ります。次に例を示します。
• ブログプラットフォーム
• RSS アグリゲータ
• リスト管理ソフトウェア
• ワークフローシステム
上記の SMTP 対応ソフトウェアは、Amazon SES SMTP インターフェイスを介して E メールを送信する
ように設定できます。個々のソフトウェアパッケージの SMTP 設定手順については、各ソフトウェアのド
キュメントを参照してください。
次の手順は、一般的な問題追跡ソリューションである JIRA で Amazon SES 送信を設定する方法を示し
ています。この設定により、ソフトウェアの問題のステータスが変化したときに JIRA からユーザーに E
メールで通知できるようになります。
Amazon SES を介して E メールを送信するために、JIRA を設定するには
1.
ウェブブラウザーを使用し、管理者認証情報で JIRA にログインします。
2.
ブラウザのウィンドウで、[Administration] を選択します。
3.
[System] メニューで、[Mail] を選択します。
4.
[Mail administration] ページで、[Mail Servers] を選択します。
5.
[Configure new SMTP mail server] を選択します。
6.
[Add SMTP Mail Server] フォームで、次のフィールドに入力します。
a.
[Name] - サーバー名(わかりやすい名前にします)
API Version 2010-12-01
61
Amazon Simple Email Service 開発者ガイド
SMTP インターフェイス の使用
b.
[From address] - E メールの送信元アドレス。この E メールアドレスから送信する前に、Amazon
SES でこの E メールアドレスを検証する必要があります。検証の詳細については、「Amazon
SES での E メールアドレスとドメインの検証 (p. 36)」を参照してください。
c.
[Email prefix] - 送信前に、件名行の前に JIRA が付加する文字列
d.
プロトコル - [SMTP] を選択します。
Note
この設定を使用して Amazon SES に接続できない場合は、SECURE_SMTP を試してく
ださい。
e.
[Host Name] - Amazon SES SMTP エンドポイントのリストについては、「Amazon SES SMTP
エンドポイントに接続する (p. 58)」を参照してください。たとえば、米国西部 (オレゴ
ン) リージョンの Amazon SES エンドポイントを使用する場合、ホスト名は email-smtp.uswest-2.amazonaws.com となります。
f.
[SMTP Port] - 25、587、2587 のいずれか(STARTTLS を使用して接続する場合)、または
465、2465 のいずれか(TLS ラッパーを使用して接続する場合)。
g.
[TLS] - このチェックボックスをオンにします。
h.
[Username] - SMTP ユーザー名
i.
[Password] - SMTP パスワード
TLS ラッパーの設定を次に示します。
7.
[Test Connection] を選択します。Amazon SES を介して JIRA が送信したテスト E メールが正しく到
着すれば、設定は完了です。
アプリケーションから Amazon SES を介して E メールを送信す
る
多くのプログラミング言語は、SMTP を使用した E メールの送信をサポートしています。この機能は、プ
ログラミング言語自体に組み込まれている場合もありますが、アドオン、プラグイン、またはライブラリ
として利用できる場合もあります。この機能を利用することで、ユーザーが作成するアプリケーションプ
ログラム内から Amazon SES を介して E メールを送信できます。
C#、および Java の例については、「はじめに」セクションの「プログラミングで Amazon SES の SMTP
インターフェイスにアクセスして E メールを送信する (p. 19)」を参照してください。
Amazon SES を既存の E メールサーバーに統合する
現在、E メールサーバーをお客様が管理している場合には、Amazon SES SMTP エンドポイントを使用し
て、外部へのメールをすべて Amazon SES に送信できます。既存の E メールクライアントや E メールア
プリケーションに変更を加える必要はありません。Amazon SES への転送は、これらのクライアントやア
プリケーションに対して透過的です。
メール転送エージェント(MTA)の中には、SMTP リレーを介した E メールの送信をサポートしているも
のもあります。このセクションでは、一般的ないくつかの MTA について、Amazon SES SMTP インター
フェイスを使用して E メールを送信するための設定方法について、一般的なガイダンスを提供します。
• Amazon SES を介して E メールを送信するために Postfix を設定する方法は、「Amazon SES と Postfix
の連携 (p. 64)」を参照してください。
• Amazon SES を介して E メールを送信するために Sendmail を設定する方法は、「Amazon SES と
Sendmail の連携 (p. 68)」を参照してください。
• Amazon SES を介して E メールを送信するために Microsoft Exchange を設定する方法は、「Amazon
SES を Microsoft Exchange に統合する (p. 72)」を参照してください。
API Version 2010-12-01
62
Amazon Simple Email Service 開発者ガイド
SMTP インターフェイス の使用
• Amazon SES を介して E メールを送信するように Microsoft Windows Server の IIS SMTP サーバーを設
定するには、「Amazon SES を Microsoft Windows Server IIS SMTP に統合する (p. 74)」を参照して
ください。
• Amazon SES を介して E メールを送信するために Exim を設定する方法は、「Amazon SES を Exim に
統合する (p. 75)」を参照してください。
Amazon SES SMTP エンドポイントでは、すべての接続が Transport Layer Security(TLS)を使用して暗
号化されている必要がありますTLS ラッパーを使用したいが、MTA が TLS ラッパーをサポートしていな
い場合には、「安全なトンネル」を設定することで TLS ラッパーをサポートできます。詳細については、
「Amazon SES に接続するために、安全なトンネルを設定する (p. 63)」を参照してください。
Amazon SES に接続するために、安全なトンネルを設定する
Amazon SES SMTP エンドポイントでは、すべての接続が Transport Layer Security(TLS)を使用して暗
号化されている必要がありますAmazon SES SMTP エンドポイントに接続するために TLS ラッパーを使
用したいが、MTA が TLS ラッパーをサポートしていない場合には、「安全なトンネル」を設定すること
で TLS ラッパーをサポートできます。その 1 つの方法はオープンソースの stunnel プログラムを使用する
ことです。stunnel は、SSL ポートのポート 465 専用であることに注意してください。
Important
MTA には、TLS ラッパーをネイティブでサポートしているものとサポートしていないものがあ
ります。メールサーバーが TLS ラッパーをサポートしているかどうかを確認するには、各メール
サーバーのドキュメントを参照してください。メールサーバーが TLS ラッパーをサポートしてい
る場合には、安全なトンネルを設定する必要はありません。
以下の手順は、64 ビット Amazon EC2 インスタンスで、Red Hat ベースの以下の Amazon マシンイメー
ジ (AMI) を使用してテストしました。
• Amazon Linux AMI 2014.09.2 (HVM) (ami-146e2a7c)
Amazon EC2 インスタンスの起動(AMI の選択を含む)の手順については、「Amazon マシンイメージ
(AMI)」を参照してください。
stunnel プログラムを使用して Amazon SES 米国西部 (オレゴン) エンドポイントへ安全なトンネ
ルを設定するには
1.
stunnel ソフトウェアをダウンロードしてインストールします。詳細については、「http://
www.stunnel.org」を参照してください。
2.
Ubuntu Linux を使用している場合、stunnel は証明書を要求する場合があります。証明書を生成する
には、/etc/stunnel ディレクトリに移動し、コマンドプロンプトで、次のように入力します。
sudo openssl req -new -out mail.pem -keyout mail.pem -nodes -x509 -days 365
3.
/etc/stunnel/stunnel.conf というファイルを開くか、または作成します。
4.
安全なトンネルを設定するには、stunnel.conf に次の行を追加します。accept 行では、予約ポートの
範囲の外にあり、現在使用されていないポート番号を指定します。そのため、この例では、ポート
2525を使用します。
この解説では、米国西部 (オレゴン) AWS リージョンで Amazon SES を使用することとします。別の
リージョンを使用する場合は、この解説の email-smtp.us-west-2.amazonaws.com のインスタンスを
ご希望リージョンの SMTP エンドポイントに置き換えてください。SMTP エンドポイントのリストに
ついては、リージョンと Amazon SES (p. 296) を参照してください。
API Version 2010-12-01
63
Amazon Simple Email Service 開発者ガイド
SMTP インターフェイス の使用
Important
必ず delay = yes を含めてください。これにより、DNS ルックアップが必要時まで遅延され
ます。この指定がなければ、stunnel 接続に失敗することがあります。
[smtp-tls-wrapper]
accept = 2525
client = yes
connect = email-smtp.us-west-2.amazonaws.com:465
delay = yes
5.
バージョン 4.36 以下の stunnel を使用している場合は、stunnel.conf に次の行を追加します。
sslVersion = TLSv1
6.
Ubuntu Linux を使用している場合には、stunnel.conf に次の行を追加します。
cert = /etc/stunnel/mail.pem
7.
stunnel.conf を保存します。
8.
コマンドプロンプトで、次のコマンドを実行して stunnel を起動します。
sudo stunnel /etc/stunnel/stunnel.conf
9.
コマンドプロンプトで、次のコマンドを入力し、安全なトンネルが作成されたことを確認します。こ
の例ではポート 2525を使用していますが、別のポート番号を指定した場合には、それに応じてコマン
ドを変更します。
telnet localhost 2525
Amazon SES と Postfix の連携
Postfix は、広く利用されている Sendmail に代わる MTA として作成されました。Postfix の詳細について
は、「http://www.postfix.org」を参照してください。
以下の手順は、64 ビット Amazon EC2 インスタンスで、Red Hat ベースの以下の Amazon マシンイメー
ジ (AMI) を使用してテストしました。
• Amazon Linux AMI 2014.09.2 (HVM) (ami-146e2a7c)
Amazon EC2 インスタンスの起動(AMI の選択を含む)の手順については、「Amazon マシンイメージ
(AMI)」を参照してください。
前提条件
以降の各手順を実行する前に、次の点を確認してください。
• Sendmail をアンインストールした(Sendmail と Postfix を切り替える方法がわからない場合)。
• Postfix をインストールした。
• Amazon SES を使用せずに Postfix を使用して E メールを送信できる。
• 「From」アドレスを確認済みであること。さらに、アカウントがサンドボックスにまだある場合は、
「To」アドレスも確認済みであること。詳細については、「Amazon SES での E メールアドレスの検
証 (p. 37)」を参照してください。
• (オプション) Amazon SES を介して、Amazon EC2 インスタンスから E メールを送信する場合には、受
信側の ISP がその E メールを受信できるようにするために、Elastic IP アドレスを Amazon EC2 インス
タンスに割り当てる必要があります。詳細については、「Amazon EC2 Elastic IP アドレス」を参照して
ください。
API Version 2010-12-01
64
Amazon Simple Email Service 開発者ガイド
SMTP インターフェイス の使用
• (オプション) Amazon EC2 インスタンスから Amazon SES を経由して E メールを送信している場合、E
メール送信制限解除リクエストに必要事項を記入し、ポート 25 にデフォルトで適用される追加的な送
信制限を解除することができます。
STARTTLS を使用して Amazon SES 米国西部 (オレゴン) エンドポイントへの統合を設定するに
は
1.
メールサーバーで、main.cf ファイルを開きます。多くのシステムでは、このファイルは /etc/postfix
フォルダーにあります。
Important
この解説では、米国西部 (オレゴン) AWS リージョンで Amazon SES を使用することとしま
す。別のリージョンを使用する場合は、この解説の email-smtp.us-west-2.amazonaws.com
のすべてのインスタンスをご希望リージョンの SMTP エンドポイントに置き換えてくださ
い。SMTP エンドポイントのリストについては、リージョンと Amazon SES (p. 296) を参
照してください。
2.
main.cf ファイルに以下の行を追加します。
relayhost = [email-smtp.us-west-2.amazonaws.com]:25
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_use_tls = yes
smtp_tls_security_level = encrypt
smtp_tls_note_starttls_offer = yes
main.cf ファイルを保存して閉じます。
3.
メールサーバーで、master.cf ファイルを開きます。多くのシステムでは、このファイルは /etc/
postfix フォルダーにあります。
4.
master.cf ファイルの -o smtp_fallback_relay= の先頭に # を付けて、この行をコメントアウトしま
す。
master.cf ファイルを保存して閉じます。
5.
/etc/postfix/sasl_passwd ファイルを編集します。このファイルがない場合には、作成してください。
ファイルに次の行を追加します。USERNAME と PASSWORD は、SMTP ユーザー名とパスワードに
置き換えてください。ホスト名が一致しないために、Postfix が Amazon SES SMTP エンドポイント
で認証されない場合には、「Amazon SES SMTP に関する問題 (p. 212)」で指定されている行を追
加してみてください。
Important
AWS アクセスキー ID とシークレットアクセスキーではなく、SMTP ユーザー名とパスワー
ドを使用します。SMTP 認証情報と AWS 認証情報は同じではありません。SMTP 認証情報
を取得する方法については、「Amazon SES SMTP 認証情報を取得する (p. 55)」を参照
してください。
[email-smtp.us-west-2.amazonaws.com]:25 USERNAME:PASSWORD
sasl_passwd ファイルを保存して閉じます。
6.
コマンドプロンプトで次のコマンドを発行し、SMTP 認証情報を含む hashmap データベースファイ
ルを作成します。
sudo postmap hash:/etc/postfix/sasl_passwd
7.
(オプションだが推奨)/etc/postfix/sasl_passwd
ファイルを削除します。
API Version 2010-12-01
65
Amazon Simple Email Service 開発者ガイド
SMTP インターフェイス の使用
8.
(オプションだが推奨)前の手順で作成した /etc/postfix/sasl_passwd ファイルと /etc/postfix/
sasl_passwd.db ファイルは暗号化されていません。これらのファイルには SMTP 認証情報が含まれ
ているため、次のコマンドを使用して、所有者をルートに変更し、ファイルへのアクセスをできるだ
け制限するようにアクセス許可を設定することが推奨されます(前の手順で /etc/postfix/sasl_passwd
を削除している場合には、次のコマンドでこの部分を省略する必要があることに注意してくださ
い)。
sudo chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
9.
Postfix が CA 証明書の場所を認識できるようにします(Amazon SES サーバー証明書を検証するた
めに必要です)。自己署名証明書を使用するか、または次のようにデフォルトの証明書を使用できま
す。
Amazon Linux AMI で実行している場合
sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt'
Ubuntu Linux で実行している場合
sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt'
10. 設定の更新が完了したら、コマンドラインで次のように入力することで、Postfix をいったん停止した
後に起動します。
sudo postfix stop
sudo postfix start
11. コマンドラインで以下のように入力し、各行の最後で Enter キーを押して、テスト E メールを送信し
ます。[email protected] は、Amazon SES で検証済みの "From" E メールアドレスに置き換える必
要があることに注意してください。[email protected] の部分は実際の「To」アドレスに置き換えま
す。アカウントがサンドボックスにまだある場合は、「To」アドレスも確認済みである必要がありま
す。また、最後の行でピリオドを 1 つ入力していることにも注意してください。
sendmail -f [email protected] [email protected]
From: [email protected]
Subject: Test
This email was sent through Amazon SES!
.
12. E メールの受信箱を確認します。メッセージが届かなかった場合は、迷惑メールボックスを調べてか
ら、システムのメールログ(通常は /var/log/maillog)にエラーが記録されていないかを確認します。
たとえば、コマンドラインで "-f" の後ろの "From" アドレスが検証済みでない場合、"Email address
not verified" エラーが返されます。
安全なトンネルを使用して統合を設定するには
1.
開始する前に、「Amazon SES に接続するために、安全なトンネルを設定する (p. 63)」の記載に
従って安全なトンネルを設定する必要があります。次の手順では、ポート 2525 を stunnel ポートとし
て使用します。別のポートを使用する場合は、使用するポートに応じて実際に使用する設定を変更し
ます。
2.
メールサーバーで、main.cf ファイルを開きます。多くのシステムでは、このファイルは /etc/postfix
フォルダーにあります。
3.
main.cf ファイルに以下の行を追加します。
API Version 2010-12-01
66
Amazon Simple Email Service 開発者ガイド
SMTP インターフェイス の使用
relayhost = 127.0.0.1:2525
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = may
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
main.cf ファイルを保存して閉じます。
4.
メールサーバーで、master.cf ファイルを開きます。多くのシステムでは、このファイルは /etc/
postfix フォルダーにあります。
5.
master.cf ファイルの -o smtp_fallback_relay= の先頭に # を付けて、この行をコメントアウトしま
す。
master.cf ファイルを保存して閉じます。
6.
/etc/postfix/sasl_passwd ファイルを編集します。このファイルがない場合には、作成してください。
ファイルに次の行を追加します。USERNAME と PASSWORD は、SMTP ユーザー名とパスワードに
置き換えてください。
Important
AWS アクセスキー ID とシークレットアクセスキーではなく、SMTP ユーザー名とパスワー
ドを使用します。SMTP 認証情報と AWS 認証情報は同じではありません。SMTP 認証情報
を取得する方法については、「Amazon SES SMTP 認証情報を取得する (p. 55)」を参照
してください。
127.0.0.1:2525 USERNAME:PASSWORD
sasl_passwd ファイルを保存します。
7.
コマンドプロンプトで次のコマンドを発行し、SMTP 認証情報を含む hashmap データベースファイ
ルを作成します。
sudo postmap hash:/etc/postfix/sasl_passwd
8.
(オプションだが推奨)/etc/postfix/sasl_passwd ファイルを削除します。
9.
(オプションだが推奨)前の手順で作成した /etc/postfix/sasl_passwd ファイルと /etc/postfix/
sasl_passwd.db ファイルは暗号化されていません。これらのファイルには SMTP 認証情報が含まれ
ているため、次のコマンドを使用して、所有者をルートに変更し、ファイルへのアクセスをできるだ
け制限するようにアクセス許可を設定することが推奨されます(前の手順で /etc/postfix/sasl_passwd
を削除している場合には、次のコマンドでこの部分を省略する必要があることに注意してくださ
い)。
sudo chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
10. 設定の更新が完了したら、コマンドラインで次のように入力することで、Postfix をいったん停止した
後に起動します。
sudo postfix stop
sudo postfix start
11. コマンドラインで以下のように入力し、各行の最後で Enter キーを押して、テスト E メールを送信し
ます。[email protected] は、Amazon SES で検証済みの "From" E メールアドレスに置き換える必
要があることに注意してください。[email protected] の部分は実際の「To」アドレスに置き換えま
す。アカウントがサンドボックスにまだある場合は、「To」アドレスも確認済みである必要がありま
す。また、最後の行でピリオドを 1 つ入力していることにも注意してください。
sendmail -f [email protected] [email protected]
API Version 2010-12-01
67
Amazon Simple Email Service 開発者ガイド
SMTP インターフェイス の使用
From: [email protected]
Subject: Test
This email was sent through Amazon SES!
.
12. E メールの受信箱を確認します。メッセージが届かなかった場合は、迷惑メールボックスを調べてか
ら、システムのメールログ(通常は /var/log/maillog)にエラーが記録されていないかを確認します。
たとえば、コマンドラインで "-f" の後ろの "From" アドレスが検証済みでない場合、"Email address
not verified" エラーが返されます。
Amazon SES と Sendmail の連携
Sendmail は 1980 年代の初めにリリースされ、それ以降、継続的に改善されてきました。きわめて柔
軟性があり、各種設定ができる MTA であり、多くのインストール実績があります。Sendmail について
は、http://www.sendmail.com/sm/open_source/ を参照してください。
次の手順では、接続を暗号化するために、STARTTLS と安全なトンネルという 2 つの方法を使用
し、Amazon SES を介して E メールを送信するために Sendmail を設定する方法を示します。
以降の手順は、64 ビット Amazon EC2 インスタンスで以下の Amazon マシンイメージ (AMI) を使用して
テストしました。
• Amazon Linux AMI 2015.09.2 (ami-8fcee4e5)
Amazon EC2 インスタンスの起動(AMI の選択を含む)の手順については、「Amazon マシンイメージ
(AMI)」を参照してください。
前提条件
以降の各手順を実行する前に、次の点を確認してください。
• Sendmail パッケージがコンピュータにインストールされており、Amazon SES を介さずに Sendmail を
使用して正常に E メールを送信できること。
Note
Red Hat Linux を実行するコンピュータにパッケージがインストールされているかどうかを確認
するには、rpm -qa | grep <package>, where <package> is the package name と入力しま
す。Ubuntu Linux を実行するコンピュータにパッケージがインストールされているかどうかを
確認するには、dpkg -s <package> と入力します。
• Sendmail パッケージに加え、sendmail-cf、m4、cyrus-sasl-plain のパッケージがコンピュータにインス
トールされていること。
• 「From」アドレスを確認済みであること。さらに、アカウントがサンドボックスにまだある場合は、
「To」アドレスも確認済みであること。詳細については、「Amazon SES での E メールアドレスの検
証 (p. 37)」を参照してください。
• (オプション) Amazon SES を介して、Amazon EC2 インスタンスから E メールを送信する場合には、受
信側の ISP がその E メールを受信できるようにするために、Elastic IP アドレスを Amazon EC2 インス
タンスに割り当てる必要があります。詳細については、「Amazon EC2 Elastic IP アドレス」を参照して
ください。
• (オプション) Amazon EC2 インスタンスから Amazon SES を経由して E メールを送信している場合、E
メール送信制限解除リクエストに必要事項を記入し、ポート 25 にデフォルトで適用される追加的な送
信制限を解除することができます。
API Version 2010-12-01
68
Amazon Simple Email Service 開発者ガイド
SMTP インターフェイス の使用
STARTTLS を使用し、米国西部 (オレゴン) の Amazon SES エンドポイントを介して E メールを
送信するために、Sendmail を設定するには
1.
編集する /etc/mail/authinfo ファイルを開きます。このファイルがない場合には、作成してください。
Important
この解説では、米国西部 (オレゴン) AWS リージョンで Amazon SES を使用することとしま
す。別のリージョンを使用する場合は、この解説の email-smtp.us-west-2.amazonaws.com
のすべてのインスタンスをご希望リージョンの SMTP エンドポイントに置き換えてくださ
い。SMTP エンドポイントのリストについては、リージョンと Amazon SES (p. 296) を参
照してください。
2.
以下の行を /etc/mail/authinfo に追加します。
• U:root - 変更しないでください。
• I:USERNAME – USERNAME は、「Amazon SES SMTP 認証情報を取得する (p. 55)」の手順を
使用して取得した Amazon SES ユーザー名に置き換えてください。これは AWS アクセスキー ID
とは異なります。
• P:PASSWORD – PASSWORD は、「Amazon SES SMTP 認証情報を取得する (p. 55)」の手順
を使用して取得した Amazon SES パスワードに置き換えてください。これは AWS アクセスキーと
は異なります。
• M:LOGIN – LOGIN は、使用する認証方法に置き換えてください。PLAIN、DIGEST-MD5 などで
す。
AuthInfo:email-smtp.us-west-2.amazonaws.com "U:root" "I:USERNAME" "P:PASSWORD"
"M:LOGIN"
ホスト名が一致しないために、Sendmail が Amazon SES SMTP エンドポイントで認証されない場
合には、「Amazon SES SMTP に関する問題 (p. 212)」で指定されている行を追加してみてくださ
い。
3.
authinfo ファイルを保存します。
4.
コマンドプロンプトで、次のコマンドを入力し、/etc/mail/authinfo.db を生成します。
sudo makemap hash /etc/mail/authinfo.db < /etc/mail/authinfo
5.
/etc/mail/access ファイルを開き、次の行を追加して Amazon SES SMTP エンドポイントに中継する
ためのサポートを追加します。ホスト名が一致しないために、Sendmail が Amazon SES SMTP エン
ドポイントで認証されない場合には、「Amazon SES SMTP に関する問題 (p. 212).
Connect:email-smtp.us-west-2.amazonaws.com RELAY
」で指定されている行を追加してみてください。
ファイルを保存します。
6.
コマンドプロンプトで、次のコマンドを入力し、/etc/mail/access.db を再生成します。
sudo makemap hash /etc/mail/access.db < /etc/mail/access
7.
/etc/mail/sendmail.mc および /etc/mail/sendmail.cfのバックアップコピーを保存します。
8.
/etc/mail/sendmail.mc ファイルのすべての MAILER() 定義の前に、次の行グループを追加しま
す。MAILER() 定義の後に FEATURE() 行を追加した場合、後続の手順で m4 を実行すると、"ERROR:
FEATURE() should be before MAILER()." というエラーが表示されます。
API Version 2010-12-01
69
Amazon Simple Email Service 開発者ガイド
SMTP インターフェイス の使用
Important
米国西部 (オレゴン) 以外の AWS リージョンを使用している場合、SMART_HOST 値を使用中の
リージョンの Amazon SES SMTP エンドポイントに置き換えます。「`」および「'」の各記
号は、次のように、正確に使い分けてください。
define(`SMART_HOST', `email-smtp.us-west-2.amazonaws.com')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 25')dnl
define(`confAUTH_MECHANISMS', `LOGIN PLAIN')dnl
FEATURE(`authinfo', `hash -o /etc/mail/authinfo.db')dnl
MASQUERADE_AS(`YOUR_DOMAIN')dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
9.
先ほど sendmail.mc に追加したテキスト内で、MASQUERADE_AS で始まる行の YOUR_DOMAIN を、E
メール送信元のドメイン名に置き換えます。MASQUERADE_AS を追加することで、このホストか
らの E メールが見かけ上、ご利用のドメインから送信されているものとして認識されます。そう
しない場合には、メールサーバーのホスト名が送信元として認識されるため、E メールを送信する
と、"Email address not verified" というエラーが表示されます。
10. sendmail.mc ファイルを保存します。
11. コマンドプロンプトで次のコマンドを入力し、sendmail.cf を書き込み可能にします。
sudo chmod 666 /etc/mail/sendmail.cf
12. コマンドプロンプトで次のコマンドを入力し、sendmail.cf を再生成します。
sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
Note
"Command not found" や "No such file or directory" のようなエラーが表示される場合には、
上記の「前提条件」の項に記載されている方法で、m4 および sendmail-cf の各パッケージが
インストールされていることを確認してください。
13. コマンドプロンプトで次のコマンドを入力し、sendmail.cf の権限を読み取り専用にリセットします。
sudo chmod 644 /etc/mail/sendmail.cf
14. コマンドプロンプトで次のコマンドを入力し、Sendmail を再起動します。
sudo /etc/init.d/sendmail restart
15. 次の手順を実行して、テスト E メールを送信します。
1.
コマンドプロンプトで、以下を入力します。[email protected] は、Amazon SES で検証済みの
「From」E メールアドレスに置き換える必要があることに注意してください。[email protected]
の部分は実際の「To」アドレスに置き換えます。アカウントがサンドボックスにまだある場合
は、「To」アドレスも確認済みである必要があります。
sudo /usr/sbin/sendmail -f [email protected] [email protected]
2.
<Enter> キーを押します。<Enter> キーで行を折り返しながらメッセージの本文を入力します。
3.
E メールの入力を終えたら、Ctrl+D キーを押して E メールを送信します。
16. 受取人の E メールクライアントで E メールをチェックします。E メールが見つからない場合は、受取
人の E メールクライアントの迷惑メールボックスをチェックしてください。それでも E メールが見つ
からない場合は、メールサーバー上の Sendmail ログを調べます。ログは通常、/var/spool/mail/<user>
にあります。
API Version 2010-12-01
70
Amazon Simple Email Service 開発者ガイド
SMTP インターフェイス の使用
安全なトンネルを使用し、Amazon SES を介して E メールを送信するために、Sendmail を設定
するには
1.
開始する前に、「Amazon SES に接続するために、安全なトンネルを設定する (p. 63)」の記載に
従って安全なトンネルを設定する必要があります。次の手順では、ポート 2525 を stunnel ポートとし
て使用します。別のポートを使用する場合は、使用するポートに応じて実際に使用する設定を変更し
ます。
2.
編集する /etc/mail/authinfo ファイルを開きます。このファイルがない場合には、作成してください。
3.
以下の行を /etc/mail/authinfo に追加します。
• U:root - 変更しないでください。
• I:USERNAME – USERNAME は、「Amazon SES SMTP 認証情報を取得する (p. 55)」の手順を
使用して取得した Amazon SES ユーザー名に置き換えてください。これは AWS アクセスキー ID
とは異なります。
• P:PASSWORD – PASSWORD は、「Amazon SES SMTP 認証情報を取得する (p. 55)」の手順
を使用して取得した Amazon SES パスワードに置き換えてください。これは AWS アクセスキーと
は異なります。
• M:LOGIN – LOGIN は、使用する認証方法に置き換えてください。PLAIN、DIGEST-MD5 などで
す。
AuthInfo:127.0.0.1 "U:root" "I:USERNAME" "P:PASSWORD" "M:LOGIN"
4.
authinfo ファイルを保存します。
5.
コマンドプロンプトで、次のコマンドを入力します。
sudo makemap hash /etc/mail/authinfo.db < /etc/mail/authinfo
6.
/etc/mail/access ファイルを開き、127.0.0.1 に対して中継が許可されていることを確認します。これ
はデフォルト動作です。localhost に対して中継が許可されていない場合には、/etc/hosts ファイルを
開き、127.0.0.1 を指す別のホスト名を追加します。
7.
最後の手順で /etc/mail/access を変更した場合には、コマンドプロンプトで次のコマンドを入力
し、etc/mail/access.db を再生成します。
sudo makemap hash /etc/mail/access.db < /etc/mail/access
8.
/etc/mail/sendmail.mc ファイルを開き、すべての MAILER() 定義の前に、次の行グループを追加しま
す。MAILER() 定義の後に FEATURE() 行を追加した場合、後続の手順で m4 を実行すると、"ERROR:
FEATURE() should be before MAILER()." というエラーが表示されます。
Important
「`」および「'」の各記号は、次のように、正確に使い分けてください。
FEATURE(`authinfo', `hash -o /etc/mail/authinfo.db')dnl
define(`SMART_HOST', `[127.0.0.1]')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 2525')dnl
define(`ESMTP_MAILER_ARGS', `TCP $h 2525')dnl
MASQUERADE_AS(`YOUR_DOMAIN')dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
9.
先ほど sendmail.mc に追加したテキスト内で、MASQUERADE_AS で始まる行の YOUR_DOMAIN を、E
メール送信元のドメイン名に置き換えます。MASQUERADE_AS を追加することで、このホストか
らの E メールが見かけ上、ご利用のドメインから送信されているものとして認識されます。そう
しない場合には、メールサーバーのホスト名が送信元として認識されるため、E メールを送信する
と、"Email address not verified" というエラーが表示されます。
API Version 2010-12-01
71
Amazon Simple Email Service 開発者ガイド
SMTP インターフェイス の使用
手順 5 で、127.0.0.1 に対する中継が許可されていなかった場合には、sendmail.mc に追加した
「`SMART_HOST'」行を変更して、/etc/hosts ファイルに入力したホスト名を使用するようにしま
す。つまり、
define(`SMART_HOST', `hostname')dnl
に変更します。
10. sendmail.mc ファイルを保存して閉じます。
11. コマンドプロンプトで次のコマンドを入力し、sendmail.cf を書き込み可能にします。
sudo chmod 666 /etc/mail/sendmail.cf
12. コマンドプロンプトで次のコマンドを入力し、sendmail.cf を再生成します。
sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
Note
"Command not found" や "No such file or directory" のようなエラーが表示される場合には、
「前提条件」の項に記載されている方法で、m4 および sendmail-cf の各パッケージがインス
トールされていることを確認してください。
13. コマンドプロンプトで次のコマンドを入力し、sendmail.cf の権限を読み取り専用にリセットします。
sudo chmod 644 /etc/mail/sendmail.cf
14. コマンドプロンプトで次のコマンドを入力し、Sendmail を再起動します。
sudo /etc/init.d/sendmail restart
15. 次の手順を実行して、テスト E メールを送信します。
1.
コマンドプロンプトで、以下を入力します。[email protected] は、Amazon SES で検証済みの
「From」E メールアドレスに置き換える必要があることに注意してください。[email protected]
の部分は実際の「To」アドレスに置き換えます。アカウントがサンドボックスにまだある場合
は、「To」アドレスも確認済みである必要があります。
sudo /usr/sbin/sendmail -f [email protected] [email protected]
2.
<Enter> キーを押します。<Enter> キーで行を折り返しながらメッセージの本文を入力します。
3.
E メールの入力を終えたら、Ctrl+D キーを押して E メールを送信します。
16. 受取人の E メールクライアントで E メールをチェックします。E メールが見つからない場合は、受
取人の E メールクライアントの迷惑メールボックスをチェックしてください。それでもメールが見つ
からない場合には、E メール送信元コンピュータの Sendmail のログを確認してください。ログは通
常、/var/spool/mail/<user> にあります。
Amazon SES を Microsoft Exchange に統合する
Amazon SES を介して E メールを送信するために Microsoft Exchange を設定できます。次の手順は
Microsoft Exchange GUI または Windows PowerShell を使用して Microsoft Exchange を Amazon SES に
統合する方法を示しています。
Important
2 つの手順(Microsoft Exchange GUI を使用する手順と Windows PowerShell を使用する手順)
のうち、どちらか一方の手順を実行してください。両方の手順を実行すると、同名の 2 つの送信
コネクタがあることを示すエラーが表示されます。
API Version 2010-12-01
72
Amazon Simple Email Service 開発者ガイド
SMTP インターフェイス の使用
次の手順は Microsoft Exchange 2013 を対象に記載されています。
Microsoft Exchange GUI を使用して、Microsoft Exchange を Amazon SES に統合するには
1.
Microsoft Exchange の管理センター(通常は https://<CASServerName>/ecp)に移動し、Exchange
管理者グループに所属するユーザーとしてサインインします。
2.
左のメニューで [mail flow] を選択します。
3.
[send connectors] を選択します。
4.
プラス記号を選択します。
5.
送信コネクタ名(たとえば、SES)を入力します。
6.
[Type] の下にある、[Internet] を選択します。
7.
[Next] を選択します。
8.
[Route mail through smart hosts] を選択します。
9.
プラス記号を選択し、使用する Amazon SES エンドポイントを入力します (email-smtp.uswest-2.amazonaws.com など)。Amazon SES エンドポイントのリストについては、「リージョンと
Amazon SES (p. 296)」を参照してください。
10. [Save] を選択します。入力したエンドポイントが [SMART HOST] ボックスに表示されます。
11. [Next] を選択します。
12. [Basic authentication] を選択し、さらに [Offer basic authentication only after starting TLS] を選択し
て、SMTP Amazon SES ユーザー名とパスワードを入力します。
Important
SMTP ユーザー名とパスワードは、AWS アクセスキー ID およびシークレットアクセスキー
と同じではありません。SMTP エンドポイントに対して認証を行う際に、AWS 認証情報
を使用しないでください。認証情報の詳細については、「Amazon SES での認証情報の使
用 (p. 287)」を参照してください。
13. [Next] を選択します。
14. プラス記号を選択します。
15. [Type] が SMTP、[FQDN] が *、[Cost] が 1 になっていることを確認します。
16. [Save] を選択してから、[Next] を選択します。
17. プラス記号を選択します。
18. このルールを適用するすべてのトランスポートサーバーを選択し、[Add] を選択します。Amazon SES
を介して E メールを送信するすべてのサーバーの追加が終了したら、[ok] を選択します。
19. サーバーが追加されていることを確認し、[finish] を選択します。
Amazon SES の送信コネクタのステータスが有効(Enabled)になっているはずです。これで、すべ
ての送信メールが Amazon SES を介して送信されます。
Windows PowerShell を使用して Microsoft Exchange を Amazon SES に統合するには
1.
Exchange の管理シェルを開き、$creds = Get-Credential と入力します。[ Windows PowerShell
Credential Request] ダイアログボックスが表示されます。
2.
このダイアログボックスで、Amazon SES SMTP ユーザー名とパスワードを入力し、[OK] を選択しま
す。
Important
SMTP ユーザー名とパスワードは、AWS アクセスキー ID およびシークレットアクセスキー
と同じではありません。SMTP エンドポイントに対して認証を行う際に、AWS 認証情報
を使用しないでください。認証情報の詳細については、「Amazon SES での認証情報の使
用 (p. 287)」を参照してください。
API Version 2010-12-01
73
Amazon Simple Email Service 開発者ガイド
SMTP インターフェイス の使用
3.
コマンドプロンプトで、次のコマンドラインを入力します。ただし、ENDPOINT は、Amazon SES
SMTP のエンドポイント(email-smtp.us-west-2.amazonaws.com など)に置き換えます。Amazon
SES エンドポイントのリストについては、「リージョンと Amazon SES (p. 296)」を参照してくだ
さい。
New-SendConnector -Name "SES" -AddressSpaces "*;1" -SmartHosts "ENDPOINT" SmartHostAuthMechanism BasicAuthRequireTLS -Usage Internet -AuthenticationCredential
$creds
このコマンドラインによって、ステータスが有効な Amazon SES の送信コネクタが表示されます。こ
れで、すべての送信メールが Amazon SES を介して送信されます。
Amazon SES を Microsoft Windows Server IIS SMTP に統合する
Amazon SES を介して E メールを送信するように Microsoft Windows Server の IIS SMTP サーバーを設定
します。以下の手順は、Amazon EC2 インスタンスで、Microsoft Windows Server 2012 を使用している場
合のものです。Microsoft Windows Server 2008 と Microsoft Windows Server 2008 R2 のいずれを使用して
いる場合も同じ設定を使用できます。
Amazon SES を Microsoft Windows Server IIS SMTP に統合するには
1.
2.
まず、以下の手順を使用して Microsoft Windows Server 2012 をセットアップします。
a.
Amazon EC2 マネジメントコンソールから、Microsoft Windows Server 2012 ベースの新しい
Amazon EC2 インスタンスを起動します。
b.
「Amazon EC2 Windows の使用開始」の手順に従って、リモートデスクトップによりそのインス
タンスに接続してログインします。
c.
Server Managerのダッシュボードを起動します。
d.
[Web Server] ロールをインストールします。[IIS 6 Management Compatibility tools]([Web
Server] チェックボックスの下にあるオプション)をオンにすることを忘れないでください。
e.
[SMTP Server] 機能をインストールします。
次に、以下の手順を使用して IIS SMTP サービスを設定します。
a.
Server Manager のダッシュボードに戻ります。
b.
[Tools] メニューの [Internet Information Services (IIS) 6.0 Manager] を選択します。
c.
[SMTP Virtual Server #1] を右クリックし、[Properties] を選択します。
d.
[Access] タブの [Relay Restrictions] で、[Relay] を選択します。
e.
[Relay Restrictions] ダイアログボックスで、[Add ] を選択します。
f.
[Single Computer] で、IP アドレスとして「127.0.0.1」と入力します。これで、IIS SMTP サービ
スを介して E メールを Amazon SES に中継する権限がこのサーバーに割り当てられました。
この手順では、E メールがこのサーバーで生成されることを前提としています。E メールを生成
するアプリケーションが別のサーバーで実行されている場合は、IIS SMTP を介して E メールを
中継する権限をそのサーバーに割り当て必要があります。
Note
SMTP リレーをプライベートサブネットに拡張するには、[Relay Restriction] で [Single
Computer] 127.0.0.1 と [Group of Computers] 172.1.1.0 ~ 255.255.255.0 (ネットマスク
セクション) を使用します。[Connection] で、[Single Computer] 127.0.0.1 と [Group of
Computers] 172.1.1.0 ~ 255.255.255.0 (ネットマスクセクション) を使用します。
3.
最後に、以下の手順を使用して、Amazon SES を介して E メールを送信するようにサーバーを設定し
ます。
a.
API Version
2010-12-01
[SMTP Virtual Server #1 Properties]
ダイアログボックスに戻り、[Delivery]
タブを選択します。
74
Amazon Simple Email Service 開発者ガイド
SMTP インターフェイス の使用
b.
[Delivery] タブで、[Outbound Security] を選択します。
c.
[Basic Authentication] を選択し、Amazon SES SMTP のユーザー名とパスワードを入力します。
これらの認証情報は、「Amazon SES SMTP 認証情報を取得する (p. 55)」の手順に従って
Amazon SES コンソールから取得できます。
Important
SMTP ユーザー名とパスワードは、AWS アクセスキー ID およびシークレットアクセス
キーと同じではありません。SMTP エンドポイントに対して認証を行う際に、AWS 認証
情報を使用しないでください。認証情報の詳細については、「Amazon SES での認証情
報の使用 (p. 287)」を参照してください。
d.
[TLS encryption] が選択されていることを確認します。
e.
f.
[Delivery] タブに戻ります。
[Outbound Connections] を選択します。
g.
[Outbound Connections] ダイアログボックスで、ポートが 25 または 587 であることを確認しま
す。
[Advanced] を選択します。
h.
i.
[Smart host] に、使用する Amazon SES エンドポイント(email-smtp.us-west-2.amazonaws.com
など)を入力します。Amazon SES エンドポイントのリストについては、「リージョンと
Amazon SES (p. 296)」を参照してください。
j.
Server Manager のダッシュボードに戻ります。
k.
Server Manager のダッシュボードで、[SMTP Virtual Server #1] を右クリックし、新しい設定が
選択されるようにサービスを再起動します。
このサーバーを介して E メールを送信します。メッセージヘッダーを調べると、そのメッセージ
が Amazon SES を介して配信されたことを確認できます。
l.
Amazon SES を Exim に統合する
Exim は、元々 Unix 系システムを対象に開発された MTA です。柔軟性が高く、設定機能が豊富な汎用
メールプログラムです。
Exim の詳細については、http://www.exim.org を参照してください。
STARTTLS を使用して Amazon SES 米国西部 (オレゴン) エンドポイントへの統合を設定するに
は
1.
編集する /etc/exim/exim.conf ファイルを開きます。このファイルがない場合には、作成してくださ
い。
Important
2.
この解説では、米国西部 (オレゴン) AWS リージョンで Amazon SES を使用することとしま
す。別のリージョンを使用する場合は、この解説の email-smtp.us-west-2.amazonaws.com
のすべてのインスタンスをご希望リージョンの SMTP エンドポイントに置き換えてくださ
い。SMTP エンドポイントのリストについては、リージョンと Amazon SES (p. 296) を参
照してください。
/etc/exim/exim.conf で、以下の変更を実行します。
a.
routers セクションで、begin routers 行の後に、以下を追加します。
send_via_ses:
driver = manualroute
domains = ! +local_domains
transport = ses_smtp
route_list = * email-smtp.us-west-2.amazonaws.com;
API Version 2010-12-01
75
Amazon Simple Email Service 開発者ガイド
SMTP インターフェイス の使用
b.
transports セクションで、begin transports 行の後に、以下を追加します。
ses_smtp:
driver = smtp
port = 25
hosts_require_auth = $host_address
hosts_require_tls = $host_address
c.
authenticators セクションで、begin authenticators 行の後に以下を追加します。ただ
し、USERNAME と PASSWORD は、それぞれ SMTP ユーザー名とパスワードに置き換えま
す。
Important
AWS アクセスキー ID とシークレットアクセスキーではなく、SMTP ユーザー名
とパスワードを使用します。SMTP 認証情報と AWS 認証情報は同じではありませ
ん。SMTP 認証情報を取得する方法については、「Amazon SES SMTP 認証情報を取得
する (p. 55)」を参照してください。
ses_login:
driver = plaintext
public_name = LOGIN
client_send = : USERNAME : PASSWORD
3.
/etc/exim/exim.conf ファイルを保存します。
安全なトンネルを使用して統合を設定するには
1.
開始する前に、「安全なトンネル (p. 59)」の記載に従って安全なトンネルを設定する必要がありま
す。次の手順では、ポート 2525 を stunnel ポートとして使用します。別のポートを使用する場合は、
使用するポートに応じて実際に使用する設定を変更します。
2.
編集する /etc/exim/exim.conf ファイルを開きます。このファイルがない場合には、作成してくださ
い。
Important
この解説では、米国西部 (オレゴン) AWS リージョンで Amazon SES を使用することとしま
す。別のリージョンを使用する場合は、この解説の email-smtp.us-west-2.amazonaws.com
のすべてのインスタンスをご希望リージョンの SMTP エンドポイントに置き換えてくださ
い。SMTP エンドポイントのリストについては、リージョンと Amazon SES (p. 296) を参
照してください。
3.
/etc/exim/exim.conf で、以下の変更を実行します。
a.
routers セクションで、begin routers 行の後に、以下を追加します。
send_via_ses:
driver = manualroute
domains = ! +local_domains
transport = ses_smtp
self = send
route_list = * localhost
b.
transports セクションで、begin transports 行の後に、以下を追加します。
ses_smtp:
driver = smtp
port = 2525
hosts_require_auth = localhost
API Version 2010-12-01
76
Amazon Simple Email Service 開発者ガイド
SMTP インターフェイス の使用
hosts_avoid_tls = localhost
c.
authenticators セクションで、begin authenticators 行の後に以下を追加します。ただ
し、USERNAME と PASSWORD は、それぞれ SMTP ユーザー名とパスワードに置き換えま
す。
ses_login:
driver = plaintext
public_name = LOGIN
client_send = : USERNAME : PASSWORD
4.
/etc/exim/exim.conf ファイルを保存します。
設定の更新が終了したら、Exim を再起動してください。コマンドラインで次のコマンドを入力し、Enter
キーを押します。
sudo /etc/init.d/exim restart
Note
ご利用のサーバーによっては、コマンドが一部異なる場合があります。
この手順を完了すると、送信 E メールは、Amazon SES を介して送信されます。設定をテストするに
は、Exim サーバーを介して E メールメッセージを送信し、宛先に届くことを確認します。メッセージが
届いていない場合には、システムのメールログにエラーが記録されていないか確認します。多くのシステ
ムでは、メールログは /var/log/exim/main.log というファイルです。
コマンドラインを使用し、Amazon SES SMTP インターフェイ
スを介して E メールを送信する
コマンドラインユーティリティを使用することにより、Amazon SES SMTP インターフェイスを直接操作
できます。コマンドラインインターフェイスは、テストを行う場合や、SMTP プロトコルを使用して直接
通信する必要があるソフトウェアを作成する場合に有効です。
お客様を保護するために、SMTP インターフェイスによるすべての通信は TLS(Transport Layer
Security)を使用して行われる必要があります。SMTP のコマンドラインを使用する場合には、OpenSSL
の使用をお勧めします。OpenSSL は、https://www.openssl.org で入手できます。このサイトには、TLS に
よって保護された接続で通信するためのコマンドラインユーティリティが含まれています。
Example : Amazon SES を介して E メールを送信するために、OpenSSL を使用する
この例では、米国西部 (オレゴン) リージョンで Amazon SES SMTP エンドポイントに接続する方法と、
標準の SMTP コマンドを使用して E メールメッセージを送信する方法を示しています。この例では、簡略
化のために出力の一部が省略されています。
TLS ラッパーを使用する
openssl s_client -crlf -quiet -connect email-smtp.us-west-2.amazonaws.com:465
• s_client - この接続が TLS(SSL)を使用することを指定します。
• -crlf - ラインフィード文字(LF)を CR+LF(改行とラインフィード)に変換します。
• -quiet - セッションおよび証明書情報の印刷を禁止します。同時に、暗黙的に -ign_eof が有効になりま
す。
• -connect - SMTP ホストとポートを指定します。
STARTTLS を使用する
API Version 2010-12-01
77
Amazon Simple Email Service 開発者ガイド
SMTP インターフェイス の使用
openssl s_client -crlf -quiet -starttls smtp -connect email-smtp.us-west-2.amazonaws.com:25
• s_client - この接続が TLS(SSL)を使用することを指定します。
• -crlf - ラインフィード文字(LF)を CR+LF(改行とラインフィード)に変換します。
• -quiet - セッションおよび証明書情報の印刷を禁止します。同時に、暗黙的に -ign_eof が有効になりま
す。
• -starttls smtp - STARTTLS ネゴシエーションを指定します。
• -connect - SMTP ホストとポートを指定します。
上記のコマンドのうちの 1 つを使用して接続すると、Amazon SES SMTP インターフェイスは、サーバー
証明書を提示することによって自身を認証します。
CONNECTED(00000003) ... <output omitted> Server certificate -----BEGIN
CERTIFICATE----MIID2jCCAue4gAwIBAgIAMEkqjWRxm3cqMA0tGC2GxSI37DQEBQ6UAMIGHjswCQD
VQQEwVUzErTMBEGaxA51UECBfMKV2Fza7GluZ3RvbjEMxA4GAUEByEXAMPLECERT
... <output omitted>
--- 220 localhost ESMTP SES 2010-12-03
ここで、EHLO コマンドを使用してクライアントを認証します。ログインするシステムのホスト名を指定し
ます。
EHLO bob-desktop.example.com
250-localhost
... <output omitted>
250-AUTH LOGIN
250 Ok
これで、AUTH LOGIN コマンドを使用して、SMTP 認証情報を指定できるようになりました。SMTP ユー
ザー名とパスワードを base64 でエンコードする必要があります。サーバーのプロンプト("Username:"
および "Password:")は、同様にエンコードされて、SMTP のレスポンスコード 334 とともに表示されま
す。
Note
Linux で文字列を base64 エンコードするには、echo -n "SMTP-USERNAME" | base64 を使用しま
す("SMTP-USERNAME" は、お客様の SMTP 名に置き換えてください)。
たとえば、SMTP 認証情報としてユーザー名が c2VzLXNtdHAtdXNlcEXAMPLE であり、パスワードが
SkFYTVpaM3k0U2paVEYwOFpLEXAMPLE である場合は、次のように base64 エンコードされた認証情
報を指定します。
AUTH LOGIN
334 VXNlcm5hbWU6
YzJWekxYTnRkSEF0ZFhObGNFWEFNUExF
334 UGFzc3dvcmQ6
U2tGWVRWcGFNM2swVTJwYVZFWXdPRnBMRVhBTVBMRQ==
235 Authentication successful.
MAIL FROM コマンドと RCPT TO コマンドを使用して、送信者と受取人を指定します。MAIL FROM について
は、Amazon SES で検証済みの E メールアドレスを使用する必要があります。検証の詳細については、
「Amazon SES での E メールアドレスとドメインの検証 (p. 36)」を参照してください。
MAIL FROM:[email protected]
API Version 2010-12-01
78
Amazon Simple Email Service 開発者ガイド
API の使用
250 Ok
RCPT TO:[email protected]
250 Ok
DATA コマンドを発行して、E メールのヘッダーとメッセージ本文を指定します。ヘッダーと本文は最低 1
行の空白行で区切る必要があります。この例では、ヘッダーは、Subject: だけが使用されています。行中
にあるドット(".")は、それだけで、メッセージ本文の終わりを示します。
DATA
354 End data with <CR><LF>.<CR><LF>
Subject:Hello from Amazon SES!
This email was sent using the Amazon SES SMTP interface.
.
250 Ok
メッセージの送信が終了すると、QUIT コマンドを使用して、SMTP 接続を閉じます。
QUIT
221 Bye
closed
Note
SMTP の詳細については、https://tools.ietf.org/html/rfc5321 を参照してください。
Amazon SES API を使用して E メールを送信する
Amazon SES を介して本稼働 E メールを送信する場合には、Simple Mail Transfer Protocol(SMTP)イ
ンターフェイスまたは Amazon SES API を使用できます。SMTP インターフェースの詳細については、
「Amazon SES SMTP インターフェイスを使用して E メールを送信する (p. 54)」を参照してくださ
い。このセクションでは、API を使用して E メールを送信する方法について説明します。
Amazon SES API には、HTTPS を介したクエリインターフェイスがあります。Amazon SES API エンド
ポイントのリストについては、「リージョンと Amazon SES (p. 296)」を参照してください。E メール
の送信に API を使用すると、情報を制限できます。また、Amazon SES に E メールをアセンブルさせた
り、お客様自身で E メールをアセンブルすることができるため、コンテンツとフォーマットを完全に制
御できます。API の詳細については、「Amazon Simple Email Service API Reference」を参照してくださ
い。API は、次の 4 つの方法で呼び出すことができます。
• raw クエリのリクエストとレスポンスを作成する - API を直接呼び出すため、これは最も高度な
方法です。クエリのリクエストとレスポンスを作成する方法については、「Amazon SESクエリ
API (p. 290)」を参照してください。
• AWS SDK を使用する - AWS SDK は、Amazon SES API の低レベル機能を、詳細を自動的に処理する
高レベルのデータ型と関数呼び出しでラップします。また、リクエスト認証、リクエストの再実行、エ
ラー処理などの(Amazon SES API には含まれていない)基本的な機能が用意されています。
• コマンドラインインターフェイスを使用する - AWS Command Line Interface は、Amazon SES 用のコ
マンドラインツールです。さらに、PowerShell 環境でのスクリプト作成用に AWS Tools for Windows
PowerShell も用意しています。
Amazon SES API に直接アクセスする場合であれ、AWS SDK、AWS Command Line Interface、または
AWS Tools for Windows PowerShell を介して間接的にアクセスする場合であれ、Amazon SES API で
は、E メールメッセージの構成に対する制御の程度に応じて、2 とおりの方法でメールを送信できます。
API Version 2010-12-01
79
Amazon Simple Email Service 開発者ガイド
API の使用
• フォーマット済み - Amazon SES は、正しくフォーマットされた E メールメッセージを構成して送信し
ます。ユーザーは、送信元と宛先のアドレス、件名、メッセージ本文を入力するだけです。その他はす
べて Amazon SES が処理します。詳細については、「Amazon SES API を使用してフォーマット済み E
メールを送信する (p. 81)」を参照してください。
• raw - E メールメッセージを手動で構成して送信します。自分で E メールヘッダーおよび MIME の種類
を指定します。E メールのフォーマット作業を自分で行った経験があれば、raw インターフェースによ
り、メッセージの構成をより詳細に制御できます。詳細については、「Amazon SES API を使用して
raw Eメールを送信する (p. 81)」を参照してください。
API Version 2010-12-01
80
Amazon Simple Email Service 開発者ガイド
API の使用
Amazon SES API を使用してフォーマット済み E メールを送信
する
フォーマット済み E メールを送信するには、AWS マネジメントコンソールを使用する方法、アプリケー
ションから Amazon SES API を直接呼び出す方法、AWS SDK、AWS Command Line Interface、または
AWS Tools for Windows PowerShell を使用してこの API を間接的に呼び出す方法があります。
Amazon SES API は、フォーマット済み E メールを構成して送信できるようにする SendEmail アクショ
ンを提供します。SendEmail には、送信元アドレス、宛先アドレス、メッセージの件名、メッセージの本
文(テキストか HTML、またはその両方)が必要です。SendEmail の詳細については、「Amazon Simple
Email Service API Reference」を参照してください。
Note
E メールアドレスは、7 ビット ASCII 文字列になっている必要があります。送信先または送信元
の E メールアドレス内で、ドメインの部分に unicode 文字が含まれる場合は、Punycode を使用
してドメインをエンコードする必要があります。詳細については、「RFC 3492」を参照してくだ
さい。
AWS SDK for Java または AWS SDK for .NET を使用したフォーマット済みメッセージを構成する方法の
例は、「AWS SDK for Java を使用して Amazon SES から E メールを送信する (p. 30)」、または「AWS
SDK for .NET を使用して Amazon SES から E メールを送信する (p. 28)」を参照してください。
SendEmail に複数の呼び出しを作成する場合の E メール送信速度向上方法については、「Amazon SES の
スループットを上げる (p. 211)」を参照してください。
Amazon SES API を使用して raw Eメールを送信する
Amazon SES による E メールの構成方法と送信方法について、自動フォーマットよりも詳細な制御を行う
必要がある場合があります。その場合には、Amazon SES raw Eメールインターフェイスを使用すること
により、E メールヘッダーと MIME の種類を指定して、高度にカスタマイズされたメッセージを受取人に
送信できます。
このセクションでは、E メールの標準規格と Amazon SES がそれを使用する方法を紹介します。ま
た、raw Eメールを作成して送信する方法について、コマンドラインから行う場合と、Amazon SES API
から行う場合について説明します。
E メールヘッダーフィールドについて
Simple Mail Transfer Protocol(SMTP)は、E メールエンベロープとそのパラメータのいくつかを定義す
ることにより、E メールメッセージの送信方法を定義しますが、メッセージの内容については何も定義し
ません。一方、Internet Message Format(RFC 5322)は、メッセージの構成方法を定義します。
Internet Message Format の仕様に従って、すべてのメッセージ E メールはヘッダーと本文から構成され
ます。ヘッダーはメッセージのメタデータで構成され、本文にメッセージそのものが含まれます。E メー
ルヘッダーと本文の詳細については、「E メールの形式と Amazon SES (p. 12)」を参照してください。
MIME の使用
SMTP プロトコルは 7 ビットの ASCII 文字で構成された E メールメッセージを送信するように設計され
ています。多くの場合は、この仕様が有効に機能しますが、非 ASCII 文字エンコード(Unicode など)、
バイナリコンテンツ、添付ファイルに対しては十分ではありません。多目的インターネットメール拡張#
(MIME)標準は、これらの制限を回避するために開発されたもので、SMTP を使用して、他の多くの種
類のコンテンツを送信できます。
MIME 標準には、メッセージ本文を複数のパートに分割し、パートごとに、どのような操作を行うかを指
定する機能があります。たとえば、E メールメッセージ本文の、あるパートはプレーンテキスト、別の
API Version 2010-12-01
81
Amazon Simple Email Service 開発者ガイド
API の使用
パートは画像という場合があります。さらに、MIME では、E メールメッセージに 1 つ以上の添付ファイ
ルを含めることができます。メッセージの受取人は、E メールクライアント内から添付ファイルを見た
り、保存したりできます。
メッセージヘッダーとコンテンツとは空白行で分離されます。E メールの各パートは、boundary で分離さ
れます。boundary は、各パートの開始と終了を示す文字列です。
以下は、複数のパートがある MIME メールメッセージの raw テキストの例です。
Received: from smtp-out.example.com (123.45.67.89) by
in.example.com (87.65.43.210); Wed, 2 Mar 2011 11:39:39 -0800
From: "Bob" <[email protected]>
To: "Andrew" <[email protected]>
Date: Wed, 2 Mar 2011 11:39:34 -0800
Subject: Customer service contact info
Message-ID: <[email protected]>
Accept-Language: en-US
Content-Language: en-US
Content-Type: multipart/mixed;
boundary="_003_97DCB304C5294779BEBCFC8357FCC4D2"
MIME-Version: 1.0
--_003_97DCB304C5294779BEBCFC8357FCC4D2
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Hi Andrew.
promised you.
Here are the customer service names and telephone numbers I
See attached.
-Bob
--_003_97DCB304C5294779BEBCFC8357FCC4D2
Content-Type: text/plain; name="cust-serv.txt"
Content-Description: cust-serv.txt
Content-Disposition: attachment; filename="cust-serv.txt"; size=1180;
creation-date="Wed, 02 Mar 2011 11:39:39 GMT";
modification-date="Wed, 02 Mar 2011 11:39:39 GMT"
Content-Transfer-Encoding: base64
TWFyeSBEYXZpcyAtICgzMjEpIDU1NS03NDY1DQpDYXJsIFRob21hcyAtICgzMjEpIDU1NS01MjM1
DQpTYW0gRmFycmlzIC0gKDMyMSkgNTU1LTIxMzQ=
--_003_97DCB304C5294779BEBCFC8357FCC4D2
この例では、次のような点に注意してください。
• 空白行によって、本文がヘッダーから分離されています。
• コンテンツタイプが「multipart/mixed」であることから、メッセージに多数のパートがあり、受信者は
各パートを別々に扱う必要があることがわかります。
• 「boundary」パラメータは、各パートの開始と終了の部分を指定しています。この例では、boundary
は、送信者の E メールクライアントが生成した固有の文字列です。
• 本文には、プレーンテキストメッセージと添付ファイルという 2 つのパートがあります。E メールクラ
イアントは、プレーンテキストのパートを表示し、添付ファイルは別に扱います。
• 「Content-Disposition」フィールドは、クライアントが添付ファイルを処理すべき方法を指定します。
この場合には、E メールを読んだ人が添付ファイルをクリックすると、E メールクライアントは「custserv.txt」という名前のテキストファイルに保存します。
API Version 2010-12-01
82
Amazon Simple Email Service 開発者ガイド
API の使用
MIME エンコード
SMTP の 7 ビット ASCII 制限により、8 ビット文字を含むコンテンツは、送信前にまず、7 ビット ASCII
に変換される必要があります。そのため、MIME は Content-Transfer-Encoding ヘッダーフィールドを定義
します。
慣例により、最も一般的なエンコードスキームは、8 ビットのバイナリコンテンツが、明確に定義された
7 ビット ASCII 文字セットでエンコードされる base64 です。E メールを受信した E メールクライアント
は、Content-Transfer-Encoding ヘッダーフィールドを検査し、コンテンツに対して、ただちに、base64
デコード操作を実行します。これによって、コンテンツは元の形に戻ります。ほとんどの E メールクラ
イアントでは、エンコードおよびデコードは自動的に行われ、ユーザーはそれを意識する必要はありませ
ん。
上記の例では、添付ファイルの cust-serv.txt を base64 形式からデコードして読み取れるようにする必
要があります。E メールクライアントによっては、元の形式がプレーンテキストであっても、すべての
MIME パートを base64 形式でエンコードするものもあります。E メールクライアントはエンコードとデ
コードを自動的に行うため、これは通常、問題ではありません。
Note
Amazon SES が許容する MIME タイプの一覧は、「付録: サポート対象外の添付ファイルの種
類 (p. 308)」を参照してください。
ヘッダーなど、メッセージ内の特定の部分に 7 ビット ASCII 以外の文字を含める場合には、リテラル文字
列ではなく MIME encoded-word 構文 (RFC 2047) を使用する必要があります。MIME encoded-word 構文
は、=?charset?encoding?encoded-text?= という形式を使います。詳細については、RFC 2047を参照して
ください。送信先または送信元の E メールアドレス内で、ドメインの部分に unicode 文字が含まれる場合
は、Punycode を使用してドメインをエンコードする必要があります。詳細については、「RFC 3492」を
参照してください。
API
Amazon SES API は SendRawEmail アクションを提供します。これにより、指定したフォーマットの E
メールメッセージを構成して送信できるようになります。SendRawEmail の詳細については、「Amazon
Simple Email Service API Reference」を参照してください。
Note
SendRawEmail に複数の呼び出しを作成する場合の E メール送信速度向上方法については、
「Amazon SES のスループットを上げる (p. 211)」を参照してください。
メッセージ本文には、正しくフォーマットされ、適切なヘッダーフィールドとメッセージ本文がエンコー
ドされた raw Eメールメッセージを含める必要があります。アプリケーション内で raw メッセージを手動
で構成することはできますが、既存のメールライブラリを使用して構成するほうが、はるかに簡単です。
Example
次のコードサンプルは、JavaMail ライブラリと AWS SDK for Java を使用してメールを作成および送信す
る方法を示しています。
import
import
import
import
import
import
java.io.ByteArrayOutputStream;
java.io.IOException;
java.io.PrintStream;
java.nio.ByteBuffer;
java.util.Properties;
java.util.UUID;
// These are from the JavaMail API, which you can download at https://java.net/projects/
javamail/pages/Home.
API Version 2010-12-01
83
Amazon Simple Email Service 開発者ガイド
API の使用
// Be sure to include the mail.jar library in your project. In the build order, mail.jar
should precede the AWS SDK for Java library.
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
// These are from the AWS SDK for Java, which you can download at https://aws.amazon.com/
sdk-for-java.
// Be sure to include the AWS SDK for Java library in your project.
import com.amazonaws.AmazonClientException;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Region;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClient;
import com.amazonaws.services.simpleemail.model.RawMessage;
import com.amazonaws.services.simpleemail.model.SendRawEmailRequest;
public class ComposeAndSendMIMEEmail {
// IMPORTANT: To successfully send an email, you must replace the values of the strings
below with your own values.
private static String EMAIL_FROM
= "[email protected]";
// Replace with the
sender's address. This address must be verified with Amazon SES.
private static String EMAIL_REPLY_TO = "[email protected]"; // Replace with the
address replies should go to. This address must be verified with Amazon SES.
private static String EMAIL_RECIPIENT = "[email protected]"; // Replace with a
recipient address. If your account is still in the sandbox,
// this address must be
verified with Amazon SES.
private static String EMAIL_ATTACHMENTS = "ATTACHMENT-FILE-NAME-WITH-PATH"; // Replace
with the path of an attachment. Must be a valid path or this project will not build.
// Remember
to use two slashes in place of each slash.
// IMPORTANT: Ensure that the region selected below is the one in which your identities
are verified.
private static Regions AWS_REGION = Regions.US_WEST_2;
// Choose the AWS region
of the Amazon SES endpoint you want to connect to. Note that your sandbox
// status, sending
limits, and Amazon SES identity-related settings are specific to a given AWS
// region, so be sure to
select an AWS region in which you set up Amazon SES. Here, we are using
// the US West (Oregon)
region. Examples of other regions that Amazon SES supports are US_EAST_1
// and EU_WEST_1. For a
complete list, see http://docs.aws.amazon.com/ses/latest/DeveloperGuide/regions.html
private static String EMAIL_SUBJECT
= "Amazon SES email test";
private static String EMAIL_BODY_TEXT = "This MIME email was sent through Amazon SES
using SendRawEmail.";
public static void main(String[] args) throws AddressException, MessagingException,
IOException {
Session session = Session.getDefaultInstance(new Properties());
MimeMessage message = new MimeMessage(session);
API Version 2010-12-01
84
Amazon Simple Email Service 開発者ガイド
API の使用
message.setSubject(EMAIL_SUBJECT, "UTF-8");
message.setFrom(new InternetAddress(EMAIL_FROM));
message.setReplyTo(new Address[]{new InternetAddress(EMAIL_REPLY_TO)});
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(EMAIL_RECIPIENT));
// Cover wrap
MimeBodyPart wrap = new MimeBodyPart();
// Alternative TEXT/HTML content
MimeMultipart cover = new MimeMultipart("alternative");
MimeBodyPart html = new MimeBodyPart();
cover.addBodyPart(html);
wrap.setContent(cover);
MimeMultipart content = new MimeMultipart("related");
message.setContent(content);
content.addBodyPart(wrap);
String[] attachmentsFiles = new String[]{
EMAIL_ATTACHMENTS
};
// This is just for testing HTML embedding of different type of attachments.
StringBuilder sb = new StringBuilder();
for (String attachmentFileName : attachmentsFiles) {
String id = UUID.randomUUID().toString();
sb.append("<img src=\"cid:");
sb.append(id);
sb.append("\" alt=\"ATTACHMENT\"/>\n");
MimeBodyPart attachment = new MimeBodyPart();
DataSource fds = new FileDataSource(attachmentFileName);
attachment.setDataHandler(new DataHandler(fds));
attachment.setHeader("Content-ID", "<" + id + ">");
attachment.setFileName(fds.getName());
content.addBodyPart(attachment);
}
html.setContent("<html><body><h1>HTML</h1>\n" + EMAIL_BODY_TEXT + "</body></html>",
"text/html");
try {
System.out.println("Attempting to send an email through Amazon SES by using the
AWS SDK for Java...");
/*
* The ProfileCredentialsProvider will return your [default]
* credential profile by reading from the credentials file located at
* (~/.aws/credentials).
*
* TransferManager manages a pool of threads, so we create a
* single instance and share it throughout our application.
*/
AWSCredentials credentials = null;
try {
credentials = new ProfileCredentialsProvider().getCredentials();
} catch (Exception e) {
throw new AmazonClientException(
"Cannot load the credentials from the credential profiles file. " +
"Please make sure that your credentials file is at the correct " +
API Version 2010-12-01
85
Amazon Simple Email Service 開発者ガイド
E メールの認証
"location (~/.aws/credentials), and is in valid format.",
e);
}
// Instantiate an Amazon SES client, which will make the service call with the
supplied AWS credentials.
AmazonSimpleEmailServiceClient client = new
AmazonSimpleEmailServiceClient(credentials);
Region REGION = Region.getRegion(AWS_REGION);
client.setRegion(REGION);
// Print the raw email content on the console
PrintStream out = System.out;
message.writeTo(out);
// Send the email.
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
message.writeTo(outputStream);
RawMessage rawMessage = new
RawMessage(ByteBuffer.wrap(outputStream.toByteArray()));
SendRawEmailRequest rawEmailRequest = new SendRawEmailRequest(rawMessage);
client.sendRawEmail(rawEmailRequest);
System.out.println("Email sent!");
} catch (Exception ex) {
System.out.println("Email Failed");
System.err.println("Error message: " + ex.getMessage());
ex.printStackTrace();
}
}
}
Amazon SES での E メールの認証
Amazon Simple Email Service(Amazon SES)では、E メールの送信に Simple Mail Transfer
Protocol(SMTP)が使用されます。SMTP 自体は認証を提供しません。実際の送信元を隠蔽したスパム
の発信者から、他人を装って E メールメッセージが送信される可能性があります。スパムの発信者は、E
メールヘッダーを改ざんし、送信元 IP アドレスを偽装することにより、そのメールメッセージが本物であ
ると受取人に思い込ませることができます。
メールトラフィックを転送するほとんどの ISP は、E メールの正当性を評価するための対策を講じていま
す。E メールが認証されているかどうかの確認は、ISP が講じているそうした対策の 1 つです。認証にお
いて送信者は、自分がその送信元アカウントの所有者であることを証明する必要があります。場合によっ
ては、ISP は認証されない E メールの送信を拒否します。配信可能性を最大限確保するために、E メール
を認証することをお勧めします。
以降のセクションでは、ISP で使用される 2 つの認証メカニズム、Sender Policy Framework(SPF)とド
メインキーアイデンティファイドメール(DKIM)について説明するとともに、Amazon SES でそれらの
標準を使用する方法について説明します。
• SPF では、E メールメッセージをその送信元のシステムにまでさかのぼって追跡することができます。
「Amazon SES における SPF を使った E メールの認証 (p. 87)」を参照してください。
• DKIM は、E メールメッセージに署名することで、自分のメッセージが本物であることと送信中に改ざ
んされていないことを ISP に証明するための標準規格です。「Amazon SES における DKIM を使った E
メールの認証 (p. 88)」を参照してください。
• SPF および DKIM に基づく DMARC (Domain-based Message Authentication, Reporting and
Conformance) に準拠する方法については、「Amazon SES の使用による DMARC への準拠 (p. 95)」
を参照してください。
API Version 2010-12-01
86
Amazon Simple Email Service 開発者ガイド
SPF での E メールの認証
Amazon SES のさまざまなトピックに関する技術的な考察については、「Amazon SES ブログ」をご覧
ください。お問い合わせを参照あるいは発信するには「Amazon SES フォーラム」をご覧ください。
Amazon SES における SPF を使った E メールの認証
Sender Policy Framework (SPF) は、RFC 7208 に定義されているメール検証標準であり、メールスプー
フィングを防止するために設計されています。SPF を使用すると、ドメインの所有者は、そのドメインへ
の E メール送信元として許可するメールサーバーを指定できます。SPF への準拠を示すために、ドメイン
所有者は、許可されているメールサーバーのリストを DNS レコードとしてドメインの DNS サーバーに発
行します。受信側のメールサーバーは、MAIL FROM アドレスにドメインが含まれている E メールを受信
すると、ドメインの DNS レコードを調べて、送信元メールサーバーを許可されているメールサーバーの
リストと比較し、その結果に従って E メールを処理します。
SPF レコードは ISP に対し、ドメインへの E メール送信を Amazon SES に許可したことを示しま
す。Amazon SES を使用する場合、SPF レコードを公開すべきかどうかは、E メールが受信側のメール
サーバーによる SPF チェックに合格すればよいのか、SPF に基づく DMARC (Domain-based Message
Authentication, Reporting and Conformance) 認証に合格するために必要な追加要件も満たす必要があるの
かによって決まります。DKIM を使用して DMARC 検証を実施することもできますが、ベストプラクティ
スでは、配信可能性を最大限に高めるために、DKIM と SPF の両方を使用します。
• SPF チェックに合格するには – Amazon SES を使用する場合、SPF チェックに合格するためのセット
アップが 2 つあります。1 つ目のセットアップは、Amazon SES のデフォルトの MAIL FROM ドメイン
を使用し、SPF レコードをまったく公開しないことです。Amazon SES のデフォルトでは独自の MAIL
FROM ドメインを使用して E メールが送信されるため、このセットアップを使用すると SPF チェッ
クに合格できます。この場合、SPF チェックに合格するのは、デフォルトの MAIL FROM ドメインが
amazonses.com (または、そのサブドメイン) であり送信元メール サーバーが Amazon SES であるため
です。
SPF チェックに合格できるもう 1 つのセットアップは、独自の MAIL FROM ドメインの使用を Amazon
SES に設定することです。この場合は、MAIL FROM ドメインと送信元メールサーバー (Amazon SES)
が異なるため、SPF レコードの公開が必要になります。カスタムの MAIL FROM ドメインを使用し
て E メールを送信するためのドメイン設定については、「カスタムの MAIL FROM ドメインを使用す
る (p. 44)」を参照してください。
• SPF に基づいて DMARC 検証に合格するには – SPF に基づいて DMARC 検証に成功するには、カ
スタムの MAIL FROM ドメインをセットアップ (p. 44)して SPF レコードを公開する必要があり
ます。DMARC ポリシーのアラインメントモードは、デフォルトの relaxed にする必要がありま
す。DMARC ポリシーの詳細については、https://dmarc.org/ を参照してください。
SPF レコードの追加
TXT レコードをドメインの DNS 設定に追加する手順は、DNS サービスの提供元によって異なります
が、一般的な手順については、「Amazon SES のドメイン検証 TXT レコード (p. 42)」の「ドメインの
DNS サーバーに TXT レコードを追加する」を参照してください。SPF レコードの詳細については、http://
www.openspf.net および RFC 7208 を参照してください。
新しい SPF レコードの追加
カスタムの MAIL FROM ドメインに既存の SPF レコードがない場合は、次の値を使用して TXT レコード
を公開します。レコード名は、DNS サービスによって空白または @ になります。
Important
例に示されているように "-all" を使用した場合は、SPF レコードに登録されていない IP アドレス
からの E メールが ISP によってブロックされる可能性があります。このため、SPF レコードに
API Version 2010-12-01
87
Amazon Simple Email Service 開発者ガイド
DKIM での E メールの認証
は、メール送信に使用するすべての IP アドレスを含めておく必要があります。デバッグ手段とし
て、"~all" を使用することもできます。ISP は通常、"~all" が使用されている場合、SPF レコード
に登録されていない IP アドレスからの E メールを受け入れますが、フラグが設定されている場
合があります。配信可能性を最大限に高めるために、"-all" を使用し、IP アドレスごとにレコー
ドを追加してください。複数の IP アドレスを許可する方法については、http://www.openspf.org/
SPF_Record_Syntax を参照してください。
"v=spf1 include:amazonses.com -all"
既存の SPF レコードへの追加
ドメインに SPF レコードが既に存在する場合は、次の SPF メカニズムを既存のレコードに追加する必要
があります。
include:amazonses.com
Amazon SES における DKIM を使った E メールの認
証
ドメインキーアイデンティファイドメール(DKIM)は、送信者が E メールメッセージに署名することに
よって、それらのメッセージが本物であり、送信中に第三者によって改ざんされていないことを ISP が証
明するための標準です。
DKIM を使って送信される E メールメッセージには、DKIM-Signature というヘッダーフィールドがあり、
メッセージの一部または全体に対し、暗号化を用いて署名したデータが格納されます。メッセージを受信
する ISP は、メッセージが本物であることを確認するために、送信者の DNS レコードで発行されるパブ
リックキーを使用して暗号署名をデコードできます。DKIM の詳細については、http://www.dkim.org を参
照してください。
DKIM 署名はオプションです。DKIM を使って E メールに署名を施すことで、DKIM 対応 ISP による配信
可能性を強化することができます。DKIM を使ったメッセージへの署名に関して、Amazon SES には 2 つ
のオプションが用意されています。
• ドメインから送信されるすべてのメッセージに対し Amazon SES が自動的に DKIM 署名を追加するよ
うにドメインをセットアップする場合は、「Amazon SES の Easy DKIM (p. 88)」を参照してくださ
い。
• SendRawEmail API を使って送信するすべての E メールに独自の DKIM 署名を追加する場合は、
「Amazon SES における手動での DKIM 署名 (p. 94)」を参照してください。
Amazon SES の Easy DKIM
Easy DKIM は、確認済みの E メールアドレスまたはドメインから送信されるすべてのメッセージに対
し、1024 ビットの DKIM キーを使った DKIM 署名を追加する Amazon SES の機能です。Amazon SES コ
ンソールを使用して Easy DKIM の設定を行ったり、E メールメッセージに対する自動 DKIM 署名の有効
と無効を切り替えたりすることができます。Easy DKIM のセットアップを行うには、ドメインの DNS レ
コードを編集できることが必要です。DNS レコードを適切に設定することで、確認済みの E メールアドレ
スまたはドメインの Easy DKIM 署名を有効にすることができます。
以下のルールが適用されます。
• 他の確認済みアイデンティティの設定と同様に、ルートドメインを共有するドメイン、サブドメイン、
および E メールアドレスを検証する場合、Easy DKIM 設定は検証する最も細かいレベルで適用されま
す。つまり、次のようになります。
• 検証済み E メールアドレス設定は、検証済みドメイン設定をオーバーライドします。
API Version 2010-12-01
88
Amazon Simple Email Service 開発者ガイド
DKIM での E メールの認証
• 検証済みサブドメイン設定は、検証済みドメイン設定をオーバーライドします。より低いレベルのサ
ブドメイン設定は、より高いレベルのサブドメイン設定をオーバーライドします。
• ルートドメインを検証し、特定のサブドメインを検証しない場合、そのサブドメインはルートドメイン
の Easy DKIM 設定を使用します。たとえば、ルートドメインが Easy DKIM を設定して有効にしている
場合、サブドメインの電子メールも、自動的に DKIM 署名されます。
Easy DKIM のセットアップ後は、Amazon SES の呼び出し手段、つまり SMTP インターフェイスか、あ
るいは API(SendEmail または SendRawEmail)かに関係なく、送信するメッセージに対して DKIM 署名が
自動的に追加されます。Easy DKIM のセットアップが必要なのは、「From」アドレスに使用するドメイン
のみです。「Return-Path」アドレスや「Reply-To」アドレスのドメインに対しては必要ありません。
新しいドメインをこれから確認する場合は、その時点で Easy DKIM をセットアップできます。ドメインま
たは E メールアドレスが確認済みである場合は、必要に応じていつでも Easy DKIM の機能を追加できま
す。
Note
Amazon SES のエンドポイントは複数の AWS リージョンに存在するため、Easy DKIM の設定
は、個々の AWS リージョンに対して個別に適用されます。Easy DKIM を使用する各リージョ
ンで、Easy DKIM のセットアップ手順を実行する必要があります。複数の AWS リージョンで
の Amazon SES の使用については、「リージョンと Amazon SES (p. 296)」を参照してくださ
い。
このトピックは、以下のセクションで構成されます。
• 新しいドメインの確認中に Easy DKIM をセットアップする場合は、「新しいドメインに対する Easy
DKIM のセットアップ (p. 89)」を参照してください。
• 既に確認済みの E メールアドレスまたはドメインに対して Easy DKIM をセットアップする場合は、
「既存の確認済みアイデンティティに対する Easy DKIM のセットアップ (p. 91)」を参照してくださ
い。
新しいドメインに対する Easy DKIM のセットアップ
AWS マネジメントコンソールを使用して新しいドメインを確認する際、Easy DKIM も同時にセットアッ
プすることができます。
以下の手順は、新しいドメインに対してのみ有効です。既に確認済みの E メールアドレスまたはドメイ
ンに対して Easy DKIM をセットアップする場合は、「既存の確認済みアイデンティティに対する Easy
DKIM のセットアップ (p. 91)」を参照してください。
新しいドメインに対して Easy DKIM をセットアップするには
1.
Amazon SES コンソールの [verified domain list] に移動するか、次の手順に従って、そこに移動しま
す。
a.
2.
3.
4.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
b. ナビゲーションペインで、[Identities] の [Domains] をクリックします。
[Verify a New Domain] をクリックします。
[Verify a New Domain] ダイアログボックスにドメイン名を入力し、[Generate DKIM settings] チェッ
クボックスをオンにして、[Verify This Domain] をクリックします。
その結果、ドメインの確認と Easy DKIM のセットアップに必要なすべての DNS レコードがダイアロ
グボックスに表示されます。ダイアログボックスを閉じた後でも、この情報はドメイン名をクリック
することで表示できます。
ドメインの確認を完了するには、[Verify a New Domain] ダイアログボックスの [Domain Verification
Record ] から得られる TXT レコードの情報で、ドメインの DNS 設定を更新する必要があります。
API Version 2010-12-01
89
Amazon Simple Email Service 開発者ガイド
DKIM での E メールの認証
一部のドメイン名プロバイダーでは、Name ではなく、Host という用語が使用されます。DNS プロ
バイダーがレコード名でのアンダースコアの使用を許可していない場合は、ドメイン検証レコードの
Name から _amazonses を削除できます。ドメインの DNS 設定内でこのレコードを識別しやすくす
るために、必要に応じて Value の前に amazonses: を付けることができます。
個々のレコードをハイライトしてコピーするか、[Download Record Set as CSV] を選択して、すべて
のレコードをダウンロードします。
Important
DNS プロバイダーは、DNS レコードの末尾にドメイン名を追加する場合があります。既に
ドメイン名が含まれているレコード(_amazonses.example.com など)を追加すると、ド
メイン名の重複を招きます(_amazonses.example.com.example.com)。ドメイン名の重複
を避けるには、DNS レコードのドメイン名の末尾にピリオドを追加します。こうすること
で、DNS プロバイダーにレコード名が完全修飾されている(つまり、ドメイン名に対して相
対的でなくなる)ことを示し、DNS プロバイダーによってドメイン名が追加されないように
します。
5.
DKIM をセットアップするには、ダイアログボックスの CNAME レコードの情報で、ドメインの DNS
設定を更新する必要があります。_domainkey から下線を省略することはできないので注意してくだ
さい。下線は、RFC 4871 の要件として規定されています。
個々の CNAME レコードをハイライトしてコピーするか、[Download Record Set as CSV] を選択し
て、すべてのレコードをダウンロードします。
a.
確認対象のドメインが Amazon Route 53 の DNS サービスを使用しており、なおかつ、Amazon
Route 53 と同じ E メールアドレスとパスワードで Amazon SES コンソールにログインしている
場合、ドメイン確認の DNS 設定と DKIM の DNS 設定の両方を Amazon SES コンソール内から
即座に更新することもできます。
b.
Amazon Route 53 を使用していない場合は、ご利用の DNS サービスプロバイダーで定められて
いる手順に従って、DNS 設定を更新する必要があります。DNS サービスのプロバイダーが不明
な場合は、システム管理者に問い合わせてください。最終的には、DNS レコードが更新されたこ
とをAmazon Web Servicesが検出しますが、この検出プロセスには最大 72 時間かかる場合があ
ります。
確認が完了すると、Amazon SES コンソール内のドメインの [Status] が "pending verification" から
"verified" に変化し、"Amazon SES Domain Verification SUCCESS" という確認メールがAmazon Web
Servicesから送信されます。AWS の E メールは、Amazon SES へのサインアップ時に使用した E
メールアドレスに送信されます。
DNS レコードに対する変更が Amazon SES によって正常に検出されると、Amazon SES コンソー
ルに表示されるそのドメインの [DKIM Verification Status] が "in progress" から "success" に変化
し、"Amazon SES DKIM Setup Successful" という確認メールがアマゾン ウェブ サービスから送信さ
れます。
6.
これで、確認済みドメインの有効なアドレスから、Amazon SES を使用して DKIM 署名付きの E メー
ルを送信することができます。Amazon SES コンソールを使用してテスト E メールを送信するに
は、確認済みドメインの横にあるチェックボックスをオンにして、[Send a Test Email] をクリック
します。受信した E メールのヘッダーを確認してください。この機能は通常 E メールプロバイダー
から提供され、"オリジナルを表示" や "メッセージのソースを表示" などのオプションを通じて利用
できます。"d" タグにお客様のドメインが設定された DKIM-Signature という名前のヘッダーを探し
ます。DKIM が有効になっていると、メッセージには 2 つの DKIM-Signature ヘッダーが追加されま
す。1 つはお客様のドメインに関するヘッダー、もう 1 つは d=amazonses.com が含まれるヘッダー
です(amazonses.com の署名は、DKIM が有効になっているかどうかにかかわらず、Amazon SES に
よって自動的に追加されます。この署名は無視できます)。たとえば、ses-example.com という名前
のドメインであれば、探している DKIM 署名のヘッダーは次のようになっています。
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple;
API Version 2010-12-01
90
Amazon Simple Email Service 開発者ガイド
DKIM での E メールの認証
s=xtk53kxcy4p3t6ztbrffs6d54rsrrhh6; d=ses-example.com;
t=1366720445;
h=From:To:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Date:Message-ID;
bh=lcj/Sl5qKl6K6zwFUwb7Flgnngl892pW574kmS1hrS0=;
b=nhVMQLmSh7/DM5PW7xPV4K/PN4iVY0a5OF4YYk2L7jgUq9hHQlckopxe82TaAr64
eVTcBhHHj9Bwtzkmuk88g4G5UUN8J+AAsd/JUNGoZOBS1OofSkuAQ6cGfRGanF68Ag7
nmmEjEi+JL5JQh//u+EKTH4TVb4zdEWlBuMlrdTg=
Important
DNS 設定の更新方法は、だれによって DNS サービスが提供されるかによって異なります。DNS
サービスは、ドメイン名登録業者(GoDaddy、Network Solutions など)によって提供されること
もあれば、単独のサービス(Amazon Route 53 など)として提供されることもあります。
Easy DKIM でエラーが発生した場合どうなりますか
DNS 設定が正しく更新されなかった場合、まず "Amazon SES DKIM FAILURE" という E メールが
Amazon Web Servicesから送信され、[DKIM] タブをクリックすると [Domains] 領域に "failed" というス
テータスが表示されます。
Note
その場合でも、Amazon SES によって E メールは送信されますが、DKIM 署名は実施されませ
ん。
既存の確認済みアイデンティティに対する Easy DKIM のセットアップ
既にドメインまたは E メールアドレスの確認が済んでいる場合、そのアイデンティティに対し、AWS マ
ネジメントコンソール を使用していつでも Easy DKIM をセットアップできます。
以下の手順は、既に確認済みのドメインに対して DKIM 署名を追加する方法を説明したものです。新しい
ドメインをこれから確認する場合は、その際に一緒に Easy DKIM をセットアップできます。「新しいドメ
インに対する Easy DKIM のセットアップ (p. 89)」を参照してください。
Important
Easy DKIM は、完全修飾ドメイン名(FQDN)でのみ機能します。example.com と
newyork.example.com の両方に対して Easy DKIM をセットアップする場合は、それらの FQDN
に対して個別に Easy DKIM をセットアップする必要があります。
既存の確認済みドメインに対して Easy DKIM をセットアップするには
1.
Amazon SES コンソールの [verified domain list] に移動するか、次の手順に従って、そこに移動しま
す。
a.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
b.
ナビゲーションペインで、[Identities] の [Domains] をクリックします。
2.
コンテンツペインで、Easy DKIM を設定する確認済みドメインをクリックします。
3.
ドメインの詳細ページで、[DKIM] を展開します。
4.
[Generate DKIM Settings] をクリックします。
DKIM レコードが表示されます。
5.
DKIM をセットアップするには、表示された CNAME レコードの情報で、ドメインの DNS 設定を更新
する必要があります。レコードをコピーするか、[Download Record Set as CSV] リンクをクリックし
てください。
API Version 2010-12-01
91
Amazon Simple Email Service 開発者ガイド
DKIM での E メールの認証
a.
確認対象のドメインが Amazon Route 53 の DNS サービスを使用しており、なおかつ、Amazon
Route 53 と同じ E メールアドレスとパスワードで Amazon SES コンソールにログインしている
場合、Easy DKIMの DNS 設定を Amazon SES 内から即座に更新することもできます。そのよう
にする場合は、[Use Route 53] ボタンをクリックしてください。
次に、[Use Route 53] ダイアログボックスの [Create Record Sets] をクリックしてプロセスを完
了します。
b.
Amazon Route 53 を使用していない場合は、ご利用の DNS サービスプロバイダーで定められて
いる手順に従って、DNS 設定を更新する必要があります。DNS サービスのプロバイダーが不明
な場合は、システム管理者に問い合わせてください。最終的には、DNS レコードが更新されたこ
とをAmazon Web Servicesが検出しますが、この検出プロセスには最大 72 時間かかる場合があ
ります。
6.
DNS レコードに対する変更が Amazon SES によって正常に検出されると、Amazon SES コンソー
ルに表示されるそのドメインの [DKIM Verification Status] が "in progress" から "success" に変化
し、"Amazon SES DKIM Setup Successful" という確認メールがアマゾン ウェブ サービスから送信さ
れます。Amazon Web Servicesの E メールは、Amazon SES へのサインアップ時に使用した E メー
ルアドレスに送信されます。
7.
(このステップは DKIM 設定を 2016 年 9 月 13 日 2:00 (PDT) 以前に開始する場合のみ必要となりま
す)DKIM 署名を使用してメッセージに署名するには、次のようにして、適切に検証された送信アイデ
ンティティの Easy DKIM を有効にする必要があります。
8.
a.
Easy DKIM 署名をメールアドレス、あるいはドメインのどちらかに対して有効にするかに応じ
て、ナビゲーションペインの [Identities] で [Email Addresses] または [Domains] をクリックしま
す。
b.
c.
Easy DKIM 署名を有効にする E メールアドレスまたはドメインをクリックします。
E メールアドレスまたはドメインの詳細ページで、[DKIM] を展開します。
d. [DKIM:] フィールドの [enable] をクリックします。
これで、確認済みドメインの有効なアドレスから、Amazon SES を使用して DKIM 署名付きの E メー
ルを送信することができます。Amazon SES コンソールを使用してテスト E メールを送信するに
は、確認済みドメインの横にあるチェックボックスをオンにして、[Send a Test Email] をクリック
します。受信した E メールのヘッダーを確認してください。この機能は通常 E メールプロバイダー
から提供され、"オリジナルを表示" や "メッセージのソースを表示" などのオプションを通じて利用
できます。"d" タグにお客様のドメインが設定された DKIM-Signature という名前のヘッダーを探し
ます。DKIM が有効になっていると、メッセージには 2 つの DKIM-Signature ヘッダーが追加されま
す。1 つはお客様のドメインに関するヘッダー、もう 1 つは d=amazonses.com が含まれるヘッダー
です(amazonses.com の署名は、DKIM が有効になっているかどうかにかかわらず、Amazon SES に
よって自動的に追加されます。この署名は無視できます)。たとえば、ses-example.com という名前
のドメインであれば、探している DKIM 署名のヘッダーは次のようになっています。
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple;
s=xtk53kxcy4p3t6ztbrffs6d54rsrrhh6; d=ses-example.com;
t=1366720445;
h=From:To:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Date:Message-ID;
bh=lcj/Sl5qKl6K6zwFUwb7Flgnngl892pW574kmS1hrS0=;
b=nhVMQLmSh7/DM5PW7xPV4K/PN4iVY0a5OF4YYk2L7jgUq9hHQlckopxe82TaAr64
eVTcBhHHj9Bwtzkmuk88g4G5UUN8J+AAsd/JUNGoZOBS1OofSkuAQ6cGfRGanF68Ag7
nmmEjEi+JL5JQh//u+EKTH4TVb4zdEWlBuMlrdTg=
Important
DNS 設定の更新方法は、だれによって DNS サービスが提供されるかによって異なります。DNS
サービスは、ドメイン名登録業者(GoDaddy、Network Solutions など)によって提供されること
もあれば、単独のサービス(Amazon Route 53 など)として提供されることもあります。
API Version 2010-12-01
92
Amazon Simple Email Service 開発者ガイド
DKIM での E メールの認証
Easy DKIM でエラーが発生した場合どうなりますか
DNS 設定が正しく更新されなかった場合、まず "Amazon SES DKIM FAILURE" という E メールが
Amazon Web Servicesから送信され、[DKIM] タブをクリックすると [Domains] 領域に "failed" というス
テータスが表示されます。
Note
その場合でも、Amazon SES によって E メールは送信されますが、DKIM 署名は実施されませ
ん。
Amazon SES の Easy DKIM を無効にする
Amazon SES による DKIM を使用したメッセージへの署名を一時的に停止する場合は、E メールアドレス
またはドメインの Easy DKIM を無効にします。必要に応じていつでも有効に戻すことができます。
Easy DKIM の署名を無効にするには
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
Easy DKIM 署名をメールアドレス、あるいはドメインのどちらかに対して無効にするかに応じて、ナ
ビゲーションペインの [Identities] で [Email Addresses] または [Domains] をクリックします。
3.
Easy DKIM 署名を無効にする E メールアドレスまたはドメインをクリックします。
4.
E メールアドレスまたはドメインの詳細ページで、[DKIM] を展開します。
5.
[DKIM:] フィールドの [disable] をクリックします。以後、このアイデンティティから送信される E
メールに対して、Amazon SES による DKIM 署名は実施されません。
Note
以下の図に示す [disable] オプションが表示されない場合、DKIM は既に無効です。
Note
そのドメインのすべての E メールアドレスについて、完全に DKIM 署名を無効にする場合は、さ
らに、ご利用の DNS から CNAME レコードを削除する必要があります。
Amazon SES における DKIM レコードの失効
DKIM DNS レコードは Amazon Web Services によって定期的にレビューされ、有効性が失われた
DKIM 署名は失効します。ドメインの所有権を確認するために必要な CNAME レコード情報を Amazon
Web Services が検出できない場合、"Amazon SES DKIM REVOCATION WARNING" という E メール
が Amazon Web Services から送信されます。Amazon SES からは引き続き E メールが送信されます
が、DKIM 署名は実施されません。
DNS 設定に対し、5 日以内に CNAME レコード情報を復元すると、"Amazon SES DKIM REVOCATION
CANCELLATION" という E メールが Amazon Web Services から送信されます。Amazon SES は、Easy
DKIM が有効にされた確認済みアイデンティティから送信される E メールに対し、DKIM 署名を再開しま
す。
DNS 設定に対し、5 日以内に CNAME レコード情報を復元しなかった場合、"Amazon SES DKIM
REVOCATION" という E メールが Amazon Web Services から送信され、以後 Amazon SES 経由で送信
する E メールには DKIM 署名が実施されなくなります。
DKIM 署名が失効したドメインに対して Easy DKIM をセットアップするには、Easy DKIM の初回セット
アップ時と同じ手順を最初から行う必要があります。
Amazon SES の Easy DKIM を管理するその他の方法
Easy DKIM は Amazon SES API を使って管理することもできます。以下のアクションを使用できます。
API Version 2010-12-01
93
Amazon Simple Email Service 開発者ガイド
DKIM での E メールの認証
• VerifyDomainDkim
• SetIdentityDkimEnabled
• GetIdentityDkimAttributes
以上の API アクションを使用して独自のフロントエンドアプリケーションを作成し、Easy DKIM と連携さ
せることができます。Easy DKIM に関連した API アクションの詳細な説明については、「Amazon Simple
Email Service API Reference」を参照してください。
Amazon SES の DKIM 署名に使用する DNS レコードの作成
Amazon SES コンソールとは異なり、Amazon SES API では、DKIM で使用できる完全な形式の DNS レ
コードが生成されません。代わりに、DKIM トークンという、ドメインのアイデンティティを表す文字列
が返されます。
Amazon SES コンソールを使用しない場合は、API から返された DKIM トークンを使用して、独自の
CNAME レコードを作成する必要があります。
DKIM 署名に使用する DNS レコードを作成するには
1.
ドメインの DKIM トークンを取得します。Amazon SES API を使用している場合
は、VerifyDomainDkim を呼び出してトークンを生成してください。DKIM の確認済みアイデンティ
ティが既に存在する場合は、GetIdentityDkimAttributes を呼び出してトークンを取得します。
2.
API からは、次のような 3 つの DKIM トークンが出力されます。
vvjuipp74whm76gqoni7qmwwn4w4qusjiainivf6sf
3frqe7jn4obpuxjpwpolz6ipb3k5nvt2nhjpik2oy
wrqplteh7oodxnad7hsl4mixg2uavzneazxv5sxi2
3.
これらのトークンを使って 3 つの CNAME レコードを構築します。ドメイン名が example.com である
場合、これらのレコードは次のようになっている必要があります。
vvjuipp74whm76gqoni7qmwwn4w4qusjiainivf6sf._domainkey.example.com CNAME
vvjuipp74whm76gqoni7qmwwn4w4qusjiainivf6sf.dkim.amazonses.com
3frqe7jn4obpuxjpwpolz6ipb3k5nvt2nhjpik2oy._domainkey.example.com CNAME
3frqe7jn4obpuxjpwpolz6ipb3k5nvt2nhjpik2oy.dkim.amazonses.com
wrqplteh7oodxnad7hsl4mixg2uavzneazxv5sxi2._domainkey.example.com CNAME
wrqplteh7oodxnad7hsl4mixg2uavzneazxv5sxi2.dkim.amazonses.com
後は、これらのレコードで DNS を更新できます。最終的には、DNS レコードが更新されたことを
Amazon Web Servicesが検出しますが、この検出プロセスには最大 72 時間かかる場合があります。正常
に検出されると、"Amazon SES DKIM Setup Successful" という確認メールがアマゾン ウェブ サービスか
ら送信されます。Amazon Web Servicesの E メールは、Amazon SES へのサインアップ時に使用した E
メールアドレスに送信されます。
Amazon SES における手動での DKIM 署名
Easy DKIM を使用しない場合でも、E メールメッセージに DKIM 署名を実施し、Amazon SES を使って
送信することは可能です。そのためには、SendRawEmail API を使用し、http://www.dkim.org の仕様に従っ
てメッセージコンテンツに自己署名する必要があります。この方法を使って手動で構築した DKIM 署名は
Amazon SES によって確認されないことに注意してください。署名に誤りがあった場合は、ご自身で修正
する必要があります。自分が送る E メールメッセージに DKIM 署名を実施する場合、1024 ビット以上の
キーを使用するようお勧めします。
メッセージへの DKIM 署名が有効になっているかどうかにかかわらず、d=amazonses.com が含まれる
署名は、Amazon SES によって自動的に追加されます。DKIM 署名が有効になっていると、メッセージ
API Version 2010-12-01
94
Amazon Simple Email Service 開発者ガイド
DMARC への準拠
には 2 つの DKIM ヘッダーが追加されます。1 つはお客様のドメインに関するヘッダー、もう 1 つは
amazonses.com に関するヘッダーです。
Important
配信可能性を最大限確保するため、次のヘッダーについては、DKIM 署名を付加しないでくださ
い。
• Message-ID
• 日付
• Return-Path
• Bounces-To
Note
Amazon SES SMTP インターフェイスを使用して E メールを送信する場合で、かつクライアン
トソフトウェアによって自動的に DKIM 署名が実施される場合は、上記のヘッダーがクライアン
トによって署名されないことを確認してください。ご使用のソフトウェアのドキュメントを参照
し、DKIM 署名の対象となるヘッダーを正確に把握するようお勧めします。
Amazon SES SMTP インターフェイスの詳細については、「Amazon SES SMTP インターフェイ
スを使用して E メールを送信する (p. 54)」を参照してください。
Amazon SES の使用による DMARC への準拠
DMARC (Domain-based Message Authentication, Reporting and Conformance) は、SPF (Sender Policy
Framework) およびドメインキーアイデンティファイドメール (DKIM) を使用してメールスプーフィングを
検出するためのメール認証プロトコルです。メールは、SPF または DKIM によって DMARC に準拠するこ
とができます。配信可能性を最大限に高めるためのベストプラクティスは、両方の方法に準拠するように
メール送信をセットアップすることです。
このトピックでは、Amazon SES を使用して送信する E メールで DMARC に準拠するための方法につい
て説明します。DMARC の仕様については、http://www.dmarc.org を参照してください。
SPF による DMARC 準拠
E メールが SPF に基づいて DMARC に準拠するためには、次の両方の条件を満たすことが DMARC 仕様
で求められています。
• E メールが SPF チェックに合格する必要があります。SPF チェックの詳細については、http://
www.openspf.org を参照してください。
• メールヘッダーに含まれる "From" アドレスのドメインは、送信側メールサーバーがメッセージの送
信元を示すために受信側メールサーバーに指定する MAIL FROM ドメインと合致する必要がありま
す。DMARC のポリシーで strict アラインメントが指定されている場合は、"From" ドメインと MAIL
FROM ドメインが完全に一致する必要があります。relaxed アラインメントの場合は、"From" ドメイン
のサブドメインを MAIL FROM ドメインにすることができます。
Amazon SES で両方の DMARC SPF 要件に準拠するには、SPF レコードを公開 (p. 87)して、DMARC
ポリシーの relaxed アラインメントを使用する必要があります (relaxed アラインメントはデフォルト設定
です)。
DKIM による DMARC 準拠
E メールが DKIM に基づいて DMARC に準拠するためには、次の両方の条件を満たすことが DMARC 仕様
で求められています。
• 有効な DKIM 署名がメッセージに含まれている必要があります。
API Version 2010-12-01
95
Amazon Simple Email Service 開発者ガイド
送信アクティビティのモニタリング
• DKIM 署名の d=ドメインがメールヘッダーの "From" ドメインに合致すること。DMARC ポリシー
で strict アラインメントが指定されている場合は、これらのドメインが完全に一致する必要がありま
す。relaxed アラインメントの場合は、"From" ドメインのサブドメインを d= ドメインにすることができ
ます。
Amazon SES で両方の DMARC DKIM 要件に準拠するには、Amazon SES によって自動的に E メール
への署名が行われるように、Easy DKIM をセットアップ (p. 88)する必要があります。また、メッ
セージに手動で DKIM 署名する (p. 94)こともできます。メッセージに DKIM 署名する方法に関係な
く、DMARC ポリシーで relaxed アラインメント (デフォルト設定) を使用した場合は、DMARC に準拠す
ることができます。“From” ドメインが d= ドメインに完全一致するように求めるには、DMARC ポリシー
で明確に strict アラインメントを指定する必要があります。
Amazon SES 送信アクティビティのモニタリング
Amazon SES は、送信アクティビティのモニタリング手段を提供します。送信アクティビティを定期的に
モニタリングすることを強くお勧めします。たとえば、問題を特定しすぐに修正するには、バウンス数、
苦情数、拒否された E メール数を監視する必要があります。バウンスや苦情の数が多すぎると、不正使用
と見なされ、Amazon SES の送信機能が停止するリスクが生じます。
Note
送信制限まで数を調べるには、「送信制限のモニタリング (p. 168)」を参照してください。
Amazon SES の送信は、メール送信イベントの観点でモニタリングします。モニタリングできるメール送
信イベントは、次のとおりです。
• バウンス - 受取人のメールサーバーにより、メールは完全に拒否されました。このイベントはハードバ
ウンスに該当します。ソフトバウンスは、Amazon SES が一定期間にわたって再試行してもメールを配
信できなかった場合に限ります。
• 苦情 - 受取人がメールをスパムとしてマークしました。
• 送信 - Amazon SES への API コールに成功したため、Amazon SES がメールの配信を試みます。
• 拒否 - Amazon SES は、最初にメールを受け入れましたが、後でウイルスを検出して拒否しました。
• 配信 - Amazon SES は、受取人のメールサーバーに E メールを正常に配信しました。
メール送信イベントは、コンソールの使用、フィードバック通知の使用、イベント発行の使用の 3 つの方
法でモニタリングできます。選択するモニタリング方法は、モニタリングするイベントのタイプ、モニタ
リングする詳細度と詳細レベル、Amazon SES がデータを発行する場所によって決まります。複数のモニ
タリング方法の使用を選択することもできます。各方法の特徴を次の表に示します。
モニタリング方法
モニタリング可能
なイベント
データへのアクセ
ス方法
詳細レベル
詳細度
Amazon
SES、CloudWatch
コンソール、また
は API
バウンス、苦情、
配信、送信、拒否
Amazon
SES、CloudWatch
コンソール、ま
たは API (配信は
CloudWatch を通
じてのみ使用でき
ます)
カウントのみ
粗い (AWS アカウ
ント全体)
フィードバック通
知
バウンス、苦情、
配信
Amazon SNS また
はメール (配信イ
ベントは Amazon
SNS によってのみ
行われます)
各イベントの詳細
粗い (AWS アカウ
ント全体)
API Version 2010-12-01
96
Amazon Simple Email Service 開発者ガイド
コンソールまたは API を使用したモニタリング
モニタリング方法
モニタリング可能
なイベント
データへのアクセ
ス方法
詳細レベル
詳細度
イベントの発行
バウンス、苦情、
配信、送信、拒否
Amazon
CloudWatch また
は Amazon Kinesis
Firehose
各イベントの詳細
細かい (ユーザー
定義可能なメール
の特性に基づく)
各モニタリング方法を使用する方法については、以下のトピックを参照してください。
• Amazon SES コンソールまたは API を使用したモニタリング (p. 97)
• 通知を使用したモニタリング (p. 98)
• イベント発行を使用したモニタリング (p. 118)
Amazon SES のさまざまなトピックに関する技術的な考察については、「Amazon SES ブログ」をご覧
ください。お問い合わせを参照あるいは発信するには「Amazon SES フォーラム」をご覧ください。
Amazon SES コンソールまたは API を使用したモニ
タリング
Amazon SES コンソールまたは Amazon SES API を使用することで、バウンス数、苦情数、送信された
E メール統計、拒否された E メール統計をモニタリングできます。API は、AWS SDK、AWS Command
Line Interface、または AWS Tools for Windows PowerShell を通じてクエリ (HTTPS) インターフェイスを
直接または間接的に呼び出すことで使用できます。
Amazon SES コンソールを使用した使用統計のモニタリング
以下の手順は、Amazon SES コンソールを使用した使用統計の表示方法を示します。
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
ナビゲーションペインで、[Sending Statistics] をクリックします。使用統計が [Your Amazon SES
Metrics] に表示されます。
Note
[Deliveries] グラフは、送信したメールの数に対応しています。
3.
メトリクスの動向データを表示するには、当該のグラフをダブルクリックします。
4.
表示を更新するには、[Refresh] ボタンをクリックします。
Amazon SES API を使用した使用統計のモニタリング
Amazon SES API により、サービスの利用に関する情報を返す GetSendStatistics アクションが可
能になります。送信アクティビティをモニタリングし、必要に応じて調整できるように、定期的に
GetSendStatistics を使用することをお勧めします。
GetSendStatistics を呼び出すと、過去 2 週間の送信アクティビティを示すデータポイントのリストが返
されます。このリストの各データポイントは、15 分間のアクティビティを示し、その期間に関する以下の
情報が含まれています:
API Version 2010-12-01
97
Amazon Simple Email Service 開発者ガイド
通知を使用したモニタリング
• バウンス数(ハードバウンスのみ)
• 苦情
• 配信試行回数 (送信したメールの数に対応します)
• 拒否した送信試行数
• タイムスタンプ
Note
GetSendStatistics の詳細については、『Amazon Simple Email Service API Reference』を参照
してください。
Amazon SES 通知を使用したモニタリング
Amazon SES は、E メールまたはAmazon Simple Notification Service(Amazon SNS)によってメールの
ステータスを通知できます。Amazon SES は、次の 3 種類の通知をサポートしています。
• バウンス - メールアドレスが Amazon SES サプレッションリストに記載されているため、E メール
は受取人の ISP、または Amazon SES によって拒否されます。ISP バウンスの場合、Amazon SES
は、Amazon SES によって再試行されなくなるハードバウンスおよびソフトバウンスのみを報告しま
す。このような場合には、受取人は E メールメッセージを受け取らず、Amazon SES による E メール
メッセージの再送信も試みられません。バウンス通知は、E メールおよび Amazon SNS から利用できま
す。不在 (OOTO) メッセージはバウンスが通知される同じ方法で通知されますが、バウンスの統計には
カウントされません。OOTO バウンス通知の例を参照するには、Amazon SES E メールボックスシミュ
レーターを使用できます。詳細については、「Amazon SES E メール送信のテスト (p. 197)」を参照
してください。
• 苦情 –E メールは ISP によって受領され受取人に配信されますが、受取人は受け取りを望まず、[Mark
as spam] などのボタンをクリックします。Amazon SES に ISP でセットアップしたフィードバック
ループが存在すると、Amazon SES は苦情通知を送信します。苦情通知は、E メールおよび Amazon
SNS から利用できます。
• 配信 – Amazon SES は、受取人のメールサーバーに E メールを正常に送信します。受信側メールサー
バーが E メールを受領した後、Amazon SES からは E メールに対する操作を制御できないため、この
通知は実際の受取人が E メールを受け取ったことを示すものではありません。配信の通知は、Amazon
SNS からのみ利用できます。
Amazon SES コンソールまたは Amazon SES API を使用して通知をセットアップできます。
通知について確認が必要な重要な点がいくつかあります。
• 通知の設定は、確認済みの各アイデンティティに対して設定される – グローバル設定はなく、通知設定
は、設定を構成した AWS リージョンで確認されたアイデンティティにのみ適用します。
• 確認済みドメイン通知設定は、確認済みの E メールアドレスを除いて、そのドメインの E メールアドレ
スから送信されたすべての E メールに適用される - E メールアドレスの設定は、ドメインの設定とは異
なるため、ドメイン設定の変更は E メールアドレス設定には影響しません。たとえば、example.com の
み確認して、バウンス通知設定を行った場合、[email protected] からの E メールに対するバウンス
通知に対してその設定が使用されます。ただし、example.com と [email protected] の両方を確認
した場合は、[email protected] にはexample.com に設定されたバウンス通知設定が使用されませ
ん。
• E メールまたは Amazon SNS でバウンス通知や苦情通知を受け取る必要がある - デフォルトは、E メー
ルのフィードバック転送という機能を使用して E メールを受け取る方法です。配信通知は省略可能で
す。Amazon SNS からのみ利用することができます。
• 3 種類のイベントすべての通知を受け取ることを選択すると、1 通の E メールに対して複数の通知を受
け取る可能性がある - たとえば、受信メールサーバーが E メールを受領したが(配信通知をトリガーす
る)、受取人がその E メールをスパムとしてマークした(苦情通知をトリガーする)場合などです。
API Version 2010-12-01
98
Amazon Simple Email Service 開発者ガイド
通知を使用したモニタリング
• E メール送信を開始する前に、バウンスと苦情に対する処理プロセスをセットアップしたことを確認す
る - 処理プロセスでバウンスと苦情をモニタリングし、メーリングリストからそれらのアドレスを削除
する必要があります。バウンスや苦情が多すぎると、Amazon SES アカウントが終了するリスクが発生
します。受け取ったそれぞれのバウンスや苦情を分析して、原因を特定する必要があります。バウンス
は、通常、存在しない受取人に送信していることが原因です。苦情は、受取人がメッセージの受信を望
まないことを示した場合に発生します。いずれの場合も、それらの E メールアドレスへの送信を停止す
ることを強くお勧めします。
• Amazon SES メールボックスシミュレーターを使用して通知をテストできる - メールボックスシミュ
レーターに送信した E メールは、バウンス率や苦情率には影響しません。詳細については、「Amazon
SES E メール送信のテスト (p. 197)」を参照してください。
以下のセクションでは、通知方法について説明します。
• E メールによって通知を受け取る場合は(バウンスや苦情のみに適用)、「Amazon SES E メールでの
通知 (p. 99)」を参照してください。
• Amazon SNS から通知を受け取る場合は(3 種類の通知すべてに適用)、「Amazon SNS を通じた
Amazon SES 通知 (p. 101)」を参照してください。
Amazon SES E メールでの通知
Amazon SES では、E メールのフィードバック転送というプロセスを使用するか、Amazon Simple
Notification Service(Amazon SNS)を利用して、バウンスや苦情を通知できます。このトピックは、デ
フォルト設定の E メールでの通知の受け取りについて説明します。Amazon SNS からの通知のセットアッ
プに関する詳細については、「Amazon SNS を通じた Amazon SES 通知 (p. 101)」を参照してくださ
い。バウンスや苦情の通知とは異なり、配信通知は Amazon SNS からのみ使用できます。
Important
通知についてのいくつかの重要なポイントについては、「Amazon SES 通知を使用したモニタリ
ング (p. 98)」を参照してください。
以下のセクションでは、E メールを使用してバウンスや苦情の通知を受け取る方法について説明していま
す。
• E メールでのバウンスや苦情の通知を有効にするには、「E メールのフィードバック転送を有効にす
る (p. 99)」を参照してください。
• E メールでのバウンスや苦情の通知を無効にするには、「E メールのフィードバック転送を無効にす
る (p. 100)」を参照してください。
• バウンスや苦情の通知が送信される E メールアドレスについては、「E メールのフィードバック転送
先 (p. 100)」を参照してください。
E メールのフィードバック転送を有効にする
E メールのフィードバック転送はデフォルトで有効です。以前に無効にしている場合、以下の手順を使用
して有効にできます。
Amazon SES コンソールを使用して E メールによるバウンスや苦情の転送を有効にする
1.
2.
3.
AWS マネジメントコンソールにサインインし、https://console.aws.amazon.com/ses/ で Amazon
SES コンソールを開きます。
E メールアドレスに対してバウンスや苦情の通知を設定するか、ドメインに対して設定するかに応じ
て、ナビゲーションペインの [Identity Management] で、[Email Addresses] または [Domains] を選択
します。
確認済み送信者のリストで、バウンスと苦情の通知を設定する E メールアドレスまたはドメインを選
択します。
API Version 2010-12-01
99
Amazon Simple Email Service 開発者ガイド
通知を使用したモニタリング
4.
確認済み送信者の詳細ペインで、[Notifications] を展開します。
5.
[Edit Configuration] を選択します。
6.
[E メール Feedback Forwarding] で、[Enabled] を選択します。
Note
このページで行った設定に対する変更は、反映されるまでに数分かかる場合があります。
また、 SetIdentityFeedbackForwardingEnabled API を使用して E メールを介してバウンスと苦情の通
知を有効にできます。
E メールのフィードバック転送を無効にする
Amazon SNS またはメールのフィードバック転送のいずれかでバウンスや苦情の通知を受け取る必要が
あるため、バウンスと苦情の通知両方に対して Amazon SNS トピックを選択した場合のみ、E メールの
フィードバック転送を無効にできます。バウンスと苦情に対して Amazon SNS トピックを選択すると、以
下の手順を使用して E メールのフィードバック転送を無効にできます。
Amazon SES コンソールを使用して E メールを介したバウンスや苦情の転送を無効にする
1.
AWS マネジメントコンソールにサインインし、https://console.aws.amazon.com/ses/ で Amazon
SES コンソールを開きます。
2.
E メールアドレスに対してバウンスや苦情の通知を設定するか、ドメインに対して設定するかに応じ
て、ナビゲーションペインの [Identity Management] で、[Email Addresses] または [Domains] を選択
します。
3.
確認済み送信者のリストで、バウンスと苦情の通知を設定する E メールアドレスまたはドメインを選
択します。
4.
確認済み送信者の詳細ペインで、[Notifications] を展開します。
5.
[Edit Configuration] を選択します。
6.
[Edit Notification Configuration] ダイアログボックスで、バウンスと苦情の両方に Amazon SNS トピッ
クを選択したことを確認します。そうでない場合、次のステップで E メールのフィードバック転送を
無効にすることはできません。
7.
[E メール Feedback Forwarding] で、[Disabled] を選択します。
8.
[Save Config] を選択して通知設定を保存します。
Note
このページで行った設定に対する変更は、反映されるまでに数分かかる場合があります。
また、 SetIdentityFeedbackForwardingEnabled API を使用して E メールを介してバウンスと苦情の通
知を無効にできます。
E メールのフィードバック転送先
E メールで通知を受け取る場合、Amazon SES は From: ヘッダーを書き換えて通知を送信しま
す。Amazon SES が通知を転送するアドレスは、元のメッセージの送信方法によって異なります。
SMTP インターフェイスを使用してメッセージを送信した場合、MAIL FROM コマンドに指定されたアド
レスに通知が送信されます。このアドレスは、SMTP DATA に指定されている Return-Path ヘッダーより
も優先されます。
メッセージの送信に SendEmail API を使用した場合、通知は以下のように配信されます。
• SendEmail のオプションパラメータ ReturnPath を指定した場合、通知はそのアドレスに送信されま
す。
API Version 2010-12-01
100
Amazon Simple Email Service 開発者ガイド
通知を使用したモニタリング
• 指定していない場合、SendEmail の必須パラメータ Source に指定されたアドレスに通知が送信されま
す。このパラメータによって、メッセージの From: ヘッダーが入力されます。
メッセージの送信に SendRawEmail API を使用した場合、通知は以下のように配信されます。
• SendRawEmail のオプションパラメータ Source を指定した場合、そのアドレスに通知が送信されます。
このアドレスは、生のメッセージに指定されている Return-Path: ヘッダーよりも優先されます。
• 指定していない場合、生のメッセージに Return-Path: ヘッダーが指定されていた場合、そのアドレスに
通知が送信されます。
• その他の場合、生のメッセージの From: ヘッダーに指定されたアドレスに通知が送信されます。
Important
SMTP インターフェイス、SendEmail API、SendRawEmail API のどれを使用しているかにかかわ
らず、Amazon SES は指定したすべての Return-Path: ヘッダーを上書きします。
Amazon SNS を通じた Amazon SES 通知
Amazon Simple Notification Service(Amazon SNS)を使用すると、Amazon SES を通じて送信した E
メールのバウンス、苦情、および配信に関する通知を受け取ることができます。Amazon SNS 通知は
JavaScript Object Notation(JSON)形式になっており、プログラムで処理できます。
バウンスと苦情の両方の Amazon SNS 通知を設定する場合は、E メールによるバウンスと苦情の通知の
受信は完全に無効にできます。E メールによるバウンスと苦情の通知の受信に関する詳細については、
「Amazon SES E メールでの通知 (p. 99)」を参照してください。配信の通知は、Amazon SNS からの
み利用できます。
Important
通知についてのいくつかの重要なポイントについては、「Amazon SES 通知を使用したモニタリ
ング (p. 98)」を参照してください。
Amazon SNS による Amazon SES バウンス、苦情、および配信通知については、以下のセクションを参
照してください。
• Amazon SES コンソールまたは Amazon SES API を使用して通知をセットアップするには、「Amazon
SES の Amazon SNS 通知の設定 (p. 101)」を参照してください。
• 通知の内容の説明については、「Amazon SES への Amazon SNS 通知のコンテンツ (p. 103)」を参照
してください。
• バウンス、苦情、および配信通知の例については、「Amazon SES の Amazon SNS 通知の
例 (p. 112)」を参照してください。
Amazon SES の Amazon SNS 通知の設定
Amazon SES のバウンス、苦情、配信に関する通知を Amazon Simple Notification Service(Amazon
SNS) 経由で行うことができます。
Important
通知についてのいくつかの重要なポイントについては、「Amazon SES 通知を使用したモニタリ
ング (p. 98)」を参照してください。
以下のセクションに記載されているように、通知の設定は、Amazon SES コンソールを使用する
か、Amazon SES API を使用して行います。
API Version 2010-12-01
101
Amazon Simple Email Service 開発者ガイド
通知を使用したモニタリング
• Amazon SES コンソールを使用して通知を設定するには、「Amazon SES コンソールを使用した通知の
設定 (p. 102)」を参照してください。
• Amazon SES API を使用して通知を設定するには、「Amazon SES API を使用した通知の設
定 (p. 103)」を参照してください。
Amazon SES コンソールを使用した通知の設定
Amazon SES コンソールを使用して通知を設定するには
1.
AWS マネジメントコンソールにサインインし、https://console.aws.amazon.com/ses/ で Amazon
SES コンソールを開きます。
2.
ナビゲーションペインの [Identity Management] で、[Domains] または [Email Addresses] を選択しま
す。
3.
確認済み送信者のリストで、通知を設定する E メールアドレスまたはドメインを選択します。
Important
確認済みドメイン通知設定は、同様に確認済みの E メールアドレスを除き、そのドメインの
E メールアドレスから送信されるすべてのメールに適用されます。
4.
確認済み送信者の詳細ペインで、[Notifications] を展開します。
5.
[Edit Configuration] を選択します。
6.
[SNS Topic Configuration] で、次のように Amazon SNS トピック設定を編集できます。
a.
バウンス、苦情、配信に使用する Amazon SNS トピックを選択します。通知を同じ Amazon
SNS トピックに発行するか、異なる Amazon SNS トピックに発行するかは選択可能です。
Important
バウンス、苦情、配信の通知に使用する Amazon SNS トピックは、ご利用の Amazon
SES と同じ AWS リージョンに存在する必要があります。
自分が所有していない Amazon SNS トピックを使用する場合は、AWS Identity and Access
Management (IAM) ポリシーの設定で、その Amazon SNS トピックの Amazon リソースネーム
(ARN) からの発行を許可する必要があります。
b.
Amazon SES に転送した E メールの元のヘッダーを Amazon SNS 通知に含める場合は、[Include
original headers] を選択します。このオプションは、その通知タイプに Amazon SNS トピック
を割り当てている場合にのみ使用できます。元の E メールヘッダーの内容については、Amazon
SNS 通知のコンテンツ (p. 103)の mail オブジェクトを参照してください。
7.
バウンスと苦情の両方で Amazon SNS トピックを選択すると、E メール通知を完全に無効にできま
す。バウンスや苦情の E メール通知を無効にするには、[Email Feedback Forwarding] で [Disable] を
選択します。配信の通知は、Amazon SNS からのみ利用できます。
8.
[Save Config] を選択します。通知設定に対する変更は、反映されるまでに数分かかる場合がありま
す。
設定の完了後は、バウンス、苦情、配信の通知が Amazon SNS トピックに送られるようになります。
これらの通知は JavaScript Object Notation (JSON) 形式になっており、「Amazon SNS 通知のコンテン
ツ (p. 103)」で説明されている構造に従います。
バウンス、苦情、配信の通知には、Amazon SNS の標準レートが課金されます。詳細について
は、Amazon SNS 料金表ページを参照してください。
Note
トピックが削除されていたり、ご利用の AWS アカウントがトピックへの発行権限を失ったり
したことが原因で Amazon SNS トピックへの発行に失敗した場合、該当する送信アイデンティ
ティのそのトピックに対する Amazon SES の設定は削除されます。そのアイデンティティに関し
API Version 2010-12-01
102
Amazon Simple Email Service 開発者ガイド
通知を使用したモニタリング
て、E メールによるバウンスと苦情の通知が再び有効となり、その変更がメールによって通知さ
れます。そのトピックを使用するための設定を複数のアイデンティティに対して行った場合、各
アイデンティティのトピック設定が変更されるタイミングは、それぞれのアイデンティティでト
ピックへの発行に失敗した時点となります。
Amazon SES API を使用した通知の設定
バウンス、苦情、配信の通知は、Amazon SES API を使用して設定することもできます。以下のアクショ
ンを使用できます。
• SetIdentityNotificationTopic
• SetIdentityFeedbackForwardingEnabled
• GetIdentityNotificationAttributes
• SetIdentityHeadersInNotificationsEnabled
これらの API アクションを使用して、通知用にカスタマイズしたフロントエンドアプリケーションを作成
することができます。通知に関連する API アクションの詳しい説明については、「Amazon Simple Email
Service API Reference」を参照してください。
Amazon SES への Amazon SNS 通知のコンテンツ
バウンス、苦情、および配信の通知は JavaScript Object Notation(JSON)形式で Amazon Simple
Notification Service(Amazon SNS)トピックに発行されます。トップレベル JSON オブジェクトに
は、notificationType 文字列と mail オブジェクトに加え、bounce オブジェクト、complaint オブジェ
クト、または delivery オブジェクトのいずれかが含まれます。
オブジェクトのタイプごとの詳細については以下のセクションを参照してください。
• トップレベル JSON オブジェクト (p. 103)
• mail オブジェクト (p. 104)
• bounce オブジェクト (p. 106)
• complaint オブジェクト (p. 109)
• delivery オブジェクト (p. 111)
以下は、Amazon SES への Amazon SNS 通知のコンテンツに関する重要事項です。
• 受け取る通知のタイプにより、複数の受取人に対応する 1 つの Amazon SNS 通知を受け取ることも、
各受取人に 1 つの Amazon SNS 通知を受け取ることもあります。コードでは Amazon SNS 通知を解析
して、どちらの場合にも対応できるようにする必要があります。Amazon SNS を使用して送信された
通知に関しては、Amazon SES では順序付けや一括処理が保証されません。ただし、タイプの異なる
Amazon SNS 通知(バウンスと苦情など)が 1 つの通知にまとめられることは決してありません。
• 1 人の受取人に対して複数のタイプの Amazon SNS 通知を受け取ることがあります。たとえば、受信
メールサーバーは、E メールを受理した場合でも(配信の通知をトリガーします)、そのメールの処理
後に、そのメールは実際にはバウンスであると判定する場合があります(バウンスの通知をトリガーし
ます)。ただし、通知のタイプが異なるため、これらは常に個別に通知されます。
• Amazon SES には、通知にフィールドを追加する権限があります。そのため、これらの通知を解析する
アプリケーションには、不明なフィールドを処理できるだけの十分な柔軟性が必要です。
• Amazon SES が E メールを送信すると、メッセージのヘッダーを上書きします。mail オブジェクトの
headers および commonHeaders フィールドから元のメッセージのヘッダーを取得できます。
トップレベル JSON オブジェクト
Amazon SES 通知のトップレベル JSON オブジェクトには、以下のフィールドが含まれています。
API Version 2010-12-01
103
Amazon Simple Email Service 開発者ガイド
通知を使用したモニタリング
フィールド名
notificationType
mail
bounce
complaint
delivery
説明
通知のタイプを格納する文字列は、JSON オブ
ジェクトによって表されます。想定される値
は、Bounce、Complaint、および Delivery です。
通知に関連する元のメールについての情報を含む
JSON オブジェクト。詳細については、「Mail オ
ブジェクト (p. 104)」を参照してください。
このフィールドは notificationType が Bounce で
ある場合のみ存在し、バウンスに関する情報を持
つ JSON オブジェクトが含まれます。詳細につい
ては、「Bounce オブジェクト (p. 106)」を参照
してください。
このフィールドは notificationType が Complaint
である場合のみ存在し、苦情に関する情報を持つ
JSON オブジェクトが含まれます。詳細について
は、「苦情のオブジェクト (p. 109)」を参照して
ください。
このフィールドは notificationType が Delivery
である場合のみ存在し、配信に関する情報を持つ
JSON オブジェクトが含まれます。詳細について
は、「Delivery オブジェクト (p. 111)」を参照し
てください。
Mail オブジェクト
バウンス、苦情、または配信の通知にはそれぞれ、mail オブジェクト内の元の E メールについての情報が
含まれます。mail オブジェクトについての情報を含む JSON オブジェクトには次のフィールドが含まれま
す。
フィールド名
説明
timestamp
元のメッセージが送信された日時(ISO 8601 形
式)。
messageId
Amazon SES がメッセージに割り当てる固有 ID。
メッセージを送信すると、Amazon SES によって
この値が返されます。
Note
このメッセージ ID は Amazon SES に
よって割り当てられます。元の E メール
のメッセージ ID は、mail オブジェクトの
headers および commonHeaders フィール
ドにあります。
source
sourceArn
元のメッセージが送信された E メールアドレス
(エンベロープ MAIL FROM アドレス)。
E メールの送信に使用された Amazon リソース
ネーム(ARN)。送信承認の場合、sourceArn
は、代理送信者が E メールの送信に使用するこ
とを ID 所有者により承認された ID の ARN で
API Version 2010-12-01
104
Amazon Simple Email Service 開発者ガイド
通知を使用したモニタリング
フィールド名
説明
す。送信承認の詳細については、「送信承認の使
用 (p. 171)」を参照してください。
sendingAccountId
destination
headersTruncated
headers
E メールの送信に使用されたアカウントの AWS ア
カウント ID。送信承認の場合、sendingAccountId
は代理送信者のアカウント ID です。
元のメールの受取人の E メールアドレスのリス
ト。
(通知設定 (p. 101)に元の E メールのヘッダーが
含まれている場合にのみ表示。)通知でヘッダー
が切り捨てられたかどうかを示す文字列。切り捨
ては、ヘッダーが 10 KB を超える場合に発生しま
す。指定できる値は true および false です。
(通知設定に元の E メールのヘッダーが含まれてい
る場合にのみ表示。)E メールの元のヘッダーの一
覧。リスト内の各ヘッダーには、name フィールド
と value フィールドがあります。
Note
headers フィールドのメッセージ ID
は、Amazon SES に転送した元のメッ
セージからのものです。その後 Amazon
SES によってメッセージに割り当てられ
たメッセージ ID は、mail オブジェクトの
messageId フィールドにあります。
commonHeaders
(通知設定に元の E メールのヘッダーが含まれて
いる場合にのみ表示。)よく使用される E メール
の元のヘッダーの一覧。リスト内の各ヘッダーに
は、name フィールドと value フィールドがありま
す。
Note
commonHeaders フィールドのメッセージ
ID は、Amazon SES に転送した元のメッ
セージからのものです。その後 Amazon
SES によってメッセージに割り当てられ
たメッセージ ID は、mail オブジェクトの
messageId フィールドにあります。
以下は、元の E メールヘッダーを含む mail オブジェクトの例です。この通知タイプが元の E メールヘッ
ダーを含めるように設定されていない場合は、mail オブジェクトに headersTruncated、headers および
commonHeaders フィールドが含まれません。
{
"timestamp":"2016-01-27T14:05:45 +0000",
"messageId":"000001378603177f-7a5433e7-8edb-42ae-af10-f0181f34d6ee-000000",
"source":"[email protected]",
"sourceArn": "arn:aws:ses:us-west-2:888888888888:identity/example.com",
"sendingAccountId":"123456789012",
"destination":[
"[email protected]"
API Version 2010-12-01
105
Amazon Simple Email Service 開発者ガイド
通知を使用したモニタリング
],
"headersTruncated":false,
"headers":[
{
"name":"From",
"value":"\"John Doe\" <[email protected]>"
},
{
"name":"To",
"value":"\"Jane Doe\" <[email protected]>"
},
{
"name":"Message-ID",
"value":"custom-message-ID"
},
{
"name":"Subject",
"value":"Hello"
},
{
"name":"Content-Type",
"value":"text/plain; charset=\"UTF-8\""
},
{
"name":"Content-Transfer-Encoding",
"value":"base64"
},
{
"name":"Date",
"value":"Wed, 27 Jan 2016 14:05:45 +0000"
}
],
"commonHeaders":{
"from":[
"John Doe <[email protected]>"
],
"date":"Wed, 27 Jan 2016 14:05:45 +0000",
"to":[
"Jane Doe <[email protected]>"
],
"messageId":" custom-message-ID",
"subject":"Hello"
}
}
Bounce オブジェクト
バウンスに関する情報を含む JSON オブジェクトには常に以下のフィールドが含まれます。
フィールド名
bounceType
bounceSubType
bouncedRecipients
説明
バウンスのタイプ。Amazon SES によって決定
されます。詳細については、「バウンスのタイ
プ (p. 108)」を参照してください。
バウンスのサブタイプ。Amazon SES によって決
定されます。詳細については、「バウンスのタイ
プ (p. 108)」を参照してください。
バウンスとなった元のメールの受取人についての
情報を含むリスト。詳細については、「バウンス
となった受取人 (p. 107)」を参照してください。
API Version 2010-12-01
106
Amazon Simple Email Service 開発者ガイド
通知を使用したモニタリング
フィールド名
説明
バウンスが送信された日時(ISO 8601 形式)。こ
の時刻は、ISP によって通知が送信された時刻で
あり、Amazon SES が通知を受け取った時刻では
ないことに注意してください。
timestamp
バウンスの一意の ID。
feedbackId
Amazon SES がリモートの Message Transfer Authority (MTA) に接続できた場合は、以下のフィールドも
表示されます。
フィールド名
説明
remoteMtaIp
Amazon SES が E メールの配信を試みた MTA の
IP アドレス。
Delivery Status Notification (DSN) がバウンスにアタッチされている場合、以下のフィールドも表示される
ことがあります。
フィールド名
説明
DSN の Reporting-MTA フィールドの値。これ
は、DSN に記述された配信操作、リレー操作、ま
たはゲートウェイ操作の実行を試みた、MTA の値
です。
reportingMTA
以下は、bounce オブジェクトの例です。
{
"bounceType":"Permanent",
"bounceSubType": "General",
"bouncedRecipients":[
{
"status":"5.0.0",
"action":"failed",
"diagnosticCode":"smtp; 550 user unknown",
"emailAddress":"[email protected]"
},
{
"status":"4.0.0",
"action":"delayed",
"emailAddress":"[email protected]"
}
],
"reportingMTA": "example.com",
"timestamp":"2012-05-25T14:59:38.605Z",
"feedbackId":"000001378603176d-5a4b5ad9-6f30-4198-a8c3-b1eb0c270a1d-000000",
"remoteMtaIp":"127.0.2.0"
}
バウンスとなった受取人
バウンスの通知には、1 人の受取人が関するものと複数の受取人に関するものがありま
す。bouncedRecipients フィールドにはオブジェクトのリストが含まれ(バウンスの通知が関係する受取
人ごとに 1 つのオブジェクト)、常に以下のフィールドが含まれています。
API Version 2010-12-01
107
Amazon Simple Email Service 開発者ガイド
通知を使用したモニタリング
フィールド名
説明
受取人の E メールアドレス。DSN が利用できる場
合、これが DSN の Final-Recipient フィールド
の値です。
emailAddress
オプションで、DSN がバウンスにアタッチされている場合、以下のフィールドも表示される場合がありま
す。
フィールド名
説明
DSN の Action フィールドの値。このフィールド
には、Reporting-MTA により実行された、この受
取人に対してメッセージを送信しようとした結果
のアクションが示されます。
action
DSN の Status フィールドの値。これは、メッ
セージの配信状態を示す、受取人ごとに個別の、
トランスポート独立型ステータスコードです。
status
ステータスコードは、Reporting-MTA により発
行されます。これは、DSN の Diagnostic-Code
フィールドの値です。このフィールドは DSN によ
り存在しない場合があります(その場合 JSON オ
ブジェクトにも表示されません)。
diagnosticCode
以下は、bouncedRecipients のリストに示されるオブジェクトの例です。
{
"emailAddress": "[email protected]",
"action": "failed",
"status": "5.0.0",
"diagnosticCode": "X-Postfix; unknown user"
}
バウンスのタイプ
以下のバウンスのタイプがあります。Permanent とマークされたバウンスが返された E メールアドレス
は、今後も送信が正常に完了することはないと考えられるため、メーリングリストから削除することをお
勧めします。Transient バウンスは、再試行の上限に達し、これ以上再試行が行われない場合に送信され
ます。最初に Transient バウンスとして返されたアドレスに再送信すると、正常に完了する場合がありま
す。
Note
Amazon SES は、Amazon SES が今後再試行しないハードバウンスとソフトバウンスのみを報告
します。つまり、E メールメッセージは受取人に届いておらず、Amazon SES によるメールメッ
セージの再送信も行われません。
bounceType
bounceSubType
説明
Undetermined
Undetermined
Amazon SES はバウンスの理由を特定できません
でした。
Permanent
General
Amazon SES は、一般的なハードバウンスを受け
取りました。メーリングリストからこの受取人を
削除することをお勧めします。
API Version 2010-12-01
108
Amazon Simple Email Service 開発者ガイド
通知を使用したモニタリング
bounceType
bounceSubType
説明
Permanent
NoEmail
Permanent
Suppressed
Transient
General
Transient
MailboxFull
Transient
MessageTooLarge
Transient
ContentRejected
Transient
AttachmentRejected
Amazon SES は、送信先の E メールアドレスが存
在しないことが原因である永続的なハードバウン
スを受け取りました。この受取人をメーリングリ
ストから削除することをお勧めします。
Amazon SES は、このアドレスへの送信を抑制
しました。このアドレスは無効なアドレスとして
最近バウンスとなった履歴があるからです。サプ
レッションリストからメールアドレスを削除する
方法については、「Amazon SES サプレッション
リストからの E メールアドレスの削除 (p. 210)」
を参照してください。
Amazon SES は、一般的なバウンスを受け取りま
した。今後、この受取人に再送信を行うと、正常
に完了する場合があります。
Amazon SES は、メールボックスが一杯であるこ
とを示すバウンスを受け取りました。今後、この
受取人に再送信を行うと、正常に完了する場合が
あります。
Amazon SES は、メッセージサイズが大きすぎる
ことを示すバウンスを受け取りました。メッセー
ジサイズを減らすことで、この受取人への再送信
が正常に完了する場合があります。
Amazon SES は、コンテンツが却下されたことを
示すバウンスを受け取りました。メッセージのコ
ンテンツを変更することで、この受取人への再送
信が正常に完了する場合があります。
Amazon SES は、添付ファイルが拒否されたこと
を示すバウンスを受け取りました。添付ファイル
を削除または変更することで、この受取人への再
送信が正常に完了する場合があります。
苦情のオブジェクト
苦情に関する情報を含む JSON オブジェクトには以下のフィールドが含まれます。
フィールド名
complainedRecipients
timestamp
feedbackId
説明
苦情の原因である可能性がある受取人についての
情報を含むリスト。詳細については、「苦情を申
告した受取人 (p. 110)」を参照してください。
苦情が送信された日時 (ISO 8601 形式)。この時
刻は、ISP によって通知が送信された時刻であ
り、Amazon SES が通知を受け取った時刻ではな
いことに注意してください。
苦情の一意の ID。
API Version 2010-12-01
109
Amazon Simple Email Service 開発者ガイド
通知を使用したモニタリング
また、フィードバックレポートが苦情にアタッチされている場合、以下のフィールドが示される場合があ
ります。
フィールド名
説明
フィードバックレポートの User-Agent フィールド
の値。これは、レポートを生成したシステムの名
前とバージョンを示します。
userAgent
ISP から受け取ったフィードバックレポートの
Feedback-Type フィールドの値。これには、
フィードバックのタイプが含まれます。
complaintFeedbackType
ISO 8601 形式のフィードバックレポートの
Arrival-Date フィールドまたは Received-Date
フィールドの値。このフィールドがレポートにな
い場合もあります(その場合、JSON オブジェク
トにも表示されません)。
arrivalDate
以下は、complaint オブジェクトの例です。
{
"userAgent":"AnyCompany Feedback Loop (V0.01)",
"complainedRecipients":[
{
"emailAddress":"[email protected]"
}
],
"complaintFeedbackType":"abuse",
"arrivalDate":"2009-12-03T04:24:21.000-05:00",
"timestamp":"2012-05-25T14:59:38.623Z",
"feedbackId":"000001378603177f-18c07c78-fa81-4a58-9dd1-fedc3cb8f49a-000000"
}
苦情を申告した受取人
complainedRecipients フィールドには、苦情を申告した可能性のある受取人のリストが含まれます。
Important
ほとんどの ISP は、苦情の通知から苦情を申告した受取人の E メールアドレスを編集するため、
このリストには、苦情を受け取った ISP や元のメッセージの受取人に基づく、苦情を申告した可
能性のある受取人についての情報が含まれます。Amazon SES では、この受取人のリストを確認
するために元のメッセージを参照します。
このリストの JSON オブジェクトには以下のフィールドが含まれます。
フィールド名
説明
emailAddress
受取人の E メールアドレス。
以下は、苦情を申告した受取人のオブジェクトの例です。
{ "emailAddress": "[email protected]" }
API Version 2010-12-01
110
Amazon Simple Email Service 開発者ガイド
通知を使用したモニタリング
Note
受取人 1 人につき 1 つのメッセージが送信されるように制限している(BCC 行に 30 個の異なる
E メールアドレスを指定して送信するのではなく)場合は、この動作を利用して、メッセージに
関する苦情を伝えている E メールアドレスをより確実に特定することできます。
苦情のタイプ
complaintFeedbackType フィールドには以下の苦情のタイプが示されます (Internet Assigned Numbers
Authority ウェブサイト に基づいて、報告する ISP により割り当てられます)。
• abuse - 未承諾 E メールまたはある種の迷惑 E メール。
• auth-failure - E メールの認証失敗を示します。
• fraud - ある種の詐欺やフィッシング行為。
• not-spam - 報告者がこのメッセージはスパムではないと判断しました。このタイプは、誤ってスパムと
してタグ付けまたは分類されたメッセージを修正するために使用される場合があります。
• other - その他の登録されたタイプに該当しないフィードバックです。
• virus - 元のメッセージにウイルスが見つかったことを示します。
Delivery オブジェクト
配信に関する情報を含む JSON オブジェクトには常に以下のフィールドが含まれます。
フィールド名
説明
timestamp
Amazon SES が E メールを受取人のメールサー
バーに配信した時間(ISO 8601 形式)。
Amazon SES が送信者からのリクエストを受理
したときから受取人のメールサーバーにそのメッ
セージが送信されるまでのミリ秒単位の時間。
processingTimeMillis
配信の通知を適用する E メールの対象となる受取
人のリスト。
recipients
Amazon SES から E メールを受け取ったリモート
ISP による SMTP 応答メッセージ。このメッセー
ジは、E メール、受信メールサーバー、または受
信する ISP によって異なります。
smtpResponse
reportingMTA
メールを送信する Amazon SES メールサーバーの
ホスト名。
remoteMtaIp
Amazon SES が E メールを配信した MTA の IP ア
ドレス。
以下は、delivery オブジェクトの例です。
{
"timestamp":"2014-05-28T22:41:01.184Z",
"processingTimeMillis":546,
"recipients":["[email protected]"],
"smtpResponse":"250 ok: Message 64111812 accepted",
"reportingMTA":"a8-70.smtp-out.amazonses.com",
"remoteMtaIp":"127.0.2.0"
API Version 2010-12-01
111
Amazon Simple Email Service 開発者ガイド
通知を使用したモニタリング
}
Amazon SES の Amazon SNS 通知の例
以下のセクションでは、3 種類の通知の例を紹介します。
• バウンス通知の例については、「Amazon SNS バウンス通知の例 (p. 112)」を参照してください。
• 苦情通知の例については、「Amazon SNS 苦情通知の例 (p. 114)」を参照してください。
• 配信通知の例については、「Amazon SNS 配信通知の例 (p. 117)」を参照してください。
Amazon SNS バウンス通知の例
このセクションには、フィードバックを送信した E メール受信者によって提供される配信ステータス通知
(DSN) を含むバウンス通知と含まないバウンス通知の例が記載されています。
DSN を含むバウンス通知
以下は、DSN および元の E メールヘッダーを含むバウンス通知の例です。バウンス通知が元
の E メールヘッダーを含めるように設定されていない場合は、通知内の mail オブジェクトに
headersTruncated、headers および commonHeaders フィールドが含まれません。
{
"notificationType":"Bounce",
"bounce":{
"bounceType":"Permanent",
"reportingMTA":"dns; email.example.com",
"bouncedRecipients":[
{
"emailAddress":"[email protected]",
"status":"5.1.1",
"action":"failed",
"diagnosticCode":"smtp; 550 5.1.1 <[email protected]>... User"
}
],
"bounceSubType":"General",
"timestamp":"2016-01-27T14:59:38.237Z",
"feedbackId":"00000138111222aa-33322211-cccc-cccc-cccc-ddddaaaa068a-000000",
"remoteMtaIp":"127.0.2.0"
},
"mail":{
"timestamp":"2016-01-27T14:59:38.237Z",
"source":"[email protected]",
"sourceArn": "arn:aws:ses:us-west-2:888888888888:identity/example.com",
"sendingAccountId":"123456789012",
"messageId":"00000138111222aa-33322211-cccc-cccc-cccc-ddddaaaa0680-000000",
"destination":[
"[email protected]",
"[email protected]",
"[email protected]"],
"headersTruncated":false,
"headers":[
{
"name":"From",
"value":"\"John Doe\" <[email protected]>"
},
{
"name":"To",
"value":"\"Jane Doe\" <[email protected]>, \"Mary Doe\" <[email protected]>,
\"Richard Doe\" <[email protected]>"
},
{
API Version 2010-12-01
112
Amazon Simple Email Service 開発者ガイド
通知を使用したモニタリング
"name":"Message-ID",
"value":"custom-message-ID"
},
{
"name":"Subject",
"value":"Hello"
},
{
"name":"Content-Type",
"value":"text/plain; charset=\"UTF-8\""
},
{
"name":"Content-Transfer-Encoding",
"value":"base64"
},
{
"name":"Date",
"value":"Wed, 27 Jan 2016 14:05:45 +0000"
}
],
"commonHeaders":{
"from":[
"John Doe <[email protected]>"
],
"date":"Wed, 27 Jan 2016 14:05:45 +0000",
"to":[
"Jane Doe <[email protected]>, Mary Doe <[email protected]>, Richard Doe
<[email protected]>"
],
"messageId":"custom-message-ID",
"subject":"Hello"
}
}
}
DSN を含まないバウンス通知
以下は、元の E メールヘッダーを含むが DSN を含まないバウンス通知の例です。バウンス通知
が元の E メールヘッダーを含めるように設定されていない場合は、通知内の mail オブジェクトに
headersTruncated、headers および commonHeaders フィールドが含まれません。
{
"notificationType":"Bounce",
"bounce":{
"bounceType":"Permanent",
"bounceSubType": "General",
"bouncedRecipients":[
{
"emailAddress":"[email protected]"
},
{
"emailAddress":"[email protected]"
}
],
"timestamp":"2016-01-27T14:59:38.237Z",
"feedbackId":"00000137860315fd-869464a4-8680-4114-98d3-716fe35851f9-000000",
"remoteMtaIp":"127.0.2.0"
},
"mail":{
"timestamp":"2016-01-27T14:59:38.237Z",
"messageId":"00000137860315fd-34208509-5b74-41f3-95c5-22c1edc3c924-000000",
"source":"[email protected]",
"sourceArn": "arn:aws:ses:us-west-2:888888888888:identity/example.com",
"sendingAccountId":"123456789012",
API Version 2010-12-01
113
Amazon Simple Email Service 開発者ガイド
通知を使用したモニタリング
"destination":[
"[email protected]",
"[email protected]",
"[email protected]"
],
"headersTruncated":false,
"headers":[
{
"name":"From",
"value":"\"John Doe\" <[email protected]>"
},
{
"name":"To",
"value":"\"Jane Doe\" <[email protected]>, \"Mary Doe\" <[email protected]>,
\"Richard Doe\" <[email protected]>"
},
{
"name":"Message-ID",
"value":"custom-message-ID"
},
{
"name":"Subject",
"value":"Hello"
},
{
"name":"Content-Type",
"value":"text/plain; charset=\"UTF-8\""
},
{
"name":"Content-Transfer-Encoding",
"value":"base64"
},
{
"name":"Date",
"value":"Wed, 27 Jan 2016 14:05:45 +0000"
}
],
"commonHeaders":{
"from":[
"John Doe <[email protected]>"
],
"date":"Wed, 27 Jan 2016 14:05:45 +0000",
"to":[
"Jane Doe <[email protected]>, Mary Doe <[email protected]>, Richard Doe
<[email protected]>"
],
"messageId":"custom-message-ID",
"subject":"Hello"
}
}
}
Amazon SNS 苦情通知の例
このセクションには、フィードバックを送信した E メール受信者によって提供されるフィードバックレ
ポートを含む苦情通知と含まない苦情通知の例が記載されています。
フィードバックレポートを含む苦情通知
以下は、フィードバックレポートおよび元の E メールヘッダーを含む苦情通知の例です。苦情通知
が元の E メールヘッダーを含めるように設定されていない場合は、通知内の mail オブジェクトに
headersTruncated、headers および commonHeaders フィールドが含まれません。
{
API Version 2010-12-01
114
Amazon Simple Email Service 開発者ガイド
通知を使用したモニタリング
"notificationType":"Complaint",
"complaint":{
"userAgent":"AnyCompany Feedback Loop (V0.01)",
"complainedRecipients":[
{
"emailAddress":"[email protected]"
}
],
"complaintFeedbackType":"abuse",
"arrivalDate":"2016-01-27T14:59:38.237Z",
"timestamp":"2016-01-27T14:59:38.237Z",
"feedbackId":"000001378603177f-18c07c78-fa81-4a58-9dd1-fedc3cb8f49a-000000"
},
"mail":{
"timestamp":"2016-01-27T14:59:38.237Z",
"messageId":"000001378603177f-7a5433e7-8edb-42ae-af10-f0181f34d6ee-000000",
"source":"[email protected]",
"sourceArn": "arn:aws:ses:us-west-2:888888888888:identity/example.com",
"sendingAccountId":"123456789012",
"destination":[
"[email protected]",
"[email protected]",
"[email protected]"
],
"headersTruncated":false,
"headers":[
{
"name":"From",
"value":"\"John Doe\" <[email protected]>"
},
{
"name":"To",
"value":"\"Jane Doe\" <[email protected]>, \"Mary Doe\" <[email protected]>,
\"Richard Doe\" <[email protected]>"
},
{
"name":"Message-ID",
"value":"custom-message-ID"
},
{
"name":"Subject",
"value":"Hello"
},
{
"name":"Content-Type",
"value":"text/plain; charset=\"UTF-8\""
},
{
"name":"Content-Transfer-Encoding",
"value":"base64"
},
{
"name":"Date",
"value":"Wed, 27 Jan 2016 14:05:45 +0000"
}
],
"commonHeaders":{
"from":[
"John Doe <[email protected]>"
],
"date":"Wed, 27 Jan 2016 14:05:45 +0000",
"to":[
"Jane Doe <[email protected]>, Mary Doe <[email protected]>, Richard Doe
<[email protected]>"
],
"messageId":"custom-message-ID",
API Version 2010-12-01
115
Amazon Simple Email Service 開発者ガイド
通知を使用したモニタリング
"subject":"Hello"
}
}
}
フィードバックレポートを含まない苦情通知
以下は、元の E メールヘッダーを含むがフィードバックレポートを含まない苦情通知の例です。苦情
通知が元の E メールヘッダーを含めるように設定されていない場合は、通知内の mail オブジェクトに
headersTruncated、headers および commonHeaders フィールドが含まれません。
{
"notificationType":"Complaint",
"complaint":{
"complainedRecipients":[
{
"emailAddress":"[email protected]"
}
],
"timestamp":"2016-01-27T14:59:38.237Z",
"feedbackId":"0000013786031775-fea503bc-7497-49e1-881b-a0379bb037d3-000000"
},
"mail":{
"timestamp":"2016-01-27T14:59:38.237Z",
"messageId":"0000013786031775-163e3910-53eb-4c8e-a04a-f29debf88a84-000000",
"source":"[email protected]",
"sourceArn": "arn:aws:ses:us-west-2:888888888888:identity/example.com",
"sendingAccountId":"123456789012",
"destination":[
"[email protected]",
"[email protected]",
"[email protected]"
],
"headersTruncated":false,
"headers":[
{
"name":"From",
"value":"\"John Doe\" <[email protected]>"
},
{
"name":"To",
"value":"\"Jane Doe\" <[email protected]>, \"Mary Doe\" <[email protected]>,
\"Richard Doe\" <[email protected]>"
},
{
"name":"Message-ID",
"value":"custom-message-ID"
},
{
"name":"Subject",
"value":"Hello"
},
{
"name":"Content-Type",
"value":"text/plain; charset=\"UTF-8\""
},
{
"name":"Content-Transfer-Encoding",
"value":"base64"
},
{
"name":"Date",
"value":"Wed, 27 Jan 2016 14:05:45 +0000"
}
API Version 2010-12-01
116
Amazon Simple Email Service 開発者ガイド
通知を使用したモニタリング
],
"commonHeaders":{
"from":[
"John Doe <[email protected]>"
],
"date":"Wed, 27 Jan 2016 14:05:45 +0000",
"to":[
"Jane Doe <[email protected]>, Mary Doe <[email protected]>, Richard Doe
<[email protected]>"
],
"messageId":"custom-message-ID",
"subject":"Hello"
}
}
}
Amazon SNS 配信通知の例
以下は、元の E メールヘッダーを含む配信通知の例です。配信通知が元の E メールヘッダーを含める
ように設定されていない場合は、通知内の mail オブジェクトに headersTruncated、headers および
commonHeaders フィールドが含まれません。
{
"notificationType":"Delivery",
"mail":{
"timestamp":"2016-01-27T14:59:38.237Z",
"messageId":"0000014644fe5ef6-9a483358-9170-4cb4-a269-f5dcdf415321-000000",
"source":"[email protected]",
"sourceArn": "arn:aws:ses:us-west-2:888888888888:identity/example.com",
"sendingAccountId":"123456789012",
"destination":[
"[email protected]"
],
"headersTruncated":false,
"headers":[
{
"name":"From",
"value":"\"John Doe\" <[email protected]>"
},
{
"name":"To",
"value":"\"Jane Doe\" <[email protected]>"
},
{
"name":"Message-ID",
"value":"custom-message-ID"
},
{
"name":"Subject",
"value":"Hello"
},
{
"name":"Content-Type",
"value":"text/plain; charset=\"UTF-8\""
},
{
"name":"Content-Transfer-Encoding",
"value":"base64"
},
{
"name":"Date",
"value":"Wed, 27 Jan 2016 14:58:45 +0000"
}
],
API Version 2010-12-01
117
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
"commonHeaders":{
"from":[
"John Doe <[email protected]>"
],
"date":"Wed, 27 Jan 2016 14:58:45 +0000",
"to":[
"Jane Doe <[email protected]>"
],
"messageId":"custom-message-ID",
"subject":"Hello"
}
},
"delivery":{
"timestamp":"2016-01-27T14:59:38.237Z",
"recipients":["[email protected]"],
"processingTimeMillis":546,
"reportingMTA":"a8-70.smtp-out.amazonses.com",
"smtpResponse":"250 ok: Message 64111812 accepted",
"remoteMtaIp":"127.0.2.0"
}
}
Amazon SES イベント発行を使用したモニタリング
細かいレベルでメールの送信を追跡できるようにするには、定義した細かいメール特性に基づいて
Amazon CloudWatch または Amazon Kinesis Firehose にメール送信イベントを発行するように Amazon
SES をセットアップできます。たとえば、メールを目的 (トランザクションまたはマーケティング)、製品
の詳細、受取人の「From」ドメインなどごとに分類できます。
バウンス数、苦情数、配信数、送信された E メール数、拒否された E メール数の 5 つのタイプのメール送
信イベントを追跡できます。この情報は、運用と分析の目的で役立ちます。たとえば、メール送信イベン
トを CloudWatch に発行し、特定のメールキャンペーンの苦情率が一定のレベルに到達したらアラームを
トリガーできます。レコードを Amazon Redshift または別の AWS のサービスに転送し、情報をビジネス
データとマージできるように、イベントを Firehose に発行することもできます。
イベント発行のしくみ
イベント発行を使用するには、まず 1 つ以上の設定セットをセットアップします。設定セットは、イベン
トの発行先の場所と発行するイベントを指定します。その後、メールを送信するたびに、設定セットの名
前と 1 つ以上のメッセージタグを名前と値のペアの形式で指定し、メールを分類します。たとえば、書籍
を宣伝する場合、関連するキャンペーンのメールを送信するときに、メッセージタグに genre という名前
を付け、値 sci-fi または western を割り当てることができます。使用するメール送信インターフェイスに
応じて、API コールへのパラメーターとして、または Amazon SES 固有のメールヘッダーとして、メッ
セージタグを指定します。
独自のメッセージタグの定義に加えて、Amazon SES によって自動的に指定されるメッセージタグを使用
できます。これらは、自動タグと呼ばれ、設定セット名、「From」アドレスのドメイン、呼び出し元の送
信 IP アドレス、Amazon SES の送信 IP アドレス、呼び出し元の IAM ID が含まれています。
イベント発行を使用する方法
以下のセクションには、Amazon SES イベント発行のセットアップと使用に必要な情報が含まれていま
す。
• イベント発行のセットアップ (p. 119)
• イベント発行の管理 (p. 126)
• イベントデータの取得 (p. 128)
API Version 2010-12-01
118
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
• チュートリアル (p. 143)
イベント発行の用語
次のリストでは、Amazon SES イベント発行に関連する用語を定義します。
メール送信イベント
Amazon SES に送信したメールの結果に関連付けられた情報。次の 5 つのタイプのメール送信イベン
トがあります。
• 送信 - Amazon SES への API コールに成功したため、Amazon SES がメールの配信を試みます。
• 拒否 - Amazon SES は、最初にメールを受け入れましたが、後でウイルスを検出して拒否しまし
た。
• バウンス - 受取人のメールサーバーにより、メールは完全に拒否されました。このイベントはハー
ドバウンスに該当します。ソフトバウンスは、Amazon SES が一定期間にわたって再試行しても
メールを配信できなかった場合に限ります。
• 苦情 - 受取人がメールをスパムとしてマークしました。
• 配信 - Amazon SES が受取人のメールサーバーに E メールを正常に送信しました。
設定セット
メール送信イベントを発行する場所と発行するメール送信イベントをカプセル化する Amazon SES 構
造。イベント発行で使用するメールを送信するとき、メールに関連付ける設定セットを指定します。
イベントの発行先
Amazon SES メール送信イベントの発行先の AWS のサービスを表す Amazon SES 構造。セットアッ
プする各イベントの発行先が所属できる設定セットは 1 つだけです。
メッセージタグ
イベント発行の目的でメールの分類に使用する名前と値のペア。たとえば、campaign/book
や campaign/clothing などです。メールを送信するときは、API コールへのパラメーターとし
て、Amazon SES 固有のメールヘッダーとして、メッセージタグを指定します。
自動タグ
メール送信時に明示的に指定しなくてもよいように、Amazon SES により自動的に指定されるメッ
セージタグ。設定セット名、「From」アドレスのドメイン、呼び出し元の送信 IP アドレス、Amazon
SES の送信 IP アドレス、呼び出し元の IAM ID の自動タグがあります。
Amazon SES のさまざまなトピックに関する技術的な考察については、「Amazon SES ブログ」をご覧
ください。お問い合わせを参照あるいは発信するには「Amazon SES フォーラム」をご覧ください。
Amazon SES イベント発行のセットアップ
このセクションでは、Amazon CloudWatch または Amazon Kinesis Firehose にメール送信イベントを発行
するように Amazon SES を設定するために行う必要がある作業について説明します。
まず、Amazon SES コンソールまたは API を使用して設定セットを作成します。設定セットを作成した
ら、1 つ以上のイベントの発行先 (CloudWatch または Firehose) を設定セットに追加し、イベントの発行
先に一意のパラメーターを設定します。その後、メールを送信するたびに、メッセージタグと呼ばれる設
定セット名とメール特性を、API へのパラメーターとして、または Amazon SES 固有のヘッダーとして
メールに含めます。
これらのステップについて、これ以降のトピックで説明します。
1. ステップ 1: 設定セットを作成する (p. 120)
2. ステップ 2: イベント発行先を追加する (p. 120)
3. ステップ 3: メールを送信する (p. 124)
API Version 2010-12-01
119
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
ステップ 1: Amazon SES を使用して設定セットを作成する
設定セットを使用すると、メール送信イベント (バウンス数、苦情数、配信数、送信されたメール数、拒
否されたメール数) を Amazon CloudWatch または Amazon Kinesis Firehose に発行できます。
Amazon SES コンソールまたは CreateConfigurationSet API を使用して、設定セットを作成できます。
設定セットを作成するには (コンソール)
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
3.
左のナビゲーションペインで [Configuration Sets] を選択します。
コンテンツペインで、[Create Configuration Set] を選択します。
4.
設定セットの名前を入力し、[Create Configuration Set] を選択します。
5.
[Close] を選択します。
CreateConfigurationSet API を使用して設定セットを作成する方法については、「Amazon Simple Email
Service API Reference」を参照してください。
ステップ 2: Amazon SES を使用してイベント発行先を追加する
イベント発行先は、バウンス数、苦情数、配信数、送信されたメール数、拒否されたメール数などのメー
ル送信イベントの発行先の AWS のサービスを表します。セットアップする各イベントの発行先が所属で
きる設定セットは 1 つだけです。Amazon SES を使用してイベント発行先をセットアップするとき、AWS
のサービスの発行先を選択し、その発行先に関連付けられたパラメーターを指定します。
イベント発行先には、Amazon CloudWatch と Amazon Kinesis Firehose の 2 つがあります。選択す
るイベント発行先は、イベントに関する詳細レベルによって決まります。各タイプのイベントの合計
数のみ必要な場合は (たとえば、合計数が高くなりすぎた場合にアラームを設定できるようにするな
ど)、CloudWatch を使用します。分析のために Amazon Elasticsearch Service や Amazon Redshift などの
別のサービスに出力できる詳細なイベントレコードが必要な場合は、Firehose を選択します。
以下のトピックでは、各タイプのイベント発行先をセットアップする方法について説明します。
• CloudWatch 発行先のセットアップ (p. 120)
• Firehose 発行先のセットアップ (p. 122)
Amazon SES イベント発行の CloudWatch イベント発行先のセットアップ
Amazon CloudWatch イベント発行先は、Amazon SES メール送信イベントを CloudWatch に発行するエ
ンティティを表します。CloudWatch イベント発行先は設定セット内にのみ存在するため、まず設定セッ
トを作成 (p. 120)し、次にイベント発行先を設定セットに追加する必要があります。
CloudWatch イベント発行先を設定セットに追加したら、メールの送信時に使用するメッセージタグ
に対応する CloudWatch ディメンションを 1 つ以上選択する必要があります。メッセージタグと同
様、CloudWatch ディメンションは、メトリクスを一意に識別できるようにする名前と値のペアです。た
とえば、メッセージタグと、メールキャンペーンの識別に使用する campaign と呼ばれるディメンション
を選択できます。メール送信イベントを CloudWatch に発行するとき、メッセージタグとディメンション
を選択することが重要です。その選択内容によって、CloudWatch の請求に影響が及び、CloudWatch での
メール送信イベントのフィルタ方法が決まるからです。
このセクションでは、ディメンションの選択に役立つ情報を示し、CloudWatch イベント発行先を設定
セットに追加する方法を示します。
CloudWatch ディメンションの選択
メッセージタグと CloudWatch ディメンションを選択するときは、以下の点に注意してください。
API Version 2010-12-01
120
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
• 自動タグ - Amazon SES には、メールのディメンションの定義に役立つ、自動的に定義された一連の自
動タグがあります。自動タグの CloudWatch ディメンションをセットアップするには、CloudWatch イ
ベント発行先を設定セットに追加するときに自動タグ名をディメンションとして明示的に入力する必要
があります。詳細については、「自動タグの使用 (p. 125)」を参照してください。
• メトリクスあたりの料金 - CloudWatch では、AWS アカウント全体の基本的なメール送信統計に無
料でアクセスできますが、設定セットを使用して収集したメトリクスはカスタムメトリクスであるた
め無料ではありません。メール送信イベントタイプ、CloudWatch ディメンション名、CloudWatch
ディメンション値の一意の組み合わせにより、CloudWatch に異なるカスタムメトリクスが作成さ
れ、CloudWatch ではカスタムメトリクスごとに料金が発生します。このため、多くの異なる値を取得
する可能性があるディメンションの選択を回避できます。たとえば、「From」ドメインごとにメール送
信イベントを追跡することが特に必要な場合を除き、Amazon SES 自動タグ ses:from-domain のディメ
ンションを定義する必要はありません。多くの異なる値が取得されるからです。
• メトリクスフィルタリング - メトリクスに複数のディメンションがある場合、CloudWatch では各ディメ
ンションに基づいて別個にメトリクスにアクセスすることはできません。そのため、1 つの CloudWatch
イベント発行先に複数のディメンションを追加する前によく考えてください。たとえば、campaign あ
たりのメトリクスと、campaign と genre の組み合わせあたりのメトリクスが必要な場合、2 つのイベ
ント発行先を追加する必要があります。ディメンションとして campaign のみ使用するイベント発行先
と、campaign および genre をディメンションとして使用するイベント発行先です。
• ディメンション値ソース - Amazon SES 固有のヘッダーまたは API へのパラメーターを使用してディメ
ンション値を指定する代わりに、Amazon SES が独自の MIME メッセージヘッダーからディメンショ
ン値を取得するように選択することもできます。このオプションは、すでにカスタムヘッダーを使用し
ており、ヘッダー値に基づいてメトリクスを収集するために、メールやメール送信 API コールを変更
したくない場合に使用できます。Amazon SES イベント発行に独自の MIME メッセージを使用する場
合、Amazon SES イベント発行に使用するヘッダー名と値は ASCII にする必要があります。イベント発
行のために ASCII 以外のヘッダー名または値を指定した場合でも、メール送信コールに成功しますが、
イベントメトリクスは Amazon CloudWatch に出力されません。
CloudWatch の概念の詳細については、『Amazon CloudWatch ユーザーガイド』の「Amazon
CloudWatch Concepts」を参照してください。
CloudWatch イベント発行先の追加
CloudWatch イベント発行先を設定セットに追加するには、Amazon SES コンソールまたは
UpdateConfigurationSetEventDestination API を使用できます。
CloudWatch イベント発行先を設定セットに追加するには (コンソール)
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
左のナビゲーションペインで [Configuration Sets] を選択します。
3.
設定セットリストから設定セットを選択します。リストが空の場合、まず設定セットを作
成 (p. 120)する必要があります。
4.
[Add Destination] で、[Select a destination type] を選択して [CloudWatch] を選択します。
5.
[Name] に、イベント発行先の名前を入力します。
6.
[Event types] で、イベント発行先に発行するイベントタイプを少なくとも 1 つ選択します。
• 送信 - Amazon SES への API コールに成功したため、Amazon SES がメールの配信を試みます。
• 拒否 - Amazon SES は、最初にメールを受け入れましたが、後でウイルスを検出して拒否しまし
た。
• バウンス - 受取人のメールサーバーにより、メールは完全に拒否されました。このイベントはハー
ドバウンスに該当します。ソフトバウンスは、Amazon SES が一定期間にわたって再試行しても
メールを配信できなかった場合に限ります。
• 苦情 - 受取人がメールをスパムとしてマークしました。
• 配信 - Amazon SES が受取人のメールサーバーに E メールを正常に送信しました。
API Version 2010-12-01
121
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
7.
[Enabled] を選択します。
8.
[Value Source] で、X-SES-MESSAGE-TAGS ヘッダーまたは API へのパラメーターを使用して指定した
メッセージタグから Amazon SES がディメンションの値を取得するようにする場合は [Message Tag]
を選択し、独自のメールヘッダーから Amazon SES がディメンションの値を取得するようにする場合
は [Email Header] を選択します。
[Dimension Name] に、CloudWatch でこのメールの特性を表す文字列を入力します。
9.
Note
Amazon SES 自動タグを使用する場合は、自動タグの名前を [Dimension Name] として明示
的に入力する必要があります。詳細については、「自動タグの使用 (p. 125)」を参照してく
ださい。
10. [Default Value] に、ディメンションのデフォルト値を入力します。
11. 必要に応じて、[Add Dimension] を選択してディメンションを追加します。
12. [Save] を選択します。
13. [Edit Configuration Set] ページを終了するには、ブラウザの戻るボタンを使用します。
UpdateConfigurationSetEventDestination API を使用して CloudWatch イベント発行先を追加する方法
については、「Amazon Simple Email Service API Reference」を参照してください。
Amazon SES イベント発行の Firehose イベント発行先のセットアップ
Amazon Kinesis Firehose イベント発行先は、特定の Amazon SES メール送信イベントを Firehose に発
行するエンティティを表します。Firehose イベント発行先は設定セット内にのみ存在するため、まず設定
セットを作成 (p. 120)し、次にイベント発行先を設定セットに追加する必要があります。
Amazon SES コンソールまたは UpdateConfigurationSetEventDestination API を使用して、Firehose
イベント発行先を追加できます。
Firehose イベント発行先を設定セットに追加するには (コンソール)
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
3.
4.
左のナビゲーションペインで [Configuration Sets] を選択します。
設定セットリストから設定セットを選択します。リストが空の場合、まず設定セットを作
成 (p. 120)する必要があります。
[Add Destination] で、[Select a destination type] を選択して [Firehose] を選択します。
5.
6.
[Name] に、イベント発行先の名前を入力します。
[Event types] で、イベント発行先に発行するイベントタイプを少なくとも 1 つ選択します。
• 送信 - Amazon SES への API コールに成功したため、Amazon SES がメールの配信を試みます。
7.
8.
• 拒否 - Amazon SES は、最初にメールを受け入れましたが、後でウイルスを検出して拒否しまし
た。
• バウンス - 受取人のメールサーバーにより、メールは完全に拒否されました。このイベントはハー
ドバウンスに該当します。ソフトバウンスは、Amazon SES が一定期間にわたって再試行しても
メールを配信できなかった場合に限ります。
• 苦情 - 受取人がメールをスパムとしてマークしました。
• 配信 - Amazon SES が受取人のメールサーバーに E メールを正常に送信しました。
[Enabled] を選択します。
[Stream] で、既存の Firehose 配信ストリームを選択するか、[Create new stream] を選択
し、Firehose コンソールを使用して新しい配信ストリームを作成します。
Firehose コンソールを使用したストリームの作成については、『Amazon Kinesis Firehose 開発者ガ
イド』の「Creating an Amazon Kinesis Firehose Delivery Stream」を参照してください。
API Version 2010-12-01
122
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
9.
[IAM role] で、Amazon SES がお客様の代わりに Firehose を発行するアクセス権限を持つ IAM ロール
を選択します。既存のロールを選択する、Amazon SES がロールを自動作成するようにする、または
独自のロールを作成することができます。
既存のロールを作成するか、独自のロールを作成する場合、ロールのポリシーを手動で変更
し、Firehose 配信ストリームへのアクセス権限をロールに付与し、ロールを引き受けるアクセス権限
を Amazon SES に付与する必要があります。エンドポイントポリシーの例については、「Firehose
配信ストリームに発行するアクセス権限の Amazon SES への付与 (p. 123)」を参照してください。
10. [Save] を選択します。
11. [Edit Configuration Set] ページを終了するには、ブラウザの戻るボタンを使用します。
UpdateConfigurationSetEventDestination API を使用して Firehose イベント発行先を追加する方法につ
いては、「Amazon Simple Email Service API Reference」を参照してください。
Firehose 配信ストリームに発行するアクセス権限の Amazon SES への付与
Amazon SES がレコードを Firehose 配信システムに発行できるようにするには、AWS Identity and
Access Management (IAM) ロールを使用し、ロールのアクセス権限ポリシーと信頼ポリシーをアタッチま
たは変更する必要があります。アクセス権限ポリシーを使用すると、ロールがレコードを Firehose 配信ス
トリームに発行できるようになり、信頼ポリシーを使用すると Amazon SES がロールを引き受けることが
できるようになります。
このセクションでは、両方のポリシーの例を示します。IAM ロールへのポリシーのアタッチについては、
『IAM ユーザーガイド』の「ロールの修正」を参照してください。
アクセス権限ポリシー
以下のアクセス権限ポリシーにより、ロールがデータレコードを Firehose 配信ストリームに発行できるよ
うになります。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Action": [
"firehose:PutRecordBatch"
],
"Resource": [
"arn:aws:firehose:region:ACCOUNT-ID:deliverystream/DELIVERY-STREAM-NAME "
]
},
]
}
信頼ポリシー
次の信頼ポリシーにより、Amazon SES がロールを引き受けることができるようになります。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "ses.amazonaws.com"
},
API Version 2010-12-01
123
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": "ACCOUNT-ID"
}
}
}
]
}
ステップ 3: Amazon SES イベント発行を使用してメールを送信する
設定セットを作成 (p. 120)し、イベント発行先を追加 (p. 120)したら、イベント発行の最後のステップ
としてメールを送信します。
メールに関連付けられたイベントを発行するには、メールの送信時にメールに関連付ける設定セットと、
メールを分類するメッセージタグの 2 つを Amazon SES に指定する必要があります。
この情報は、メール送信 API へのパラメーター、Amazon SES 固有のメールヘッダー、または MIME メッ
セージのカスタムヘッダーとして Amazon SES に提供します。選択する方法は、次の表に示すように、使
用するメール送信インターフェイスによって決まります。
メール送信インターフェイス
イベント発行方法
SendEmail
API パラメーター
SendRawEmail
API パラメーター、Amazon SES 固有のメール
ヘッダー、またはカスタム MIME ヘッダー
Important
ヘッダーと API パラメーターの両方
を使用してメッセージを指定する場
合、Amazon SES は API パラメーターに
より指定されたメッセージのみ使用しま
す。Amazon SES は、API パラメーター
とヘッダーにより指定されたメッセージ
タグを結合しません。
SMTP インターフェイス
Amazon SES 固有のメールヘッダー
Amazon SES では、メールの送信時にメッセージタグを指定しなくても使用できる自動タグが多数生成さ
れます。詳細については、「自動タグの使用 (p. 125)」を参照してください。
以下のセクションでは、ヘッダーおよび API パラメーターを使用して設定セットとメッセージタグを指定
する方法について説明します。
• Amazon SES API パラメーターの使用 (p. 124)
• Amazon SES 固有のメールヘッダーの使用 (p. 125)
• カスタムメールヘッダーの使用 (p. 125)
Amazon SES API パラメーターの使用
イベント発行で SendEmail または SendRawEmail を使用するには、ConfigurationSet および MessageTag
というデータ構造を API コールに渡すことで設定セットとメッセージタグを指定します。
Amazon SES API の使用の詳細については、「Amazon Simple Email Service API Reference」を参照して
ください。
API Version 2010-12-01
124
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
Amazon SES 固有のメールヘッダーの使用
SendRawEmail または SMTP インターフェイスを使用する場合、Amazon SES 固有のヘッダーをメールに
追加することで設定セットとメッセージタグを指定できます。メールの送信前に、Amazon SES により
ヘッダーが削除されます。次の表に、使用するヘッダー名を示します。
イベント発行情報
ヘッダー
設定セット
X-SES-CONFIGURATION-SET
メッセージタグ
X-SES-MESSAGE-TAGS
次の例に、Amazon SES に送信した raw E メールにヘッダーがどのように表示されるかを示します。
X-SES-MESSAGE-TAGS: tagName1=tagValue1, tagName2=tagValue2
X-SES-CONFIGURATION-SET: myConfigurationSet
From: [email protected]
To: [email protected]
Subject: Subject
Content-Type: multipart/alternative;
boundary="----=_boundary"
------=_boundary
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
body
------=_boundary
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit
body
------=_boundary--
カスタムメールヘッダーの使用
設定セットは Amazon SES 固有のヘッダー X-SES-CONFIGURATION-SET を使用して指定する必要がありま
すが、メッセージタグは独自の MIME ヘッダーを使用して指定できます。
Note
Amazon SES イベント発行に使用するヘッダー名と値は、ASCII にする必要がありま
す。Amazon SES イベント発行のために ASCII 以外のヘッダー名または値を指定した場合でも、
メール送信コールに成功しますが、イベントメトリクスは Amazon CloudWatch に出力されませ
ん。
Amazon SES 自動タグの使用
Amazon SES では、メールを分類しやすくするため、自動タグと呼ばれるメッセージタグが多数自動生
成されます。自動タグを使用するために、メールの送信時にメッセージタグを指定する必要はありません
が、設定セットは指定する必要があります。
Important
Amazon CloudWatch にイベントを発行し、自動タグを使用する場合、CloudWatch イベント発行
先をセットアップ (p. 120)するときに自動タグのディメンション値を明示的に定義する必要があ
ります。
次の表に、Amazon SES により生成される自動タグを示します。
API Version 2010-12-01
125
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
自動タグ名
説明
ses:configuration-set
メールに関連付けられた設定セットの名前
ses:caller-identity
呼び出し元の AWS Identity and Access
Management (IAM) ID
ses:from-domain
「From」アドレスのドメイン
ses:source-ip
呼び出し元がメールの送信に使用した IP アドレス
ses:outgoing-ip
Amazon SES がメールの送信に使用した IP アドレ
ス
Amazon SES イベント発行の管理
設定セットとイベント発行先を作成したら、さまざまなオペレーションを実行できます。
このセクションは、以下のトピックで構成されます。
• 設定セットの管理 (p. 126)
• イベント発行先の管理 (p. 127)
Amazon SES 設定セットの管理
「イベント発行のセットアップ (p. 119)」で説明されている設定セットの作成に加えて、以下のセクショ
ンで説明するように、設定セットのリストの表示、設定セットの詳細の表示、設定セットの削除を行うこ
とができます。
設定セットのリストの表示
Amazon SES コンソールを使用するか、ListConfigurationSets API を使用して、設定セットのリストを
表示できます。
設定セットを表示するには (コンソール)
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
左のナビゲーションペインで [Configuration Sets] を選択します。
詳細ペインには、設定セットのリストが表示されます。
ListConfigurationSets API を使用して設定セットをリストする方法については、「Amazon Simple
Email Service API Reference」を参照してください。
設定セットの詳細の表示
Amazon SES コンソールを使用して設定セットの詳細を表示したり、DescribeConfigurationSet API を
使用して設定セットの詳細を出力したりすることができます。
設定セットの詳細の表示 (コンソール)
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
3.
左のナビゲーションペインで [Configuration Sets] を選択します。
詳細ペインで、設定セットの横の展開アイコンを選択します。
API Version 2010-12-01
126
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
設定セットの詳細が表示されます。
DescribeConfigurationSet API を使用して設定セットの詳細を出力する方法については、「Amazon
Simple Email Service API Reference」を参照してください。
設定セットの削除
Amazon SES コンソールまたは DeleteConfigurationSet API を使用して、設定セットを削除できます。
設定セットを削除するには (コンソール)
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
左のナビゲーションペインで [Configuration Sets] を選択します。
3.
詳細ペインで、設定セットを選択します。
4.
[Actions] メニューから [Delete] を選択し、設定セットの削除を確認します。
DeleteConfigurationSet API を使用して設定セットを削除する方法については、「Amazon Simple Email
Service API Reference」を参照してください。
Amazon SES イベント発行先の管理
「イベント発行のセットアップ (p. 119)」で説明されているイベント発行先の作成に加えて、以下のセク
ションで説明するようにイベント発行先を更新、削除、有効化、無効化できます。
イベント発行先の更新
Amazon SES コンソールまたは UpdateConfigurationSetEventDestination API を使用して、イベント発
行先を更新できます。
イベント発行先を更新するには (コンソール)
1.
2.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
左のナビゲーションペインで [Configuration Sets] を選択します。
3.
4.
設定セットリストで、更新するイベント発行先が含まれている設定セットを選択します。
[Destination] リストで、編集する発行先の右側の編集アイコン (鉛筆) を選択します。
5.
6.
イベント発行先の詳細を編集し、[Save] を選択します。
[Edit Configuration Set] ページを終了するには、ブラウザの戻るボタンを使用します。
UpdateConfigurationSetEventDestination API を使用してイベント発行先を更新する方法については、
「Amazon Simple Email Service API Reference」を参照してください。
イベント発行先の削除
Amazon SES コンソールまたは DeleteConfigurationSetEventDestination API を使用して、イベント発
行先を削除できます。
イベント発行先を削除するには (コンソール)
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
3.
左のナビゲーションペインで [Configuration Sets] を選択します。
設定セットリストで、削除するイベント発行先が含まれている設定セットを選択します。
API Version 2010-12-01
127
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
4.
[Destination] リストで、削除アイコン (円で囲まれた X) を選択します。
5.
6.
設定セットの削除を確認します。
[Edit Configuration Set] ページを終了するには、ブラウザの戻るボタンを使用します。
DeleteConfigurationSetEventDestination API を使用してイベント発行先を削除する方法については、
「Amazon Simple Email Service API Reference」を参照してください。
イベント発行先の有効化または無効化
Amazon SES コンソールまたは UpdateConfigurationSetEventDestination API を使用して、イベント発
行先を有効化または無効化できます。
イベント発行先を有効化または無効化するには (コンソール)
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
左のナビゲーションペインで [Configuration Sets] を選択します。
3.
設定セットリストで、有効化または無効化するイベント発行先が含まれている設定セットを選択しま
す。
4.
[Destination] リストで、編集する発行先の右側の編集アイコン (鉛筆) を選択します。
5.
[Enabled] をオンまたはオフにし、[Save] を選択します。
6.
[Edit Configuration Set] ページを終了するには、ブラウザの戻るボタンを使用します。
UpdateConfigurationSetEventDestination API を使用してイベント発行先を有効化または無効化する方
法については、「Amazon Simple Email Service API Reference」を参照してください。
Amazon SES イベントデータの取得
イベント発行をセットアップ (p. 119)し、メール送信の設定セットを指定すると、メールに関連付けられ
た設定セットのセットアップ時に指定したイベント発行先からメール送信イベントを取得できます。
このセクションでは、現在利用できるイベント発行先 (Amazon CloudWatch および Amazon Kinesis
Firehose) からメール送信イベントを取得する方法について説明します。
• CloudWatch からの Amazon SES イベントデータの取得 (p. 128)
• Firehose からの Amazon SES イベントデータの取得 (p. 130)
CloudWatch からの Amazon SES イベントデータの取得
Amazon SES は、メール送信イベントのメトリクス (バウンス数、苦情数、配信数、送信されたメール
数、拒否されたメール数) を Amazon CloudWatch に発行します。CloudWatch は、時系列データのメール
送信イベントメトリクスを生成します。これらのメトリクスを使用して、メール送信のパフォーマンスを
モニタリングできます。たとえば、苦情メトリクスをモニタリングし、メトリクスが一定の値を超えたと
きに CloudWatch アラームがトリガーされるように設定できます。
Amazon SES がこれらのイベントを CloudWatch に発行できる詳細度には、2 つのレベルがあります。
• AWS アカウント全体 - これらの粗いメトリクス (Amazon SES コンソールおよび GetSendStatistics
API を使用してモニタリングするメトリクスに対応) は、AWS アカウント全体における合計で
す。Amazon SES は、これらのメトリクスを自動的に CloudWatch に発行します。
• 細かい - これらのメトリクスは、メッセージタグを使用して定義するメール特性によって分類されま
す。これらのメトリクスを CloudWatch に発行するには、CloudWatch イベント発行先を使用してイベ
ント発行をセットアップ (p. 119)し、メールの送信時に設定セットを指定 (p. 124)する必要がありま
す。メッセージタグを指定するか、Amazon SES が自動的に生成する自動タグ (p. 125)を使用するこ
ともできます。
API Version 2010-12-01
128
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
このセクションでは、使用可能なメトリクスと、CloudWatch でメトリクスを表示する方法について説明
します。
使用可能なメトリクス
次のメトリックスは Amazon SES から入手できます。
メトリクス
説明
バウンス
受取人のメールサーバーにより、メールは完全に拒否さ
れました。このイベントはハードバウンスに該当しま
す。ソフトバウンスは、Amazon SES が一定期間にわ
たって再試行してもメールを配信できなかった場合に限
ります。
単位: 個
苦情
受取人がメールをスパムとしてマークしました。
単位: 個
配信
Amazon SES は、受取人のメールサーバーにメールを正
常に配信しました。
単位: 個
拒否
Amazon SES は、最初にメールを受け入れましたが、後
でウイルスを検出して拒否しました。
単位: 個
送信
Amazon SES に対するメール送信 API コールが成功しま
した。Amazon SES はメールの配信を試行します。
単位: 個
使用できるディメンション
CloudWatch は、Amazon SES でユーザーが CloudWatch イベント送信先を設定セットに追加する際に
指定したディメンション名を使用します。詳細については、「Amazon SES イベントを発行するための
CloudWatch イベント送信先の設定」参照してください。
CloudWatch コンソールでの Amazon SES メトリクスの表示
次の手順では、CloudWatch コンソールを使用して Amazon SES イベント発行メトリクスを表示する方法
について説明します。
CloudWatch コンソールを使用してメトリクスを表示するには
1.
2.
3.
4.
5.
AWS マネジメントコンソール にサインインした後、 https://console.aws.amazon.com/cloudwatch/に
ある CloudWatch コンソールを開きます。
必要に応じてリージョンを変更します。ナビゲーションバーから、AWS リソースがあるリージョンを
選択します。詳細については、「リージョンとエンドポイント」を参照してください。
ナビゲーションペインで メトリクスを選択します。
[All metrics] ペインで、[AWS Namespaces] を展開し、[SES] を選択します。
Amazon SES によって自動的に発行される AWS アカウント全体のメトリクスを表示するには、
[Account Sending Metrics] を選択します。細かいイベント発行メトリクス (p. 118)を表示するに
は、CloudWatch イベント発行のセットアップ (p. 120)時に指定したディメンションの組み合わせを
選択します。
API Version 2010-12-01
129
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
6.
表示するメトリクスを選択します。
グラフには、時間の経過に伴うメトリクスが示されます。
AWS CLI を使用してメトリクスを表示するには
•
コマンドプロンプトで、次のコマンドを使用します。
aws cloudwatch list-metrics --namespace "AWS/SES"
Firehose からの Amazon SES イベントデータの取得
Amazon SES は、メール送信イベントを JSON レコードとして Firehose に発行します。次に、Firehose
での配信ストリームのセットアップ時に選択した AWS のサービス発行先に Firehose がレコードを発行し
ます。Firehose 配信ストリームのセットアップについては、『Amazon Kinesis Firehose 開発者ガイド』
の「Creating an Amazon Kinesis Firehose Delivery Stream」を参照してください。
Firehose を使用してメール送信イベントを Amazon Redshift と Amazon Elasticsearch Service に発行する
方法の例については、「チュートリアル (p. 143)」を参照してください。
レコードのコンテンツの説明とレコードの例については、以下のセクションを参照してください。
• イベントレコードのコンテンツ (p. 130)
• イベントレコードの例 (p. 137)
Firehose に発行された Amazon SES イベントデータのコンテンツ
Amazon SES は、メール送信イベントレコードを JSON 形式で Amazon Kinesis Firehose に発行します。
イベントを Firehose に発行すると、Amazon SES は改行文字によって各 JSON レコードを追跡します。
トップレベル JSON オブジェクトには、eventType 文字列と mail オブジェクトに加え、bounce オブジェ
クト、complaint オブジェクト、delivery オブジェクト、send オブジェクト、または reject オブジェク
トのいずれかが含まれます。
オブジェクトのタイプごとの詳細については以下のセクションを参照してください。
• トップレベル JSON オブジェクト (p. 130)
• mail オブジェクト (p. 131)
• bounce オブジェクト (p. 132)
• complaint オブジェクト (p. 135)
• delivery オブジェクト (p. 136)
• send オブジェクト (p. 136)
• reject オブジェクト (p. 136)
トップレベル JSON オブジェクト
メール送信イベントレコードのトップレベル JSON オブジェクトには、以下のフィールドが含まれていま
す。
フィールド名
説明
eventType
メール送信イベントのタイプを格納
する文字列は、JSON オブジェクトに
API Version 2010-12-01
130
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
フィールド名
説明
よって表されます。指定できる値は
Bounce、Complaint、Delivery、Send、Reject で
す。
mail
bounce
complaint
delivery
send
reject
イベントに関連する元のメールに関する情報を含
む JSON オブジェクト。詳細については、「Mail
オブジェクト (p. 131)」を参照してください。
このフィールドは eventType が Bounce である
場合のみ存在し、バウンスに関する情報を持つ
JSON オブジェクトが含まれます。詳細について
は、「Bounce オブジェクト (p. 132)」を参照し
てください。
このフィールドは eventType が Complaint である
場合のみ存在し、苦情に関する情報を持つ JSON
オブジェクトが含まれます。詳細については、
「苦情のオブジェクト (p. 135)」を参照してくだ
さい。
このフィールドは eventType が Delivery である
場合のみ存在し、配信に関する情報を持つ JSON
オブジェクトが含まれます。詳細については、
「Delivery オブジェクト (p. 136)」を参照してく
ださい。
このフィールドは、eventType が Send の場合のみ
表示されます。詳細については、「Send オブジェ
クト (p. 136)」を参照してください。
このフィールドは eventType が reject である場
合のみ存在し、拒否に関する情報を持つ JSON
オブジェクトが含まれます。詳細については、
「Reject オブジェクト (p. 136)」を参照してくだ
さい。
Mail オブジェクト
各メール送信イベントレコードには、mail オブジェクトの元のメールに関する情報が含まれていま
す。mail オブジェクトについての情報を含む JSON オブジェクトには次のフィールドが含まれます。
フィールド名
説明
timestamp
元のメッセージが送信された日時(ISO 8601 形
式)。
messageId
Amazon SES がメッセージに割り当てる固有 ID。
メッセージを送信すると、Amazon SES によって
この値が返されます。
Note
このメッセージ ID は Amazon SES に
よって割り当てられます。元の E メール
のメッセージ ID は、mail オブジェクトの
headers および commonHeaders フィール
ドにあります。
API Version 2010-12-01
131
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
フィールド名
説明
source
元のメッセージが送信された E メールアドレス
(エンベロープ MAIL FROM アドレス)。
sourceArn
sendingAccountId
destination
headersTruncated
headers
E メールの送信に使用された Amazon リソース
ネーム(ARN)。送信承認の場合、sourceArn
は、代理送信者が E メールの送信に使用するこ
とを ID 所有者により承認された ID の ARN で
す。送信承認の詳細については、「送信承認の使
用 (p. 171)」を参照してください。
E メールの送信に使用されたアカウントの AWS ア
カウント ID。送信承認の場合、sendingAccountId
は代理送信者のアカウント ID です。
元のメールの受取人の E メールアドレスのリス
ト。
通知でヘッダーが切り捨てられたかどうかを示す
文字列。切り捨ては、ヘッダーが 10 KB を超える
場合に発生します。指定できる値は true および
false です。
E メールの元のヘッダーの一覧。リスト内の各
ヘッダーには、name フィールドと value フィール
ドがあります。
Note
headers フィールドのメッセージ ID
は、Amazon SES に転送した元のメッ
セージからのものです。その後 Amazon
SES によってメッセージに割り当てられ
たメッセージ ID は、mail オブジェクトの
messageId フィールドにあります。
commonHeaders
よく使用される E メールの元のヘッダーの一覧。
リスト内の各ヘッダーには、name フィールドと
value フィールドがあります。
Note
commonHeaders フィールドのメッセージ
ID は、Amazon SES に転送した元のメッ
セージからのものです。その後 Amazon
SES によってメッセージに割り当てられ
たメッセージ ID は、mail オブジェクトの
messageId フィールドにあります。
Bounce オブジェクト
bounce イベントに関する情報を含む JSON オブジェクトには常に以下のフィールドが含まれます。
フィールド名
bounceType
説明
バウンスのタイプ。Amazon SES によって決定
されます。詳細については、「バウンスのタイ
プ (p. 134)」を参照してください。
API Version 2010-12-01
132
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
フィールド名
bounceSubType
bouncedRecipients
timestamp
feedbackId
説明
バウンスのサブタイプ。Amazon SES によって決
定されます。詳細については、「バウンスのタイ
プ (p. 134)」を参照してください。
バウンスとなった元のメールの受取人についての
情報を含むリスト。詳細については、「バウンス
となった受取人 (p. 133)」を参照してください。
バウンスが送信された日時(ISO 8601 形式)。こ
の時刻は、ISP によってバウンス通知が送信され
た時刻であり、Amazon SES が通知を受け取った
時刻ではないことに注意してください。
バウンスの一意の ID。
オプションとして、Delivery Status Notification(DSN)がバウンスにアタッチされている場合、以下の
フィールドも表示されることがあります。
フィールド名
reportingMTA
説明
DSN の Reporting-MTA フィールドの値。これ
は、DSN に記述された配信操作、リレー操作、ま
たはゲートウェイ操作の実行を試みた、Message
Transfer Authority(MTA)の値です。
バウンスとなった受取人
バウンスイベントには、1 人の受取人に関するものと複数の受取人に関するものがありま
す。bouncedRecipients フィールドにはオブジェクトのリストが含まれ (バウンスイベントが関係する受
取人ごとに 1 つのオブジェクト)、常に以下のフィールドが含まれています。
フィールド名
emailAddress
説明
受取人の E メールアドレス。DSN が利用できる場
合、これが DSN の Final-Recipient フィールド
の値です。
オプションで、DSN がバウンスにアタッチされている場合、以下のフィールドも表示される場合がありま
す。
フィールド名
action
status
diagnosticCode
説明
DSN の Action フィールドの値。このフィールド
には、Reporting-MTA により実行された、この受
取人に対してメッセージを送信しようとした結果
のアクションが示されます。
DSN の Status フィールドの値。これは、メッ
セージの配信状態を示す、受取人ごとに個別の、
トランスポート独立型ステータスコードです。
ステータスコードは、Reporting-MTA により発
行されます。これは、DSN の Diagnostic-Code
フィールドの値です。このフィールドは DSN によ
API Version 2010-12-01
133
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
フィールド名
説明
り存在しない場合があります(その場合 JSON オ
ブジェクトにも表示されません)。
バウンスのタイプ
以下のバウンスのタイプがあります。Permanent とマークされたバウンスが返された E メールアドレス
は、今後も送信が正常に完了することはないと考えられるため、メーリングリストから削除することをお
勧めします。Transient バウンスは、再試行の上限に達し、これ以上再試行が行われない場合に送信され
ます。最初に Transient バウンスとして返されたアドレスに再送信すると、正常に完了する場合がありま
す。
Note
Amazon SES は、Amazon SES が今後再試行しないハードバウンスとソフトバウンスのみを報告
します。つまり、E メールメッセージは受取人に届いておらず、Amazon SES によるメールメッ
セージの再送信も行われません。
bounceType
bounceSubType
説明
Undetermined
Undetermined
Amazon SES はバウンスの理由を特定できません
でした。
Permanent
General
Permanent
NoEmail
Permanent
Suppressed
Transient
General
Transient
MailboxFull
Transient
MessageTooLarge
Transient
ContentRejected
Amazon SES は、一般的なハードバウンスを受け
取りました。メーリングリストからこの受取人を
削除することをお勧めします。
Amazon SES は、送信先の E メールアドレスが存
在しないことが原因である永続的なハードバウン
スを受け取りました。この受取人をメーリングリ
ストから削除することをお勧めします。
Amazon SES は、このアドレスへの送信を抑制
しました。このアドレスは無効なアドレスとして
最近バウンスとなった履歴があるからです。サプ
レッションリストからメールアドレスを削除する
方法については、「Amazon SES サプレッション
リストからの E メールアドレスの削除 (p. 210)」
を参照してください。
Amazon SES は、一般的なバウンスを受け取りま
した。今後、この受取人に再送信を行うと、正常
に完了する場合があります。
Amazon SES は、メールボックスが一杯であるこ
とを示すバウンスを受け取りました。今後、この
受取人に再送信を行うと、正常に完了する場合が
あります。
Amazon SES は、メッセージサイズが大きすぎる
ことを示すバウンスを受け取りました。メッセー
ジサイズを減らすことで、この受取人への再送信
が正常に完了する場合があります。
Amazon SES は、コンテンツが却下されたことを
示すバウンスを受け取りました。メッセージのコ
ンテンツを変更することで、この受取人への再送
信が正常に完了する場合があります。
API Version 2010-12-01
134
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
bounceType
bounceSubType
説明
Transient
AttachmentRejected
Amazon SES は、添付ファイルが拒否されたこと
を示すバウンスを受け取りました。添付ファイル
を削除または変更することで、この受取人への再
送信が正常に完了する場合があります。
苦情のオブジェクト
complaint イベントに関する情報を含む JSON オブジェクトには以下のフィールドが含まれます。
フィールド名
complainedRecipients
timestamp
feedbackId
説明
苦情を送信した可能性がある受取人に関する情報
を含むリスト。詳細については、「苦情を申告し
た受取人 (p. 135)」を参照してください。
バウンスが送信された日時(ISO 8601 形式)。こ
の時刻は、ISP によって苦情通知が送信された時
刻であり、Amazon SES が通知を受け取った時刻
ではないことに注意してください。
苦情の一意の ID。
また、フィードバックレポートが苦情にアタッチされている場合、以下のフィールドが示される場合があ
ります。
フィールド名
userAgent
complaintFeedbackType
arrivalDate
説明
フィードバックレポートの User-Agent フィールド
の値。これは、レポートを生成したシステムの名
前とバージョンを示します。
ISP から受け取ったフィードバックレポートの
Feedback-Type フィールドの値。これには、
フィードバックのタイプが含まれます。
ISO 8601 形式のフィードバックレポートの
Arrival-Date フィールドまたは Received-Date
フィールドの値。このフィールドがレポートにな
い場合もあります(その場合、JSON オブジェク
トにも表示されません)。
苦情を申告した受取人
complainedRecipients フィールドには、苦情を申告した可能性のある受取人のリストが含まれます。
Important
ほとんどの ISP は、苦情の通知から苦情を申告した受取人の E メールアドレスを編集するため、
このリストには、苦情を受け取った ISP や元のメッセージの受取人に基づく、苦情を申告した可
能性のある受取人についての情報が含まれます。Amazon SES では、この受取人のリストを確認
するために元のメッセージを参照します。
このリストの JSON オブジェクトには以下のフィールドが含まれます。
API Version 2010-12-01
135
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
フィールド名
説明
emailAddress
受取人の E メールアドレス。
苦情のタイプ
complaintFeedbackType フィールドには以下の苦情のタイプが示されます (Internet Assigned Numbers
Authority ウェブサイト に基づいて、報告する ISP により割り当てられます)。
• abuse - 未承諾 E メールまたはある種の迷惑 E メール。
• auth-failure - E メールの認証失敗を示します。
• fraud - ある種の詐欺やフィッシング行為。
• not-spam - 報告者がこのメッセージはスパムではないと判断しました。このタイプは、誤ってスパムと
してタグ付けまたは分類されたメッセージを修正するために使用される場合があります。
• other - その他の登録されたタイプに該当しないフィードバックです。
• virus - 元のメッセージにウイルスが見つかったことを示します。
Delivery オブジェクト
delivery イベントに関する情報を含む JSON オブジェクトには常に以下のフィールドが含まれます。
フィールド名
説明
timestamp
Amazon SES が E メールを受取人のメールサー
バーに配信した時間(ISO 8601 形式)。
processingTimeMillis
recipients
smtpResponse
reportingMTA
Amazon SES が送信者からのリクエストを受理し
たときから Amazon SES が受取人のメールサー
バーにそのメッセージを渡すまでのミリ秒単位の
時間。
配信イベントを適用する E メールの対象となる受
取人のリスト。
Amazon SES から E メールを受け取ったリモート
ISP による SMTP 応答メッセージ。このメッセー
ジは、E メール、受信メールサーバー、または受
信する ISP によって異なります。
メールを送信する Amazon SES メールサーバーの
ホスト名。
Send オブジェクト
send イベントに関する情報を含む JSON オブジェクトは常に空です。
Reject オブジェクト
reject イベントに関する情報を含む JSON オブジェクトには常に以下のフィールドが含まれます。
フィールド名
説明
reason
メールが拒否された理由。このフィールドの唯一
の値は Bad content です。メールにウイルスが含
API Version 2010-12-01
136
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
フィールド名
説明
まれていたことが Amazon SES により検出された
ことを意味します。
Firehose に発行された Amazon SES イベントデータの例
このセクションでは、Amazon SES が Firehose に発行するメール送信イベントレコードの各タイプの例
について説明します。
イベントタイプは次のとおりです。
• バウンスレコード (p. 137)
• 苦情レコード (p. 138)
• 配信レコード (p. 140)
• メール送信レコード (p. 141)
• イベント拒否レコード (p. 142)
バウンスレコード
Amazon SES が Firehose に発行する bounce イベントレコードの例を以下に示します。
{
"eventType": "Bounce",
"bounce": {
"bounceType": "Permanent",
"bounceSubType": "General",
"bouncedRecipients": [
{
"emailAddress": "[email protected]",
"action": "failed",
"status": "5.1.1",
"diagnosticCode": "smtp; 550 5.1.1 user unknown"
}
],
"timestamp": "2016-10-14T05:02:52.574Z",
"feedbackId": "EXAMPLE7c1923f27-ab0c24cb-5d9f-4e77-99b8-85e4cb3a33bb-000000",
"reportingMTA": "dsn; ses-example.com"
},
"mail": {
"timestamp": "2016-10-14T05:02:16.645Z",
"source": "[email protected]",
"sourceArn": "arn:aws:ses:us-east-1:123456789012:identity/[email protected]",
"sendingAccountId": "123456789012",
"messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000",
"destination": [
"[email protected]"
],
"headersTruncated": false,
"headers": [
{
"name": "From",
"value": "[email protected]"
},
{
"name": "To",
"value": "[email protected]"
},
{
"name": "Subject",
API Version 2010-12-01
137
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
"value": "Email Subject"
},
{
"name": "MIME-Version",
"value": "1.0"
},
{
"name": "Content-Type",
"value": "multipart/mixed; boundary=\"----=_Part_0_716996660.1476421336341\""
},
{
"name": "X-SES-MESSAGE-TAGS",
"value": "myCustomTag1=myCustomTagValue1, myCustomTag2=myCustomTagValue2"
}
],
"commonHeaders": {
"from": [
"[email protected]"
],
"to": [
"[email protected]"
],
"messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000",
"subject": "Email Subject"
},
"tags": {
"ses:configuration-set": [
"my-configuration-set"
],
"ses:source-ip": [
"192.0.2.0"
],
"ses:from-domain": [
"example.com"
],
"ses:caller-identity": [
"ses_user"
],
"myCustomTag1": [
"myCustomTagValue1"
],
"myCustomTag2": [
"myCustomTagValue2"
]
}
}
}
苦情レコード
Amazon SES が Firehose に発行する complaint イベントレコードの例を以下に示します。
{
"eventType": "Complaint",
"complaint": {
"complainedRecipients": [
{
"emailAddress": "[email protected]"
}
],
"timestamp": "2016-10-14T17:48:17.365Z",
"feedbackId": "01000157c44f053b-61b59c11-9236-11e6-8f96-7be8a4ae61bb-000000",
"userAgent": "Amazon SES Mailbox Simulator",
"complaintFeedbackType": "abuse",
"arrivalDate": "2016-10-14T17:48:17.584Z"
API Version 2010-12-01
138
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
},
"mail": {
"timestamp": "2016-10-14T17:48:02.777Z",
"source": "[email protected]",
"sourceArn": "arn:aws:ses:us-east-1:123456789012:identity/[email protected]",
"sendingAccountId": "123456789012",
"messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000",
"destination": [
"[email protected]"
],
"headersTruncated": false,
"headers": [
{
"name": "From",
"value": "[email protected]"
},
{
"name": "To",
"value": "[email protected]"
},
{
"name": "Subject",
"value": "Email Subject"
},
{
"name": "MIME-Version",
"value": "1.0"
},
{
"name": "Content-Type",
"value": "multipart/mixed; boundary=\"----=_Part_0_558624761.1476467282538\""
},
{
"name": "X-SES-MESSAGE-TAGS",
"value": "myCustomTag1=myCustomTagValue1, myCustomTag2=myCustomTagValue2"
}
],
"commonHeaders": {
"from": [
"[email protected]"
],
"to": [
"[email protected]"
],
"messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000",
"subject": "Email Subject"
},
"tags": {
"ses:configuration-set": [
"my-configuration-set"
],
"ses:source-ip": [
"192.0.2.0"
],
"ses:from-domain": [
"example.com"
],
"ses:caller-identity": [
"ses_user"
],
"myCustomTag1": [
"myCustomTagValue1"
],
"myCustomTag2": [
"myCustomTagValue2"
]
API Version 2010-12-01
139
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
}
}
}
配信レコード
Amazon SES が Firehose に発行する delivery イベントレコードの例を以下に示します。
{
"eventType": "Delivery",
"mail": {
"timestamp": "2016-10-19T23:20:52.240Z",
"source": "[email protected]",
"sourceArn": "arn:aws:ses:us-east-1:123456789012:identity/[email protected]",
"sendingAccountId": "123456789012",
"messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000",
"destination": [
"[email protected]"
],
"headersTruncated": false,
"headers": [
{
"name": "From",
"value": "[email protected]"
},
{
"name": "To",
"value": "[email protected]"
},
{
"name": "Subject",
"value": "Email Subject"
},
{
"name": "MIME-Version",
"value": "1.0"
},
{
"name": "Content-Type",
"value": "text/html; charset=UTF-8"
},
{
"name": "Content-Transfer-Encoding",
"value": "7bit"
}
],
"commonHeaders": {
"from": [
"[email protected]"
],
"to": [
"[email protected]"
],
"messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000",
"subject": "Email Subject"
},
"tags": {
"ses:configuration-set": [
"my-configuration-set"
],
"ses:source-ip": [
"192.0.2.0"
],
"ses:from-domain": [
API Version 2010-12-01
140
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
"example.com"
],
"ses:caller-identity": [
"ses_user"
],
"ses:outgoing-ip": [
"192.0.2.0"
],
"myCustomTag1": [
"myCustomTagValue1"
],
"myCustomTag2": [
"myCustomTagValue2"
]
}
},
"delivery": {
"timestamp": "2016-10-19T23:21:04.133Z",
"processingTimeMillis": 11893,
"recipients": [
"[email protected]"
],
"smtpResponse": "250 2.6.0 Message received",
"reportingMTA": "mta.example.com"
}
}
メール送信レコード
Amazon SES が Firehose に発行する send イベントレコードの例を以下に示します。
{
"eventType": "Send",
"mail": {
"timestamp": "2016-10-14T05:02:16.645Z",
"source": "[email protected]",
"sourceArn": "arn:aws:ses:us-east-1:123456789012:identity/[email protected]",
"sendingAccountId": "123456789012",
"messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000",
"destination": [
"[email protected]"
],
"headersTruncated": false,
"headers": [
{
"name": "From",
"value": "[email protected]"
},
{
"name": "To",
"value": "[email protected]"
},
{
"name": "Subject",
"value": "Email Subject"
},
{
"name": "MIME-Version",
"value": "1.0"
},
{
"name": "Content-Type",
"value": "multipart/mixed; boundary=\"----=_Part_0_716996660.1476421336341\""
},
API Version 2010-12-01
141
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
{
"name": "X-SES-MESSAGE-TAGS",
"value": "myCustomTag1=myCustomTagValue1, myCustomTag2=myCustomTagValue2"
}
],
"commonHeaders": {
"from": [
"[email protected]"
],
"to": [
"[email protected]"
],
"messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000",
"subject": "Email Subject"
},
"tags": {
"ses:configuration-set": [
"my-configuration-set"
],
"ses:source-ip": [
"192.0.2.0"
],
"ses:from-domain": [
"example.com"
],
"ses:caller-identity": [
"ses_user"
],
"myCustomTag1": [
"myCustomTagValue1"
],
"myCustomTag2": [
"myCustomTagValue2"
]
}
},
"send": {}
}
イベント拒否レコード
Amazon SES が Firehose に発行する reject イベントレコードの例を以下に示します。
{
"eventType": "Reject",
"mail": {
"timestamp": "2016-10-14T17:38:15.211Z",
"source": "[email protected]",
"sourceArn": "arn:aws:ses:us-east-1:123456789012:identity/[email protected]",
"sendingAccountId": "123456789012",
"messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000",
"destination": [
"[email protected]"
],
"headersTruncated": false,
"headers": [
{
"name": "From",
"value": "[email protected]"
},
{
"name": "To",
"value": "[email protected]"
},
API Version 2010-12-01
142
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
{
"name": "Subject",
"value": "Email Subject"
},
{
"name": "MIME-Version",
"value": "1.0"
},
{
"name": "Content-Type",
"value": "multipart/mixed; boundary=\"qMm9M+Fa2AknHoGS\""
},
{
"name": "X-SES-MESSAGE-TAGS",
"value": "myCustomTag1=myCustomTagValue1, myCustomTag2=myCustomTagValue2"
}
],
"commonHeaders": {
"from": [
"[email protected]"
],
"to": [
"[email protected]"
],
"messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000",
"subject": "Email Subject"
},
"tags": {
"ses:configuration-set": [
"my-configuration-set"
],
"ses:source-ip": [
"192.0.2.0"
],
"ses:from-domain": [
"example.com"
],
"ses:caller-identity": [
"ses_user"
],
"myCustomTag1": [
"myCustomTagValue1"
],
"myCustomTag2": [
"myCustomTagValue2"
]
}
},
"reject": {
"reason": "Bad content"
}
}
Amazon SES イベント発行チュートリアル
このセクションでは、データの分析と可視化を可能にする AWS のサービスによって Amazon SES イベン
ト発行を使用する方法をデモンストレーションするチュートリアルを示します。
これらのチュートリアルは、以下のセクションに含まれています。
• Amazon Redshift を使用したメール送信イベントの分析 (p. 144)
• Amazon Elasticsearch Service と Kibana を使用したメール送信イベントの視覚化 (p. 152)
• CloudWatch でのメール送信イベントのグラフ化 (p. 158)
API Version 2010-12-01
143
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
• Amazon Kinesis Analytics を使用したメール送信イベントの分析 (p. 160)
Amazon Redshift を使用したメール送信イベントの分析
このチュートリアルでは、データを Amazon Redshift に発行する Amazon Kinesis Firehose 配信ストリー
ムに Amazon SES メール送信イベントを発行します。その後、Amazon Redshift データベースに接続
し、SQL クエリツールを使用して、一定の条件を満たす Amazon SES メール送信イベントのデータベー
スにクエリを実行します。
以下のセクションでは、次のプロセスを説明します。
• 前提条件 (p. 144)
• ステップ 1: Amazon Redshift クラスターを作成する (p. 145)
• ステップ 2: Amazon Redshift クラスターに接続する (p. 145)
• ステップ 3: データベーステーブルを作成する (p. 146)
• ステップ 4: Firehose 配信ストリームを作成する (p. 147)
• ステップ 5: 設定セットをセットアップする (p. 149)
• ステップ 6: メールを送信する (p. 150)
• ステップ 7: メール送信イベントのクエリを実行する (p. 151)
前提条件
このチュートリアルでは、以下が必要になります。
• AWS アカウント - AWS が提供するウェブサービスにアクセスするには、まず https://aws.amazon.com/
で AWS アカウントを作成する必要があります。
• 確認済みメールアドレス - Amazon SES を使用してメールを送信する際には、「From」アドレスまたは
ドメインを見て、メールの所有者が自分であると示されていることを確認する必要があります。サンド
ボックスの場合、「To」アドレスも確認する必要があります。メールアドレスまたはドメイン全体を確
認できますが、このチュートリアルでは、Amazon SES コンソール (最も簡単にメールを送信できる方
法) からメールを送信できるように確認済みメールアドレスが必要です。メールアドレスの確認につい
ては、「Amazon SES での E メールアドレスの検証 (p. 37)」を参照してください。
• SQL クエリツール - Amazon Redshift には、SQL クライアントツールまたはライブラリが用意されてい
ないか、インストールされないため、Amazon SES イベントを含む Amazon Redshift クラスターへのア
クセスに使用できるツールまたはライブラリをインストールする必要があります。このチュートリアル
では、DBMS に依存しない無料のクロスプラットフォーム SQL クエリツールである SQL Workbench/J
を使用します。以下のステップは、インストールファイルの場所を示しています。
次の手順は、SQL Workbench/J をインストールする方法を示しています。
クライアントコンピューターに SQL Workbench/J をインストールするには
1.
2.
3.
SQL Workbench/J のソフトウェアライセンスを確認します。
SQL Workbench/J ウェブサイト に移動し、使用するオペレーティングシステムに適したパッケージ
をダウンロードします。
「Installing and starting SQL Workbench/J」にアクセスして、SQL Workbench/J をインストールしま
す。
Important
4.
SQL Workbench/J に必要な Java ランタイムのバージョンを確認して、必ずそのバージョン
を使用してください。違うバージョンでは SQL Workbench/J が動作しません。
「JDBC 接続を設定する」を参照して、Amazon Redshift JDBC ドライバーをダウンロードし、SQL
Workbench/J をクラスターに接続できるようにします。
API Version 2010-12-01
144
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
次のステップ
ステップ 1: Amazon Redshift クラスターを作成する (p. 145)
ステップ 1: Amazon Redshift クラスターを作成する
Amazon Redshift クラスターを作成するには、Amazon Redshift コンソールに移動し、[Launch Cluster] を
選択します。ウィザードでは、クラスターのオプションを選択します。ほとんどのオプションにはデフォ
ルト値があります。
このシンプルなチュートリアルでは、クラスター名とパスワードを入力した後、すべてのデフォルト値を
使用できます。Amazon SES イベント発行に固有の値を設定する必要はありません。
Important
このチュートリアル用にデプロイしたクラスターは、実働環境で実行されます。実行中は AWS
アカウントに課金されます。不要な課金を回避するため、クラスターは実行後に削除してくださ
い。料金表については、Amazon Redshift の料金表ページを参照してください。
次のステップ
ステップ 2: Amazon Redshift クラスターに接続する (p. 145)
ステップ 2: Amazon Redshift クラスターに接続する
ここでは、SQL クライアントツールを使用してクラスターに接続します。本チュートリアルでは、前提条
件のセクション (p. 144)でインストールした SQL Workbench/J クライアントを使用します。
次の手順に従って、このセクションを実行します。
• 接続文字列の取得 (p. 145)
• SQL Workbench/J からクラスターへの接続 (p. 145)
接続文字列の取得
次の手順では、SQL Workbench/J から Amazon Redshift クラスターに接続するときに必要な接続文字列を
取得する方法を示します。
接続文字列を取得するには
1.
Amazon Redshift コンソールのナビゲーションペインで、[Clusters] を選択します。
2.
クラスターを開くには、クラスター名を選択します。
3.
[Configuration] タブで、[Cluster Database Properties] の下にある、クラスターの JDBC URL をコピー
します。
Note
クラスターのエンドポイントは、クラスターが作成されて使用可能な状態になるまで使用で
きません。
SQL Workbench/J からクラスターへの接続
次の手順では、SQL Workbench/J からクラスターに接続する方法を示します。この手順は、「前提条
件 (p. 144)」の説明に従ってコンピューターに SQL Workbench/J をインストールしていることを前提と
しています。
API Version 2010-12-01
145
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
SQL Workbench/J からクラスターに接続するには
1.
SQL Workbench/J を開きます。
2.
[File] を選択し、[Connect window] を選択します。
3.
[Create a new connection profile] ボタンを選択します。
4.
[New profile] テキストボックスに、プロファイルの名前を入力します。
5.
ウィンドウの下部の左側で、[Manage Drivers] を選択します。
6.
[Manage Drivers] ダイアログボックスで、[Create a new entry] ボタンを選択し、次のようにドライ
バーを追加します。
a.
[Name] ボックスにドライバーの名前を入力します。
b.
[Library] の横で、フォルダアイコンを選択します。
c.
「JDBC 接続を設定する」でダウンロードしたドライバーの場所に移動し、ドライバーを選択し
て [Open] を選択します。
d.
[OK] を選択します。
[Select Connection Profile] ダイアログボックスに自動的に戻ります。
7.
[Driver] で、追加したドライバーを選択します。
8.
[URL] に、Amazon Redshift コンソールからコピーした JDBC URL を貼り付けます。
9.
[Username] に、Amazon Redshift クラスター (p. 145)のセットアップ時に選択したユーザー名を入
力します。
10. [Password] に、Amazon Redshift クラスターのセットアップ時に選択したパスワードを入力します。
11. [Autocommit] を選択します。
12. 接続をテストするには、[Test] を選択します。
Note
接続試行がタイムアウトした場合、状況によっては IP アドレスをセキュリティグループに追
加して、それらの IP アドレスからの受信トラフィックが許可されるようにする必要がありま
す。詳細については、『Amazon Redshift Database Developer Guide』の「接続が拒否また
は失敗する」を参照してください。
13. 上部メニューバーで、[Save profile list] ボタンを選択します。
14. [OK] を選択します。
SQL Workbench/J が Amazon Redshift クラスターに接続されます。
次のステップ
ステップ 3: データベーステーブルを作成する (p. 146)
ステップ 3: データベーステーブルを作成する
Amazon Redshift で初期データベースに接続したら、通常はその初期データベースを新しいデータベース
を作成するベースとして使用します。ただし、このシンプルなチュートリアルでは、初期データベース内
に直接 Amazon SES イベント発行直接データを保持するテーブルを作成します。
このチュートリアルでは、メール送信イベントレコード (p. 130)内の以下のフィールドに関心があると仮
定します。mail.tags.campaign を除くそれらのすべてのフィールドは、Amazon SES により自動的に用
意されます。mail.tags.campaign フィールドについては、「ステップ 6: メールを送信する (p. 150)」で
campaign をメッセージタグとして使用してメールを送信するときに紹介します。
• mail.messageId
API Version 2010-12-01
146
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
• eventType
• mail.sendingAccountId
• mail.timestamp
• mail.destination
• mail.tags.ses:configuration-set
• mail.tags.campaign
データベースのこの情報にアクセスするには、テーブルを作成する必要があります。次の手順では、デー
タベースにテーブルを作成するときにこの情報を指定する方法を説明します。
Note
前のステップ (p. 145)で説明したとおり、SQL Workbench/J が現在コンピューターで開かれて
おり、Amazon Redshift クラスターに接続されていることを前提としています。
SQL Workbench/J を使用してテーブルを作成するには
1.
SQL Workbench/J で、次のコードをコピーし、[Statement 1] ウィンドウに貼り付けます。
create table ses (
message_id varchar(200) not null,
event_type varchar(20) not null,
sending_account_id char(12),
timestamp varchar(50),
destination text,
configuration_set text,
campaign text
);
2.
次の図に示すように、ステートメント内にカーソルを置き (セミコロンの前の任意の場所)、[Execute
current statement] ボタンを選択します。
3.
[Messages] ペインで、テーブルが正常に作成されたことを確認します。
次のステップ
ステップ 4: Firehose 配信ストリームを作成する (p. 147)
ステップ 4: Firehose 配信ストリームを作成する
メール送信イベントを Amazon Kinesis Firehose に発行するには、Firehose 配信ストリームを作成する必
要があります。Firehose 配信ストリームをセットアップしたら、Firehose がデータを発行する場所を選択
します。このチュートリアルでは、データを Amazon Redshift に発行するように Firehose をセットアッ
プし、Firehose が中間ステップとしてレコードを Amazon S3 に発行することを選択します。このプロセ
スでは、Amazon Redshift が Amazon S3 から前のステップ (p. 146)で作成したテーブルにレコードをコ
ピーする方法を指定する必要があります。
このセクションでは、データを Amazon Redshift に送信する Firehose 配信ストリームを作成する方法と、
配信ストリームを編集して Amazon Redshift が Amazon SES イベント発行データを Amazon S3 にコピー
する方法を指定する方法を示します。
Note
前のステップで説明したとおり、すでに Amazon Redshift クラスターをセットアッ
プ (p. 145)してクラスターに接続 (p. 145)し、データベーステーブルを作成 (p. 146)している
必要があります。
API Version 2010-12-01
147
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
Firehose 配信ストリームの作成
次の手順では、Amazon S3 を中間データの場所として使用し、データを Amazon Redshift に発行する
Firehose 配信ストリームを作成する方法を示しています。
Firehose から Amazon Redshift への配信ストリームを作成するには
1.
AWS マネジメントコンソールにサインインして、Firehose コンソール (https://
console.aws.amazon.com/firehose/) を開きます。
2.
[Create Delivery Stream] を選択します。
3.
[Destination] ページで、次のオプションを選択します。
• Destination - Amazon Redshift を選択します。
• Delivery stream name - 配信ストリームの名前を入力します。
• S3 bucket - [New S3 bucket] を選択してバケット名を入力し、リージョンを選択して [Create
Bucket] を選択します。
• Redshift cluster - 前のステップで作成した Amazon Redshift クラスターを選択します。
• Redshift database - デフォルトのデータベース名である dev を入力します。
• Redshift table -「ステップ 3: データベーステーブルを作成する (p. 146)」で作成したテーブルで
ある「ses」を入力します。
• Redshift table columns - このフィールドは空のままにします。
• Redshift username - Amazon Redshift クラスターのセットアップ (p. 145)時に選択したユーザー
名を入力します。
• Redshift password - Amazon Redshift クラスターのセットアップ時に選択したパスワードを入力し
ます。
• Redshift COPY options - このフィールドは空のままにします。
• Retry duration - これはデフォルト値のままにします。
• COPY command - これはデフォルト値のままにします。次の手順で更新します。
4.
[Next] を選択します。
5.
[Configuration] ページで、フィールドをこのサンプルチュートリアルのデフォルト設定のままにしま
す。必要なステップは、次の手順で説明するように、Firehose がリソースにアクセスできるようにす
る IAM ロールを選択することだけです。
a.
[IAM Role] で、[Select an IAM role] を選択します。
b.
ドロップダウンメニューの [Create/Update existing IAM role] で、[Firehose delivery IAM role] を
選択します。
IAM コンソールに自動的に移動します。
c.
IAM コンソールで、フィールドをデフォルト値のままにして、[Allow] を選択します。
Firehose コンソールで Firehose 配信ストリームのセットアップステップに戻ります。
6.
[Next] を選択します。
7.
[Review] ページで設定を確認した後、[Create Delivery Stream] を選択します。
Amazon Redshift コピーオプションの設定
次に、Amazon Redshift が Amazon SES イベント発行 JSON レコードを、「ステップ 3: データベース
テーブルを作成する (p. 146)」で作成したデータベーステーブルにコピーする方法を指定する必要があり
ます。これは、Firehose 配信ストリームでコピーオプションを編集することにより行います。
この手順では、JSONPaths ファイルを作成する必要があります。JSONPaths ファイルは、Amazon
Redshift COPY コマンドが JSON ソースデータを解析する方法を指定するテキストファイルです。この
API Version 2010-12-01
148
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
手順では、JSONPaths ファイルが提供されます。JSONPaths ファイルの詳細については、『Amazon
Redshift Database Developer Guide』の「JSON 形式からの COPY」を参照してください。
Firehose 配信ストリームの作成時にセットアップした Amazon S3 バケットに JSONPaths ファイルを
アップロードし、次にアップロードした JSONPaths ファイルが使用されるように Firehose 配信ストリー
ムの COPY オプションを編集します。これらのステップについて、次の手順で説明します。
Amazon Redshift COPY コマンドオプションを設定するには
1.
JSONPaths ファイルを作成する - コンピューターで、jsonpaths.json というファイルを作成します。
次のテキストをファイルにコピーし、ファイルを保存します。
{
"jsonpaths": [
"$.mail.messageId",
"$.eventType",
"$.mail.sendingAccountId",
"$.mail.timestamp",
"$.mail.destination",
"$.mail.tags.ses:configuration-set",
"$.mail.tags.campaign"
]
}
2.
JSONPaths ファイルを Amazon S3 バケットにアップロードする - Amazon S3 コンソールに移動し、
「Firehose 配信ストリームの作成 (p. 148)」で Firehose 配信ストリームのセットアップ時に作成し
たバケットにファイルをアップロードします。
3.
Firehose 配信ストリーム設定で COPY コマンドを設定する - ここまでで、作成したテーブルにデータ
を置くときに Amazon Redshift が使用する COPY コマンドの構文の設定に必要な情報を入手しまし
た。次の手順では、Firehose 配信ストリームで COPY コマンド情報を更新する方法を示します。
1. Firehose コンソールに移動します。
2. [Redshift Delivery Streams] で、Amazon SES イベント発行用に作成した Firehose 配信ストリーム
を選択します。
3. [Details] ページで、[Edit] を選択します。
4. [Redshift COPY options] ボックスに、次のテキストを入力します。以下の値は独自の値に置き換え
てください。
• S3-BUCKET-NAME - Amazon Redshift がアクセスできるように Firehose がデータを置く
Amazon S3 バケットの名前。このバケットは、「ステップ 4: Firehose 配信ストリームを作成す
る (p. 147)」で Firehose 配信ストリームをセットアップするときに作成しました。例: 「mybucket」。
• REGION - Amazon SES、Firehose、Amazon S3、および Amazon Redshift リソースが配置され
ているリージョン。例: 「us-west-2」。
json 's3://S3-BUCKET-NAME/jsonpaths.json' region 'REGION';
5. [Save] を選択します。
次のステップ
ステップ 5: 設定セットをセットアップする (p. 149)
ステップ 5: 設定セットをセットアップする
メール送信イベントを Amazon Kinesis Firehose に発行するように Amazon SES をセットアップするに
は、まず設定セットを作成し、次に Firehose イベント発行先を設定セットに追加します。このセクション
では、これらのタスクを実行する方法を示します。
API Version 2010-12-01
149
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
すでに設定セットがある場合、Firehose 発行先を既存の設定セットに追加できます。この場合、
「Firehose イベント発行先の追加 (p. 150)」に移動します。
設定セットの作成
次の手順では、設定セットを作成する方法を示します。
設定セットを作成するには
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
左のナビゲーションペインで [Configuration Sets] を選択します。
3.
コンテンツペインで、[Create Configuration Set] を選択します。
4.
設定セットの名前を入力し、[Create Configuration Set] を選択します。
5.
[Close] を選択します。
Firehose イベント発行先の追加
次の手順では、作成した設定セットに Firehose イベント発行先を追加する方法を示します。
Firehose イベント発行先を設定セットに追加するには
1.
設定セットリストから設定セットを選択します。
2.
[Add Destination] で、[Select a destination type] を選択して [Firehose] を選択します。
3.
[Name] に、イベント発行先の名前を入力します。
4.
すべての [Event types] を選択します。
5.
[Enabled] を選択します。
6.
[Stream] で、「ステップ 4: Firehose 配信ストリームを作成する (p. 147)」で作成した配信ストリー
ムを選択します。
7.
[IAM role] で、[Let SES make a new role] を選択してロールの名前を入力します。
8.
[Save] を選択します。
9.
[Edit Configuration Set] ページを終了するには、ブラウザの戻るボタンを使用します。
次のステップ
ステップ 6: メールを送信する (p. 150)
ステップ 6: メールを送信する
Amazon SES がメールに関連付けられたイベントを発行するには、メールの送信時に設定セットを指定
する必要があります。メールを分類するためのメッセージタグも含める必要があります。このセクション
は、Amazon SES コンソールを使用して設定セットとメッセージタグを指定するシンプルなメールを送
信する方法を示しています。バウンス数、苦情数、他のメール送信結果をテストできるように、メールは
Amazon SES メールボックスシミュレーターに送信します。
Amazon SES コンソールを使用してメールを送信するには
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
Amazon SES コンソールの [Navigation] ペインにある [Identity Management] で、[Email Addresses]
を選択します。
API Version 2010-12-01
150
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
3.
ID のリストで、Amazon SES での確認 (p. 37)に成功したメールアドレスのチェックボックスをオン
にします。
4.
[Send a Test Email] を選択します。
5.
[Send Test Email] ダイアログボックスの [Email Format] で、[Raw] を選択します。
6.
「To」アドレスには、Amazon SES メールボックスシミュレーター (p. 197)からのアドレスを入力
します ([email protected][email protected] など)。
7.
次のメッセージ全体をコピーし、[Message] テキストボックスに貼り付けます。CONFIGURATION-SETNAME は、「ステップ 5: 設定セットをセットアップする (p. 149)」で作成した設定セットの名前で置
き換え、FROM-ADDRESS はこのメールの送信元の確認済みアドレスで置き換えます。
X-SES-MESSAGE-TAGS: campaign=book
X-SES-CONFIGURATION-SET: CONFIGURATION-SET-NAME
Subject: Amazon SES Event Publishing Test
From: Amazon SES User <FROM-ADDRESS>
MIME-Version: 1.0
Content-Type: text/plain
This is a test message.
8.
[Send Test Email] を選択します。
9.
この手順を数回繰り返し、複数のメール送信イベントを生成します。いくつかのメールについて
は、campaign メッセージタグの値を clothing に変更し、異なるメールキャンペーンの送信をシミュ
レートします。このようにして、このチュートリアルの最後のステップで Amazon Redshift データ
ベースに対してメール送信イベントレコードのクエリを実行するとき、メールキャンペーンに基づく
クエリをテストできます。
次のステップ
ステップ 7: メール送信イベントのクエリを実行する (p. 151)
ステップ 7: メール送信イベントのクエリを実行する
ここまでで、設定セットとメッセージタグを使用してメールを送信することにより、いくつかのメール送
信イベントを生成したので、それらのレコードのクエリを Amazon Redshift で実行できます。
Note
「ステップ 2: Amazon Redshift クラスターに接続する (p. 145)」で説明したとおり、SQL
Workbench/J が現在コンピューターで開かれており、Amazon Redshift クラスターに接続されて
いることを前提としています。
SQL Workbench/J から Amazon Redshift でメール送信イベントデータのクエリを実行するには
1.
すべてのメール送信レコードを表示するには、次のクエリをコピーして [Statement 1] ウィンドウに貼
り付けます。
select * from ses;
2.
ステートメント内にカーソルを置き (セミコロンの前の任意の場所)、[Execute current statement] ボタ
ンを選択します。
「ステップ 6: メールを送信する (p. 150)」で送信したすべてのメールに関して、メール送信レコー
ドが表示されます。次の図のレコードは、book キャンペーンに 2 つの苦情があり、clothing キャン
ペーンに 1 つのバウンスがあったことを示しています。
3.
タイプが book のキャンペーンの complaint レコードをカウントするには、次のクエリをコピーして
[Statement 1] ウィンドウに貼り付けます。
API Version 2010-12-01
151
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
select count(*) as numberOfComplaint from ses where event_type = 'Complaint' and
campaign like '%book%';
4.
ステートメント内にカーソルを置き (セミコロンの前の任意の場所)、[Execute current statement] ボタ
ンを選択します。
結果は次のとおりです。書籍キャンペーンに 2 つの苦情があったことを示しています。
Amazon Elasticsearch Service と Kibana を使用したメール送信イベントの視覚化
Elasticsearch はログ分析、リアルタイムのアプリケーションモニタリングなどのユースケース向けのオー
プンソースの検索および分析エンジンです。Amazon Elasticsearch Service (Amazon ES) は、AWS クラウ
ドで Elasticsearch をデプロイ、運用、スケールできるようにする AWS のサービスです。Amazon ES を
使用すると、Amazon SES メール送信イベントを分析できます。
このチュートリアルでは、イベントデータを Amazon ES に発行する Amazon Kinesis Firehose 配信スト
リームに Amazon SES メール送信イベントを発行します。次に、Elasticsearch と連動するように設計さ
れたオープンソースの視覚化ツールである Kibana でデータを表示します。Amazon ES には、Kibana との
組み込みの統合が含まれています。
以下のセクションでは、次のプロセスを説明します。
• 前提条件 (p. 152)
• ステップ 1: Amazon ES クラスターを作成する (p. 152)
• ステップ 2: Firehose 配信ストリームを作成する (p. 153)
• ステップ 3: 設定セットをセットアップする (p. 155)
• ステップ 4: メールを送信する (p. 155)
• ステップ 5: Kibana でデータを視覚化する (p. 156)
前提条件
このチュートリアルでは、以下が必要になります。
• AWS アカウント - AWS が提供するウェブサービスにアクセスするには、まず https://aws.amazon.com/
で AWS アカウントを作成する必要があります。
• 確認済みメールアドレス - Amazon SES を使用してメールを送信する際には、「From」アドレスまたは
ドメインを見て、メールの所有者が自分であると示されていることを確認する必要があります。サンド
ボックスの場合、「To」アドレスも確認する必要があります。メールアドレスまたはドメイン全体を確
認できますが、このチュートリアルでは、Amazon SES コンソール (最も簡単にメールを送信できる方
法) からメールを送信できるように確認済みメールアドレスが必要です。メールアドレスの確認につい
ては、「Amazon SES での E メールアドレスの検証 (p. 37)」を参照してください。
次のステップ
ステップ 1: Amazon ES クラスターを作成する (p. 152)
ステップ 1: Amazon ES クラスターを作成する
Amazon SES メール送信イベントを Amazon Elasticsearch Service (Amazon ES) に発行するように
Amazon Kinesis Firehose をセットアップする前に、Amazon ES クラスターを作成する必要があります。
このセクションでは、Amazon ES コンソールを使用して Amazon ES クラスターを作成する方法を示しま
す。
API Version 2010-12-01
152
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
このチュートリアルでは、簡略化するため基本的なオプションを選択します。利用できるすべてのオプ
ションについては、『Amazon Elasticsearch Service 開発者ガイド』を参照してください。
Important
このチュートリアル用にデプロイしたクラスターは、実働環境で実行されます。実行中は AWS
アカウントに課金されます。不要な課金を回避するため、クラスターは実行後に削除してくださ
い。料金表については、Amazon Elasticsearch Service の料金表ページを参照してください。
Amazon ES クラスターを作成するには
1.
AWS マネジメントコンソールにサインインして、https://console.aws.amazon.com/es/ にある
Amazon Elasticsearch Service コンソールを開きます。
2.
Amazon ES コンソールで、[Get started] を選択します。
3.
[Define domain] ページの [Domain Name] で、Amazon ES ドメインの名前を入力します。
4.
[Version] で、[Elasticsearch version] フィールドをデフォルト値のままにします。
5.
[Next] を選択します。
6.
[Configure cluster] ページの [Node configuration] で、次のオプションを選択します。
• Instance count - 「1」と入力します。
• Instance type - [t2.micro.elasticsearch (Free tier eligible)] を選択します。
• Enable dedicated master - このオプションは有効にしないでください。
• Enable zone awareness - このオプションは有効にしないでください。
7.
[Storage configuration] で、次のオプションを選択します。
• Storage type - [EBS] を選択します。EBS 設定では、[General Purpose (SSD)] として [EBS volume
type]、[EBS volume size] として [10] を選択します。
• Automated snapshot start hour - [Automated snapshots start hour 00:00 UTC (default)] を選択しま
す。
8.
[Next] を選択します。
9.
[Set up access policy] ページの [Set the domain access policy to] で、[Allow open access to the
domain] を選択します。
Important
この設定によりテストが簡略化されますが、実稼働環境にはお勧めしません。アクセスポリ
シーの設定については、『Amazon Elasticsearch Service 開発者ガイド』の「アクセス ポリ
シーの設定」を参照してください。
10. [Next] を選択します。
11. [Review] ページで、設定を確認し、[Confirm and create] を選択します。
Note
クラスターがデプロイされるまで最大 10 分かかります。
次のステップ
ステップ 2: Firehose 配信ストリームを作成する (p. 153)
ステップ 2: Firehose 配信ストリームを作成する
メール送信イベントを Amazon Kinesis Firehose に発行するには、Firehose 配信ストリームを作成する必
要があります。Firehose 配信ストリームをセットアップしたら、Firehose がデータを発行する場所を選択
します。このチュートリアルでは、データを Amazon Elasticsearch Service (Amazon ES) に発行するよう
に Firehose をセットアップします。
API Version 2010-12-01
153
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
このセクションでは、Firehose コンソールを使用して Firehose 配信ストリームを作成する方法を示し
ます。このチュートリアルでは、簡略化するため基本的なオプションを選択します。利用できるすべて
のオプションについては、『Amazon Kinesis Firehose 開発者ガイド』の「Creating an Amazon Kinesis
Firehose Delivery Stream」を参照してください。
Note
「ステップ 1: Amazon ES クラスターを作成する (p. 152)」での説明に従って、すでに Amazon
ES クラスターをセットアップしている必要があります。
Firehose から Amazon Elasticsearch Service への配信ストリームを作成するには
1.
AWS マネジメントコンソールにサインインして、Firehose コンソール (https://
console.aws.amazon.com/firehose/) を開きます。
2.
[Create Delivery Stream] を選択します。
3.
[Destination] ページで、次のオプションを選択します。
• Destination - Amazon Elasticsearch Service を選択します。
• Delivery stream name - 配信ストリームの名前を入力します。
• Elasticsearch domain - 「ステップ 1: Amazon ES クラスターを作成する (p. 152)」で作成した
Amazon ES ドメインを選択します。
• Index - Kibana でメール送信イベントデータを調べるために使用する名前を入力します。任意の
名前を選択できますが、このチュートリアルでは holiday-sale を使用しましょう。インデック
スは、データベースと似ています。たとえば、各メールキャンペーンから別個にイベントにアクセ
スする簡単な方法が必要な場合、キャンペーンごとに異なる Firehose ストリームとインデックスを
使用できます。
• Index rotation - [NoRotation] を選択します。
• Type - この設定はこのチュートリアルには関連していませんが、選択が必須なため、「events」と
入力します。タイプは、インデックスの論理的なカテゴリまたはパーティションです。
• Retry duration (sec) -「300」と入力します。
• Backup mode - [Failed Documents Only] を選択します。
• S3 bucket - [New S3 Bucket] を選択します。バケットの名前を入力し、コンソールが現在使用して
いるリージョンを選択します。
• S3 prefix - このフィールドは空のままにします。
4.
[Next] を選択します。
5.
[Configuration] ページでは、フィールドをデフォルト設定のままにします。必要なステップは、次の
手順で説明するように、Firehose がリソースにアクセスできるようにする IAM ロールを選択すること
だけです。
a.
[IAM Role] で、[Select an IAM role] を選択します。
b.
ドロップダウンメニューの [Create/Update existing IAM role] で、[Firehose delivery IAM role] を
選択します。
IAM コンソールに自動的に移動します。
c.
IAM コンソールで、フィールドをデフォルト値のままにして、[Allow] を選択します。
Firehose コンソールで Firehose 配信ストリームのセットアップステップに戻ります。
6.
[Next] を選択します。
7.
[Review] ページで設定を確認した後、[Create Delivery Stream] を選択します。
次のステップ
ステップ 3: 設定セットをセットアップする (p. 155)
API Version 2010-12-01
154
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
ステップ 3: 設定セットをセットアップする
メール送信イベントを Amazon Kinesis Firehose に発行するように Amazon SES をセットアップするに
は、まず設定セットを作成し、次に Firehose イベント発行先を設定セットに追加します。このセクション
では、これらのタスクを実行する方法を示します。
すでに設定セットがある場合、Firehose 発行先を既存の設定セットに追加できます。この場合、
「Firehose イベント発行先の追加 (p. 155)」に移動します。
設定セットの作成
次の手順では、設定セットを作成する方法を示します。
設定セットを作成するには
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
左のナビゲーションペインで [Configuration Sets] を選択します。
3.
コンテンツペインで、[Create Configuration Set] を選択します。
4.
5.
設定セットの名前を入力し、[Create Configuration Set] を選択します。
[Close] を選択します。
Firehose イベント発行先の追加
次の手順では、作成した設定セットに Firehose イベント発行先を追加する方法を示します。
Firehose イベント発行先を設定セットに追加するには
1.
設定セットリストから設定セットを選択します。
2.
3.
[Add Destination] で、[Select a destination type] を選択して [Firehose] を選択します。
[Name] に、イベント発行先の名前を入力します。
4.
5.
6.
7.
すべての [Event types] を選択します。
[Enabled] を選択します。
[Stream] で、「ステップ 2: Firehose 配信ストリームを作成する (p. 153)」で作成した配信ストリー
ムを選択します。
[IAM role] で、[Let SES make a new role] を選択してロールの名前を入力します。
8.
9.
[Save] を選択します。
[Edit Configuration Set] ページを終了するには、ブラウザの戻るボタンを使用します。
次のステップ
ステップ 4: メールを送信する (p. 155)
ステップ 4: メールを送信する
Amazon SES がメールに関連付けられたイベントを発行するには、メールの送信時に設定セットを指定
する必要があります。メールを分類するためのメッセージタグも含める必要があります。このセクション
は、Amazon SES コンソールを使用して設定セットとメッセージタグを指定するシンプルなメールを送
信する方法を示しています。バウンス数、苦情数、他のメール送信結果をテストできるように、メールは
Amazon SES メールボックスシミュレーターに送信します。
Amazon SES コンソールを使用してメールを送信するには
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
API Version 2010-12-01
155
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
2.
Amazon SES コンソールの [Navigation] ペインにある [Identity Management] で、[Email Addresses]
を選択します。
3.
ID のリストで、Amazon SES での確認 (p. 37)に成功したメールアドレスのチェックボックスをオン
にします。
4.
5.
6.
[Send a Test Email] を選択します。
[Send Test Email] ダイアログボックスの [Email Format] で、[Raw] を選択します。
「To」アドレスには、Amazon SES メールボックスシミュレーター (p. 197)からのアドレスを入力
します ([email protected][email protected] など)。
7.
次のメッセージ全体をコピーし、[Message] テキストボックスに貼り付けます。CONFIGURATION-SETNAME は、「ステップ 3: 設定セットをセットアップする (p. 155)」で作成した設定セットの名前で置
き換え、FROM-ADDRESS はこのメールの送信元の確認済みアドレスで置き換えます。
X-SES-MESSAGE-TAGS: campaign=book
X-SES-CONFIGURATION-SET: CONFIGURATION-SET-NAME
Subject: Amazon SES Event Publishing Test
From: Amazon SES User <FROM-ADDRESS>
MIME-Version: 1.0
Content-Type: text/plain
This is a test message.
8.
9.
[Send Test Email] を選択します。
この手順を数回繰り返し、複数のメール送信イベントを生成します。いくつかのメールについて
は、campaign メッセージタグの値を clothing に変更し、異なるメールキャンペーンの送信をシミュ
レートします。
次のステップ
ステップ 5: Kibana でデータを視覚化する (p. 156)
ステップ 5: Kibana でデータを視覚化する
ここまでで、設定セットとメッセージタグを使用してメールを送信することにより、いくつかの Amazon
SES メール送信イベントを Amazon Elasticsearch Service (Amazon ES) に発行したので、Kibana
(Elasticsearch 用のウェブインターフェイス) を使用してイベントを視覚化できます。
このセクションでは、Kibana でメール送信イベントを検索する方法、メール送信イベントをイベントタイ
プごとにグラフ化する方法、バウンスしたメールアドレスを検索する方法を示します。これらの演習は、
バウンスと苦情のモニタリングはメーリングリストの維持の重要な部分のため役立ちます。
• メール送信イベントの表示 (p. 156)
• メール送信イベントのタイプ別のグラフ化 (p. 157)
• バウンスした受取人アドレスの調査 (p. 157)
Kibana のドキュメントとチュートリアルについては、『Kibana ユーザーガイド』を参照してください。
メール送信イベントの表示
次の手順は、Amazon ES コンソールから Kibana ユーザーインターフェイスに移動する方法を示していま
す。その後、「ステップ 2: Firehose 配信ストリームを作成する (p. 153)」で Amazon Kinesis Firehose
配信ストリームをセットアップしたときに定義したインデックスに関連付けられたメール送信イベントを
表示する方法を示します。
Kibana で raw メール送信イベントを表示する方法
1.
AWS マネジメントコンソールにサインインして、https://console.aws.amazon.com/es/ にある
Amazon Elasticsearch Service コンソールを開きます。
API Version 2010-12-01
156
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
2.
[My Elasticsearch domains] で、「ステップ 1: Amazon ES クラスターを作成する (p. 152)」で作成
したドメインを選択します。
3.
Kibana リンクを選択します。
Kibana ウェブインターフェイスが表示されます。
4.
5.
[Configure an index pattern] ページで、[Index contains time-based events] チェックボックスをオフに
します。
[Index name or pattern] で、「ステップ 1: Amazon ES クラスターを作成する (p. 152)」で作成
したインデックス holiday-sale が存在することを確認します。存在しない場合、フィールドに
「holiday-sale*」と入力し、[Create] を選択します。
Note
[Create] ボタンが表示されない場合、インデックスパターンの末尾にアスタリスクを追加し
てみてください。
6.
トップメニューで [Discover] タブを選択します。
7.
[Discover] タブの下にある検索ボックスで、アスタリスク (*) の後ろにカーソルを置き、Enter キーを
押します。
Kibana に、すべてのメール送信イベントのリストが表示されます。
メール送信イベントのタイプ別のグラフ化
メールキャンペーンの全体的な状態の洞察を得るため、キャンペーン全体で受け取った問題のある結果の
数 (バウンス、苦情、拒否されたメール) を視覚的に比較できます。次の手順では、各メール送信イベント
タイプの数を示す棒グラフをセットアップする方法を示します。
メール送信イベントをタイプ別にグラフ化するには
1.
トップメニューで [Visualize] タブを選択します。
2.
3.
[Vertical bar chart] を選択します。
[From a new search] を選択します。インデックスパターンを求められたら、[holiday-sale*] を選択
します。
メトリクスペインの [Y-Axis] の横で、メトリクスが [Count] に設定されていることを確認します。
4.
5.
6.
7.
8.
9.
[Buckets] ペインで、[X-Axis] を選択します。
[Aggregation] で、[Terms] を選択します。[Terms] は、インデックス内の JSON ドキュメントにある
フィールドを指します。
[Field] の [String] で、[eventType] を選択します。残りのフィールドはデフォルト値のままにしておき
ます。
[Options] の横で、再生ボタンを選択します。イベントタイプを比較する棒グラフが画面に表示されま
す。
視覚化を保存するには、検索バーの右側にあるアイコングループから保存アイコンを選択します。
10. 「All Event Types」などのタイトルを入力し、[Save] を選択します。
バウンスした受取人アドレスの調査
ここまでで、メールキャンペーン全体の状態を視覚化したため、次の手順で説明するように、raw データ
に戻って、バウンスした受取人アドレスを調べることができます。
バウンスしたメールアドレスを表示するには
1.
トップメニューで [Discover] タブに移動します。
raw イベントレコードのリストが表示されます。
API Version 2010-12-01
157
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
Note
メインウィンドウに検索結果がゼロであると報告された場合、検索バーに「*」と入力して
Enter キーを押します。
2.
左側のペインの [Available Fields] で、[eventType] をポイントし、その横に表示された [add] ボタンを
選択します。
3.
メインウィンドウで、[eventType] 列見出しをポイントし、矢印を選択して名前を基準にイベントタイ
プをソートします。
バウンスイベントがリストの上部に移動します。
Note
イベントが再ソートされるまで少し時間がかかることがあります。
4.
左側のペインの [Available Fields] で、[bounce.bouncedRecipients] をポイントし、その横に表示され
た [add] ボタンを選択します。
メインウィンドウに、各バウンスイベントの受取人アドレスとバウンスの理由が表示されます。
Amazon CloudWatch でのイベントのグラフ化
このチュートリアルでは、Amazon SES メール送信イベントを Amazon CloudWatch に発行
し、CloudWatch コンソールを使用してイベントをグラフ化します。
以下のセクションでは、次のプロセスを説明します。
• 前提条件 (p. 158)
• ステップ 1: 設定セットをセットアップする (p. 158)
• ステップ 2: メールを送信する (p. 159)
• ステップ 3: イベントをグラフ化する (p. 160)
前提条件
このチュートリアルでは、以下が必要になります。
• AWS アカウント - AWS が提供するウェブサービスにアクセスするには、まず https://aws.amazon.com/
で AWS アカウントを作成する必要があります。
• 確認済みメールアドレス - Amazon SES を使用してメールを送信する際には、「From」アドレスまたは
ドメインを見て、メールの所有者が自分であると示されていることを確認する必要があります。サンド
ボックスの場合、「To」アドレスも確認する必要があります。メールアドレスまたはドメイン全体を確
認できますが、このチュートリアルでは、Amazon SES コンソール (最も簡単にメールを送信できる方
法) からメールを送信できるように確認済みメールアドレスが必要です。メールアドレスの確認につい
ては、「Amazon SES での E メールアドレスの検証 (p. 37)」を参照してください。
次のステップ
ステップ 1: 設定セットをセットアップする (p. 158)
ステップ 1: 設定セットをセットアップする
メール送信イベントを Amazon CloudWatch に発行するように Amazon SES をセットアップするには、ま
ず設定セットを作成し、次に CloudWatch イベント発行先を設定セットに追加します。このセクションで
は、これらのタスクを実行する方法を示します。
すでに設定セットがある場合、CloudWatch 発行先を既存の設定セットに追加できます。この場合、
「CloudWatch イベント発行先の追加 (p. 159)」に移動します。
API Version 2010-12-01
158
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
設定セットの作成
次の手順では、設定セットを作成する方法を示します。
設定セットを作成するには
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
左のナビゲーションペインで [Configuration Sets] を選択します。
3.
コンテンツペインで、[Create Configuration Set] を選択します。
4.
設定セットの名前を入力し、[Create Configuration Set] を選択します。
5.
[Close] を選択します。
CloudWatch イベント発行先の追加
次の手順では、作成した設定セットに CloudWatch イベント発行先を追加する方法を示します。
CloudWatch イベント発行先を設定セットに追加するには
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
左のナビゲーションペインで [Configuration Sets] を選択します。
3.
前の手順で作成した設定セットを選択します。
4.
[Add Destination] で、[Select a destination type] を選択して [CloudWatch] を選択します。
5.
[Name] に、イベント発行先の名前を入力します。
6.
[Event types] で、[Bounce] と [Complaint] を選択します。
7.
[Enabled] を選択します。
8.
[Value Source] で、[Message Tag] を選択します。
9.
[Dimension Name] で、「campaign」と入力します。
10. [Default Value] で、「unknown」と入力します。
11. [Save] を選択します。
12. [Edit Configuration Set] ページを終了するには、ブラウザの戻るボタンを使用します。
ステップ 2: メールを送信する
Amazon SES がメールに関連付けられたイベントを発行するには、メールの送信時に設定セットを指定
する必要があります。メールを分類するためのメッセージタグも含める必要があります。このセクション
は、Amazon SES コンソールを使用して設定セットとメッセージタグを指定するシンプルなメールを送
信する方法を示しています。バウンス数、苦情数、他のメール送信結果をテストできるように、メールは
Amazon SES メールボックスシミュレーターに送信します。
Amazon SES コンソールを使用してメールを送信するには
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
Amazon SES コンソールの [Navigation] ペインにある [Identity Management] で、[Email Addresses]
を選択します。
3.
ID のリストで、Amazon SES での確認 (p. 37)に成功したメールアドレスのチェックボックスをオン
にします。
4.
[Send a Test Email] を選択します。
5.
[Send Test Email] ダイアログボックスの [Email Format] で、[Raw] を選択します。
API Version 2010-12-01
159
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
6.
「To」アドレスには、Amazon SES メールボックスシミュレーター (p. 197)からのアドレスを入力
します ([email protected][email protected] など)。
7.
次のメッセージ全体をコピーし、[Message] テキストボックスに貼り付けます。CONFIGURATION-SETNAME は、「ステップ 3: 設定セットをセットアップする (p. 155)」で作成した設定セットの名前で置
き換え、FROM-ADDRESS はこのメールの送信元の確認済みアドレスで置き換えます。
X-SES-MESSAGE-TAGS: campaign=book
X-SES-CONFIGURATION-SET: CONFIGURATION-SET-NAME
Subject: Amazon SES Event Publishing Test
From: Amazon SES User <FROM-ADDRESS>
MIME-Version: 1.0
Content-Type: text/plain
This is a test message.
8.
[Send Test Email] を選択します。
9.
この手順を数回繰り返し、複数のメール送信イベントを生成します。いくつかのメールについて
は、campaign メッセージタグの値を clothing に変更し、異なるメールキャンペーンの送信をシミュ
レートします。
次のステップ
ステップ 3: メール送信イベントをグラフ化する (p. 160)
ステップ 3: メール送信イベントをグラフ化する
ここまでで、設定セットとメッセージタグを使用してメールを送信することにより、いくつかの Amazon
SES メール送信イベントを CloudWatch を発行したので、CloudWatch コンソールを使用してそれらのイ
ベントのメトリクスをグラフ化できます。
メール送信イベントメトリクスをグラフ化するには
1.
https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。
2.
3.
左のナビゲーションペインで [Metrics] を選択します。
[All metrics] タブで、[SES] を選択します。
4.
検索フィールドに「SES」と入力することもできます。
[Per configuration set] を選択します。
5.
表示するメトリクスを選択します。
グラフが詳細ペインに表示されます。
Amazon Kinesis Analytics を使用したメール送信イベントの分析
Amazon Kinesis Analytics では、SQL を使用してストリーミングデータを処理および分析できま
す。Amazon Kinesis Analytics を使用すると、Amazon SES メール送信イベントを分析できます。
このチュートリアルでは、まず Amazon SES 設定セットをセットアップして E メール送信イベントを
Amazon Kinesis Firehose 配信ストリームに発行した後、その設定セットを使用して Amazon SES から
E メールを送信します。次に、Amazon Kinesis Analytics をセットアップして Firehose ストリームから E
メール送信イベントを取得し、SQL を使用して、送信した E メールイベントから重要な情報を抽出しま
す。
Note
このチュートリアルでは、Amazon SES から安定した E メールストリームを送信できるアプリ
ケーションを使用します。この要件については、「前提条件 (p. 161)」で説明されています。
API Version 2010-12-01
160
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
以下のセクションでは、チュートリアルについて説明します。
• 前提条件 (p. 161)
• ステップ 1: Firehose 配信ストリームを作成する (p. 161)
• ステップ 2: 設定セットをセットアップする (p. 162)
• ステップ 3: メールを送信する (p. 163)
• ステップ 4: Amazon Kinesis Analytics アプリケーションを作成する (p. 163)
• ステップ 5: SQL クエリを実行する (p. 165)
• (オプション) ステップ 6: SQL クエリの結果を保存する (p. 166)
前提条件
このチュートリアルでは、以下が必要になります。
• AWS アカウント - AWS が提供するウェブサービスにアクセスするには、まず https://aws.amazon.com/
で AWS アカウントを作成する必要があります。
• 確認済みメールアドレス - Amazon SES を使用してメールを送信する際には、「From」アドレスまたは
ドメインを見て、メールの所有者が自分であると示されていることを確認する必要があります。サンド
ボックスの場合、「To」アドレスも確認する必要があります。メールアドレスまたはドメイン全体を確
認できますが、このチュートリアルでは、Amazon SES コンソール (最も簡単にメールを送信できる方
法) からメールを送信できるように確認済みメールアドレスが必要です。メールアドレスの確認につい
ては、「Amazon SES での E メールアドレスの検証 (p. 37)」を参照してください。
• E メールアプリケーション – このチュートリアルの説明に従って Amazon Kinesis Analytics を使用する
には、安定した E メール送信イベントストリームが生成されるように、Amazon SES を通じて安定した
E メールストリームを送信する必要があります。これにより、Amazon Kinesis Analytics がスキーマを
自動的に検出した後、SQL を使用してイベントレコードを処理できるようになります。このチュートリ
アルでは、5 分間 10 秒おきに 1 通の E メールを送信すれば十分です。
Important
実際の受信者に送信する既存の E メールキャンペーンがない場合、Amazon SES mailbox
simulator (p. 197) アドレスに送信することを強くお勧めします。メールボックスシミュレー
ターに送信される E メールは、Amazon SES バウンス率と苦情率に加算されず、日次送信
クォータの計算にも含まれません。
次のステップ
ステップ 1: Firehose 配信ストリームを作成する (p. 161)
ステップ 1: Firehose 配信ストリームを作成する
Amazon Kinesis Analytics を使用して Amazon SES E メール送信イベントを分析するには、イベントが
Amazon Kinesis Firehose 配信ストリームに発行されるように Amazon SES を構成した後、Firehose から
イベントデータを取得するように Amazon Kinesis Analytics を構成する必要があります。
Firehose 配信ストリームをセットアップしたら、データの最終的な送信先を選択します。送信先オプショ
ンは、Amazon Simple Storage Service (Amazon S3)、Amazon Elasticsearch Service、Amazon Redshift
です。Amazon Kinesis Analytics を使用して E メール送信イベントを分析するだけの場合、どの送信
先を選択しても問題ありません。このチュートリアルでは、データが Amazon S3 に発行されるように
Firehose を構成しますが、Amazon SES 送信および Firehose 配信ストリームと同じリージョンの場合は
他の送信先オプションを使用できます。
このセクションでは、Firehose コンソールを使用して Firehose 配信ストリームを作成する方法を示しま
す。このチュートリアルでは基本オプションを選択します。利用できるすべてのオプションについては、
API Version 2010-12-01
161
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
『Amazon Kinesis Firehose 開発者ガイド』の「Creating an Amazon Kinesis Firehose Delivery Stream」
を参照してください。
Firehose から Amazon S3 への配信ストリームを作成するには
1.
2.
AWS マネジメントコンソールにサインインして、Firehose コンソール (https://
console.aws.amazon.com/firehose/) を開きます。
[Create Delivery Stream] を選択します。
3.
[Destination] ページで、次のオプションを選択します。
• 送信先 – [Amazon S3] を選択します。
• Delivery stream name - 配信ストリームの名前を入力します。
• S3 バケット – 既存のバケットを選択するか、[New S3 Bucket] を選択します。新しいバケットを作
成する場合、バケットの名前を入力し、コンソールが現在使用しているリージョンを選択します。
• S3 prefix - このフィールドは空のままにします。
4.
[Next] を選択します。
5.
[Configuration] ページでは、フィールドをデフォルト設定のままにします。必要なステップは、次の
ように Firehose がリソースにアクセスできるようにする IAM ロールを選択することだけです。
a.
[IAM Role] で、[Select an IAM role] を選択します。
b.
ドロップダウンメニューの [Create/Update existing IAM role] で、[Firehose delivery IAM role] を
選択します。
IAM コンソールに自動的に移動します。
c.
IAM コンソールで、フィールドをデフォルト値のままにして、[Allow] を選択します。
6.
Firehose コンソールで Firehose 配信ストリームのセットアップステップに戻ります。
[Next] を選択します。
7.
[Review] ページで設定を確認した後、[Create Delivery Stream] を選択します。
次のステップ
ステップ 2: 設定セットをセットアップする (p. 162)
ステップ 2: 設定セットをセットアップする
メール送信イベントを Amazon Kinesis Firehose に発行するように Amazon SES をセットアップするに
は、設定セットを作成し、次に Firehose イベント発行先を設定セットに追加します。このセクションで
は、これらのタスクを実行する方法について説明します。
すでに設定セットがある場合、Firehose 発行先を既存の設定セットに追加できます。この場合、
「Firehose イベント発行先の追加 (p. 163)」に移動します。
設定セットの作成
次の手順は、設定セットを作成する方法を説明します。
設定セットを作成するには
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
3.
4.
5.
左のナビゲーションペインで [Configuration Sets] を選択します。
コンテンツペインで、[Create Configuration Set] を選択します。
設定セットの名前を入力し、[Create Configuration Set] を選択します。
[Close] を選択します。
API Version 2010-12-01
162
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
Firehose イベント発行先の追加
次の手順では、作成した設定セットに Firehose イベント発行先を追加する方法を示します。
Firehose イベント発行先を設定セットに追加するには
1.
設定セットリストから設定セットを選択します。
2.
3.
[Add Destination] で、[Select a destination type] を選択して [Firehose] を選択します。
[Name] に、イベント発行先の名前を入力します。
4.
5.
6.
すべての [Event types] を選択します。
[Enabled] を選択します。
[Stream] で、「ステップ 1: Firehose 配信ストリームを作成する (p. 161)」で作成した配信ストリー
ムを選択します。
7.
[IAM role] で、[Let SES make a new role] を選択してロールの名前を入力します。
8.
9.
[Save] を選択します。
[Edit Configuration Set] ページを終了するには、ブラウザの戻るボタンを使用します。
次のステップ
ステップ 3: メールを送信する (p. 163)
ステップ 3: メールを送信する
このチュートリアルでは Amazon Kinesis Analytics コンソールを使用してストリーミングデータを処理お
よび分析するため、Amazon SES を通じて安定した E メールストリームをセットアップする必要があり
ます。このチュートリアルは、それらの E メールを送信できるアプリケーションがあることを前提として
います。このチュートリアルでは、5 分間 10 秒おきに 1 通の E メールを送信すれば十分です。Amazon
SES メールボックスシミュレーター (p. 197)から、[email protected] などの「To」ア
ドレスを使用することを強くお勧めします。
E メールのイベントを発行できるようにするには、E メールを送信するときに設定セットの名前を
Amazon SES に指定します。必要に応じて、メールを分類するためのメッセージタグを含めることがで
きます。この情報は、メール送信 API へのパラメーター、Amazon SES 固有のメールヘッダー、または
MIME メッセージのカスタムヘッダーとして Amazon SES に提供します。詳細については、「Amazon
SES イベント発行を使用してメールを送信する (p. 124)」を参照してください。
たとえば、次の Amazon SES 固有の E メールヘッダーを E メールに追加して書籍キャンペーンを
シミュレートできます。CONFIGURATION-SET-NAME は、「ステップ 2: 設定セットをセットアップす
る (p. 162)」で作成した設定セットの名前に置き換えます。
X-SES-CONFIGURATION-SET: CONFIGURATION-SET-NAME
X-SES-MESSAGE-TAGS: campaign=book
次のステップ
ステップ 4: Amazon Kinesis Analytics アプリケーションを作成する (p. 163)
ステップ 4: Amazon Kinesis Analytics アプリケーションを作成する
ここまでで、Amazon SES を使用してイベント発行をセットアップしたので、Amazon Kinesis Firehose
配信ストリームから E メール送信イベントを取得するように Amazon Kinesis Analytics を構成することが
できます。これを行うには、Amazon Kinesis Analytics アプリケーションを作成します。
次の手順では、Amazon Kinesis Analytics コンソールを使用して Firehose 配信ストリームから Amazon
SES E メール送信イベントデータを取得する方法と、SQL クエリだけを実行してタイプ「送信」のイベン
トを返す方法について説明します。
API Version 2010-12-01
163
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
Note
E メール送信イベントのイベントタイプが異なると (送信、バウンス、苦情、配信)、JSON ス
キーマが異なります (p. 130)。本番環境では、このスキーマの複数のフィールドを調べること
がありますが、このチュートリアルでは、すべてのイベントタイプに存在する小さいフィールド
セットだけを調べます。
Amazon Kinesis Analytics アプリケーションを作成するには
1.
Amazon SES を通じたイベント発行用に設定されている安定した E メールストリームの送信を開始
し、この手順全体で E メールの送信を続けます。これは、Amazon Kinesis Analytics がイベントレ
コードのスキーマを自動的に検出できるようにするために必要です。このチュートリアルでは、5 分
間 10 秒おきに 1 通の E メールを送信すれば十分です。詳細については、「ステップ 3: メールを送信
する (p. 163)」を参照してください。
E メールプログラムがいくつかの E メールを送信したら、次のステップに移動します。
2.
3.
AWS マネジメントコンソールにサインインして Analytics コンソール (https://
console.aws.amazon.com/kinesisanalytics) を開きます。
[Create new application] を選択します。
4.
アプリケーションの名前と説明を入力し、[Save and continue] を選択します。
5.
[Connect to a source] を選択します。
6.
「ステップ 2: 設定セットをセットアップする (p. 162)」で作成した Firehose ストリームを選択しま
す。
Amazon Kinesis Analytics が、入力レコードに基づいて E メール送信イベントレコードのスキーマ
の検出を試みます。Amazon Kinesis Analytics に「Error discovering input schema」と表示された場
合、Amazon Kinesis Analytics がまだ E メール送信レコードを受け取っていないことを意味します。
[Rediscover schema] を選択します。場合によっては、このボタンを複数回選択する必要がありま
す。数回試行してもスキーマの検出に成功しなかった場合、E メール送信アプリケーションが E メー
ルを安定して送信していることと、E メールが設定セットを指定していることを確認してください。
Amazon Kinesis Analytics がスキーマを検出すると、成功メッセージが表示され、検出されたレコー
ドが一覧表示されます。
Important
7.
8.
[Save and continue] を選択しないでください。検出されたスキーマは SQL 命名の制約に従っ
ていないため、選択するとエラーが発生します。次のステップで説明するようにスキーマを
編集する必要があります。
[Edit schema] を選択します。
このチュートリアルでは、ほとんどの列を削除します。次の列名を持つ行を除くすべての行の横にあ
る [X] を選択します。
• eventType
• timestamp
• messageId
• 先
• ses:configuration-set
Important
[Save schema and update stream samples] は選択しないでください。検出されたスキーマは
SQL 命名の制約に従っていないため、選択するとエラーが発生します。次のステップで説明
するようにスキーマを編集する必要があります。
9.
[Column name] の下にある残りのエントリを調べ、次のように SQL 命名要件と比較します。
API Version 2010-12-01
164
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
• 形式 – 『Amazon Kinesis AnalyticsSQL リファレンス』の「識別子」で説明されているように、引
用符で囲まない識別子は、文字またはアンダースコアで始まり、その後に文字、数字、またはアン
ダースコアが続く必要があります。Amazon SES 自動タグ名は、コロンとダッシュが含まれている
ためこれらの要件に従っていません。これらは次のステップで編集します。
• 予約語 – 列名は、『Amazon Kinesis AnalyticsSQL リファレンス』の「Reserved Words and
Keywords」に記載されている SQL 予約語と競合していない必要があります。Amazon SES イベン
トレコードと競合する予約キーワードの例は、timestamp、value、date、from、to です。
10. 次のように SQL 要件に従って、残りの列名を編集します。
• ses:configuration-set を ses_configuration_set に名前変更します。
• timestamp を ses_timestamp に名前変更します。
• to を ses_to に名前変更します。
11. [Save schema and update stream samples] を選択します。検証エラーが発生した場合、ステップ 10
を正しく実行したことを確認してください。「No rows in source stream」エラーが発生した場合、こ
の手順の最初に開始した E メールストリームの送信が続いていることを確認し、[Retrieve rows] を選
択します。Amazon Kinesis Analytics がレコードを取得する前に、[Retrieve rows] を複数回選択する
必要が生じることがあります。
12. 行の取得に成功したら、[Exit (done)] を選択します。
次のステップ
ステップ 5: SQL クエリを実行する (p. 165)
ステップ 5: SQL クエリを実行する
ここまでで、Amazon Kinesis Analytics アプリケーションを作成し、送信元として Amazon Kinesis
Firehose 配信ストリームを使用するように設定したので、Firehose 配信ストリームが受信する E メール送
信イベントデータを照会できます。
このトピックでは、E メール送信イベントデータで SQL クエリを実行する方法を示します。
Important
この手順では、「ステップ 3: メールを送信する (p. 163)」で説明されているように、Amazon
SES を通じたイベント発行用に設定されている安定した E メールストリームの送信を続ける必要
があります。
Amazon Kinesis Analytics で SQL クエリを実行するには
1.
前のステップ (p. 163)を完了した後にこの手順に移動した場合は、Amazon Kinesis Analytics コン
ソールの一番上のメニューに移動してアプリケーションを選択します。
2.
[Go to SQL editor] を選択します。
Amazon Kinesis Analytics が Firehose ストリームからイベントデータの読み取りを試みます。「No
rows in source stream」エラーが発生した場合、この手順の最初に開始した E メールストリームの送
信が続いていることを確認し、[Retrieve rows] を選択します。
3.
コードエディタダイアログボックスで、次の内容を貼り付けます。
CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" ("eventType" VARCHAR(16),
"ses_timestamp" timestamp, "messageId" VARCHAR(64), "ses_to" VARCHAR(64),
"ses_configuration_set" VARCHAR(32));
CREATE OR REPLACE PUMP "STREAM_PUMP" AS INSERT INTO "DESTINATION_SQL_STREAM"
API Version 2010-12-01
165
Amazon Simple Email Service 開発者ガイド
イベント発行を使用したモニタリング
SELECT STREAM "eventType", "ses_timestamp", "messageId", "ses_to",
"ses_configuration_set"
FROM "SOURCE_SQL_STREAM_001"
WHERE "eventType" = 'Send'
4.
[Save and run SQL] を選択します。
Amazon Kinesis Analytics が入力レコードを取得して処理すると、タイプ「送信」のイベントレコー
ドのリストが表示されます。
次のステップ
(オプション) ステップ 6: SQL クエリの結果を保存する (p. 166)
(オプション) ステップ 6: SQL クエリの結果を保存する
SQL クエリの出力が Amazon Kinesis Firehose 配信ストリームに書き込まれるように Amazon Kinesis
Analytics アプリケーションをセットアップすることができます。同じ配信ストリームを Amazon Kinesis
Analytics アプリケーションの送信元と送信先の両方として使用することはできないため、これを行うに
は、別の Firehose 配信ストリームを作成する必要があります。Firehose 配信ストリームと同様、Amazon
Simple Storage Service (Amazon S3)、Amazon Elasticsearch Service、または Amazon Redshift を送信先
として選択することができます。
次の手順は、SQL クエリの結果が Amazon S3 にデータを書き込む Firehose 配信ストリームに JSON 形
式で保存されるように Amazon Kinesis Analytics を構成する方法を示しています。次に、SQL クエリを実
行して保存されたデータにアクセスします。
SQL クエリの結果を Amazon S3 を保存するには
1.
2.
3.
4.
5.
6.
Amazon S3 を送信先として使用する Firehose ストリームをセットアップします。これは、「ステッ
プ 1: Firehose 配信ストリームを作成する (p. 161)」と同じ手順です。
Amazon Kinesis Analytics コンソールに移動し、アプリケーションの横の矢印を選択して [Application
details] を選択します。
[Connect to a destination] を選択します。
ステップ 1 で作成した Firehose ストリームを選択し、残りのオプションをデフォルト設定のままにし
て [Save and continue] を選択します。
数秒後、アプリケーションのメインページに戻ります。
[Go to SQL results] を選択します。
[Save and run SQL] を選択し、「ステップ 5: SQL クエリを実行する (p. 165)」で実行したクエリを
再実行します。
Amazon Kinesis Analytics が、Firehose 配信ストリームから受信したイベントデータの処理を試み
ます。「No rows have arrived yet」エラーが発生した場合、Amazon Kinesis Analytics に処理する E
メール送信イベントが到達するように E メールの送信が続いていることを確認してください。
Amazon Kinesis Analytics がレコードを処理している間、結果が [Real-time analytics] タブに表示され
ます。Amazon Kinesis Analytics が、ステップ 1 で Firehose 配信ストリームをセットアップしたとき
に指定した Amazon S3 バケットに結果を自動的に保存します。
7.
8.
9.
結果を取得するには、Amazon S3 コンソールに移動します。
Amazon Kinesis Analytics アプリケーションが送信先として使用する Firehose 配信ストリームに関連
付けられた Amazon S3 バケットを選択します。
データに移動します。データは、デフォルトでは結果がバケットに保存された日付に基づいてフォル
ダ階層に整理されています。
バケットが空の場合、数分待ってから再度試してください。データが Amazon Kinesis Analytics から
Amazon S3 バケットに到達するまで数分かかることがあります。
API Version 2010-12-01
166
Amazon Simple Email Service 開発者ガイド
送信制限の管理
10. ファイルを選択し、[Actions] メニューで [Download] を選択します。
11. 画面の指示に従ってファイルをコンピュータにダウンロードします。
12. コンピュータで、テキストエディタを使用してファイルを開きます。レコードは JSON 形式であり、
各レコードは中括弧で囲まれています。以下に、2 つのレコードを含むファイルの例を示します。
{"eventType":"Send","ses_timestamp":"2016-12-08
18:51:12.092","messageId":"EXAMPLE8dfc6695c-5f048b74ca83-4052-8348-4e7da9669fc3-000000","ses_to":"[\"[email protected]
\" ]","ses_configuration_set":"[\"MyConfigSet\" ]"}
{"eventType":"Send","ses_timestamp":"2016-12-08
18:50:42.181","messageId":"EXAMPLEdfc5f485d40a2543-2cac-4b84-8a8f-30bebdf3820c-000000","ses_to":"[\"[email protected]
\" ]","ses_configuration_set":"[\"MyConfigSet\" ]"}
Amazon SES の送信制限の管理
送信できる E メールメッセージの数と送信レートを規制するために、お客様の Amazon Simple Email
Service(Amazon SES)アカウントには一連の送信制限が割り当てられます。Amazon SES とインター
ネットサービスプロバイダー(ISP)間の信頼関係を保つという意味で、送信制限は、Amazon SES を
利用するすべてのお客様に利益をもたらします。E メール送信のボリュームやレートが不意に急増する
と、ISP によって E メールがブロックされますが、送信制限があることで、送信アクティビティを徐々に
増やすことができ、その可能性を低く抑えることができます。
Amazon SES には次の送信制限があります。
• 送信クォータ - 24 時間当たりに送信できる E メールの最大数。送信クォータには、期間の推移が反映
されます。E メールを送信しようとすると、その都度 Amazon SES が、直近 24 時間内に送信された E
メールの件数をチェックします。送信済みのメールの合計数がクォータ未満であれば、送信リクエスト
は受理され、E メールが送信されます。既にクォータの上限に達した場合、スロットリング例外で送信
リクエストは拒否されます。たとえば、送信クォータが 50,000 で、直近 24 時間の送信済みの E メール
件数が 15,000 通である場合、その時点でさらに 35,000 通の E メールを送信することができます。直近
24 時間に送信したメールの件数が既に 50,000 通に達している場合、直近送信分の一部が、その 24 時
間枠から推移するまで、E メールを送信することはできません。
• 最大送信レート - Amazon SES が 1 秒あたりにアカウントから受け付ける E メールの最大数。この制限
を瞬間的に超えることはできますが、制限を超えた状態が長時間続くことは許可されません。
Note
Amazon SES のメッセージ受信レートはこの最大送信レートよりも少ない場合があります。
Amazon SES の送信制限は、AWS リージョンごとに独立しています。複数の AWS リージョンでの
Amazon SES の使用については、「リージョンと Amazon SES (p. 296)」を参照してください。
Amazon SES サンドボックス環境の場合、送信クォータは 24 時間あたり 200 メッセージで、最大送信
レートは 1 秒あたり 1 メッセージです。送信制限を引き上げるには、SES Sending Limits Increase ケー
スを提出する必要があります。詳細については、「 Amazon SES サンドボックスの外への移動 (p. 52)」
を参照してください。アカウントをサンドボックスの外に移動し、E メールの送信を開始した後、
「Amazon SES の送信制限の引き上げ (p. 169)」で説明しているように、また別の SES Sending Limits
Increase ケースを提出することで、さらに送信制限を引き上げることができます。
Note
メッセージ数ではなく、受信者数に基づいた送信制限があります。たとえば、受取人数が 10 人で
ある E メールは、クォータに対しては 10 通とカウントされます。ただし、SendEmail の 1 回の
呼び出しで複数の受取人にメールを送信することはお勧めできません。リクエストの不適切な形
API Version 2010-12-01
167
Amazon Simple Email Service 開発者ガイド
送信制限のモニタリング
式などにより Amazon SES の呼び出しが失敗した場合、E メール全体が拒否され、いずれの受取
人にも、意図したメールが届かないためです。SendEmail は、受取人ごとに 1 回呼び出すようお
勧めします。
• 送信制限の引き上げについては、「Amazon SES の送信制限の引き上げ (p. 169)」を参照してくださ
い。
• 送信制限に達したときにアプリケーションが受け取るエラーについては、「Amazon SES の送信制限に
達するとどうなるか (p. 170)」を参照してください。
• Amazon SES コンソールまたは Amazon SES API で送信制限を監視するには、「Amazon SES 送信制
限のモニタリング (p. 168)」を参照してください。
Amazon SES のさまざまなトピックに関する技術的な考察については、「Amazon SES ブログ」をご覧
ください。お問い合わせを参照あるいは発信するには「Amazon SES フォーラム」をご覧ください。
Amazon SES 送信制限のモニタリング
送信制限をモニタリングするには、Amazon SES コンソールを使用するか Amazon SES API を利用しま
す。これを行うには、クエリ (HTTPS) インターフェイスを直接呼び出すか、AWS SDK、AWS Command
Line Interface、または AWS Tools for Windows PowerShell を使用して間接的に呼び出します。
Important
送信制限に達しないように、頻繁に送信統計を確認することをお勧めします。送信制限に近付い
た場合は、制限を引き上げる方法について「Amazon SES の送信制限の引き上げ (p. 169)」を
参照してください。送信制限に達する前に、制限の引き上げを検討してください。
Amazon SES コンソールを使用した送信制限のモニタリング
以下の手順は、Amazon SES コンソールを使用した送信制限の表示方法を示します。
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
ナビゲーションペインで、[Sending Statistics] を選択します。送信制限が [Your Amazon SES Sending
Limits] に表示されます。
3.
表示を更新するには、[Refresh] を選択します。
Amazon SES API を使用した送信制限のモニタリング
Amazon SES API により、送信制限を返す GetSendQuota アクションが可能になります。GetSendQuota ア
クションを呼び出すと、以下の情報が返されます。
• 過去 24 時間に送信した E メールの数
• 現在の 24 時間の送信クォータ
• 最大送信レート
Note
GetSendQuota の詳細については、「Amazon Simple Email Service API Reference」を参照して
ください。
API Version 2010-12-01
168
Amazon Simple Email Service 開発者ガイド
送信制限の引き上げ
Amazon SES の送信制限の引き上げ
アカウントがサンドボックスの外に移動すると、お客様が質の高いコンテンツを送信しており、なおか
つ、使用量が現在の制限に近づいていることを弊社が検出した場合、お客様の送信制限は引き上げられま
す。多くの場合クォータは、実際に必要となる前に、システムによって自動的に引き上げられるため、特
別なアクションは必要ありません。
既存のクォータでお客様のニーズを満たすことが難しく、かつ、クォータの自動引き上げがまだ実施され
ていない場合、サポートセンターで SES Sending Limits Increase case ケースを開くことができます。
ケースを開く際に必要な一連の情報については、「SES Sending Limits Increase ケースを開
く (p. 169)」を参照してください。
Important
常に余裕を持って計画するようにしてください。送信制限を絶えず意識し、その範囲内に留め
るように心がけます。自動的に割り当てられたクォータでは足りないことが予測される場合は、
クォータの引き上げが必要となる日が来る前に、SES Sending Limits Increase ケースを開いてく
ださい。
Important
送信する E メールが 1 日に 100 万通を超えることが予想される場合は、SES Sending Limits
Increase ケースを開いてください。
Amazon SES がクォータを引き上げるためには、お客様に次のガイドラインに従っていただく必要があり
ます。
• 質の高いコンテンツを送信する - 受取人の希望や期待に沿ったコンテンツを送信します。高品質の E
メールを送信する方法に関する推奨事項については、「Amazon Simple Email Service の E メール送信
のベストプラクティスホワイトペーパー」を参照してください。
• 実際の本稼働のコンテンツを送信する - テスト用ではない実際の E メールを送信してくださ
い。Amazon SES がお客様の送信パターンを正確に評価し、質の高いコンテンツをお客様が送信してい
ることを確認できます。
• 現在のクォータに近いボリュームを維持する - 送信ボリュームがクォータを超えることはないが常に
それに近い水準に保たれている場合、その使用パターンを Amazon SES が検出し、自動的にお客様の
クォータを引き上げます。
• バウンスと苦情の件数を低く抑える - バウンスと苦情の件数は最小限に抑えます。バウンスと苦情の件
数の多さが、送信制限に悪影響を及ぼすことがあります。
Important
自分の E メールアドレス宛てに送信するテスト E メールが、バウンスと苦情のメトリクスに悪
影響を及ぼすことがあります。つまり、弊社のフィルタには見かけ上、質の低いコンテンツと認
識されます。システムのテストには可能な限り、Amazon SES メールボックスシミュレーターを
使用してください。メールボックスシミュレーターに送信される E メールは、送信メトリクスに
も、バウンスや苦情の件数にも反映されません。詳細については、「Amazon SES E メール送信
のテスト (p. 197)」を参照してください。
SES Sending Limits Increase ケースを開く方法については、「SES Sending Limits Increase ケースを開
く (p. 169)」を参照してください。
SES Sending Limits Increase ケースを開く
Amazon SES の送信制限の引き上げを申請するには、以下の手順を使用してサポートセンターでケースを
開く必要があります。
API Version 2010-12-01
169
Amazon Simple Email Service 開発者ガイド
送信制限に達するとどうなるか
送信制限の引き上げをリクエストするには
1.
AWS マネジメントコンソール にログインします。
2.
https://aws.amazon.com/ses/extendedaccessrequest/ に移動します。代わりに、AWS Support Center
にアクセスし、[Create Case]、[Service Limit Increase] の順に選択してから、制限タイプとして [SES
Sending Limits] を選択することもできます。
3.
フォームで、以下の情報を入力します。
• リージョン: 送信制限の引き上げをリクエストする AWS リージョンを選択します。Amazon SES サ
ンドボックスのステータスと送信制限はリージョン単位で適用されます。詳細については、「リー
ジョンと Amazon SES (p. 296)」を参照してください。
• 制限: [Desired Daily Sending Quota] または [Desired Maximum Send Rate] を選択します。送信制限
については、「Amazon SES の送信制限の管理 (p. 167)」を参照してください。
Note
Amazon SES のメッセージ受信レートはこの最大送信レートよりも少ない場合がありま
す。
• 新しい制限値: リクエストするメール量を入力します。メール量は必要な分だけリクエストしてくだ
さい。 リクエストしたメール量が必ずしも許可されるわけではありません。リクエストする送信制
限を引き上げるほど、そのメール量の正当化に必要な理由が増えます。
• E メールのタイプ – [Transactional]、[System Notifications]、[Subscription]、[Marketing]、または
[Other] を選択します。
• ウェブサイトの URL – ウェブサイトへのリンクを入力します。必ずしも入力する必要はありません
が、リンクがあれば入力することを強くお勧めします。リクエストの評価に役立つためです。
• E メール送信は AWS のサービス条件と AWS の適正利用規約 (AUP) に準拠します – [Yes] または
[No] を選択します。
• 私は明確にリクエストされた受信者にのみメールを送信します – [Yes] または [No] を選択します。
高品質のメールを送信して受取人リストをクリーンな状態に維持する方法のヒントについては、
「受取人リストの取得と管理 (p. 201)」と「Amazon Simple Email Service の E メール送信のベス
トプラクティスホワイトペーパー」を参照してください。
• バウンスや苦情を処理するプロセスがあります. – [Yes] または [No] を選択します。バウンスと苦情
の監視および処理方法の詳細については、「バウンスと苦情の処理 (p. 202)」を参照してくださ
い。
• 申請理由の説明 – できる限り詳しく状況を説明します。たとえば、送信する E メールがどのような
タイプであるか、ビジネスにどのように適しているかを説明します。想定される受取人に送信する
メールの質の高さを示す情報が多いほど、リクエストが承認される可能性は高くなります。リクエ
ストする制限値が高くなるほど、より詳しい情報を提供する必要があります。
AWS がお客様の申請を確認後、ケースに対応します。手続きには 1 営業日かかりますがご了承くだ
さい。
Amazon SES の送信制限に達するとどうなるか
送信クォータまたは最大送信レートに達した後にメールを送信しようとすると、スロットリングエラー
が発生し、E メールは破棄されます。エラーを確認する方法は、Amazon SES API を直接呼び出す
か、SMTP インターフェイスを介して Amazon SES にアクセスするかで異なります。以降のセクションで
は、両方のシナリオについて説明します。
Note
送信レート制限に達するまで少なくとも 1 通分の余裕が残っていれば、複数の受取人に E メール
を送信することができます。その後、再度送信するためには、対応する送信レートクォータの量
が増えるまで待つ必要があります。たとえば、送信レート制限が毎秒 1 E メールである場合、10
API Version 2010-12-01
170
Amazon Simple Email Service 開発者ガイド
送信承認の使用
秒に 1 回、10 人の受取人に E メールを送信することができます。ただし、1 回の SendEmail 呼
び出しで複数の受取人に E メールを送信することはお勧めできません。
最大送信レートに到達したときに使用する手法については、「Amazon SES blog」の「"Throttling –
Maximum sending rate exceeded" エラーの対処法」を参照してください。
Amazon SES API で送信制限に達した場合
送信制限を超える E メールをアプリケーションから送信しようとした場合、そのアプリケーションでス
ロットリングエラーが発生し、以下のいずれかのメッセージが表示されます。
• Daily message quota exceeded
• Maximum sending rate exceeded
スロットリングエラーは、E メールボリュームの予測が不正確であったり、取引メールが想定を超えて急
増した場合に発生します。スロットリングエラーに対処するには、無作為的に 0~10 分間待機したうえで
送信リクエストを再試行するようにアプリケーションをプログラムする必要があります。
SMTP で送信制限に達した場合
SMTP インターフェイス経由で Amazon SES にアクセスしているときに送信制限に達した場合、SMTP ク
ライアントで次のいずれかのエラーが発生します。
• 454 Throttling failure: Maximum sending rate exceeded
• 454 Throttling failure: Daily message quota exceeded
ただし、SMTP クライアントはさまざまな方法でこれらのエラーに対処します。たとえば、E メールクラ
イアントとして Microsoft Outlook を使用しているときに送信クォータを超過した場合、送信/受信エラーが
発生し、Outlook クライアントウィンドウ最下部のステータスペインに以下のテキストが表示されます。
Task '[email protected] Sending' reported error (0x800CCC7F): 'Establishing an encrypted
connection to your outgoing (SMTP) server failed. If this problem continues, contact
your server administrator or Internet service provider (ISP). The server responded: 454
Throttling failure: Daily message quota exceeded.'
これらのエラーがどのように処理されるかは、使用する SMTP クライアントによって異なります。エラー
コードをまったく表示しない SMTP クライアントもあります。
Amazon SES での送信承認の使用
Amazon Simple Email Service (Amazon SES) では、お客様の代わりにお客様の ID から E メールを送信す
ることを他のユーザーに承認することができます。この機能は送信承認と呼ばれ、ID のコントロールは維
持されるため、いつでもアクセス権限を変更または取り消すことができます。たとえば、ビジネスの所有
者は、送信承認を使用することで、自分のドメイン名が付いた E メールアドレスから E メールマーケティ
ング会社がマーケティングメールを送信できるようにすることができます。
他のユーザーがお客様の代わりに E メールを送信することを承認した場合、お客様が ID 所有者です。ID
所有者の場合、次のセクションを読むことをお勧めします。
• 送信承認の概要 (p. 172)
• 送信承認ポリシー (p. 173)
• 送信承認ポリシーの例 (p. 177)
API Version 2010-12-01
171
Amazon Simple Email Service 開発者ガイド
送信承認の概要
• ID 所有者のタスク (p. 182)
他のユーザーの代わりに E メールの送信を承認された場合、お客様は代理送信者です。代理送信者である
場合は、次のセクションを読むことをお勧めします。
• 送信承認の概要 (p. 172)
• 代理送信者のタスク (p. 186)
Note
IAM ポリシーを使用して Amazon SES へのアクセスを制御することもできます。IAM ポリシー
は、個々の IAM ユーザーが実行できる操作を制限しますが、送信承認ポリシーは個々の検証済み
アイデンティティの使用方法を制限します。さらに、クロスアカウントアクセスを許可できるの
は送信承認ポリシーのみです。Amazon SES で IAM ポリシーを使用する場合の詳細については、
「Amazon SES へのアクセスの制御 (p. 272)」を参照してください。
Amazon SES のさまざまなトピックに関する技術的な考察については、「Amazon SES ブログ」をご覧
ください。お問い合わせを参照あるいは発信するには「Amazon SES フォーラム」をご覧ください。
Amazon SES の送信承認の概要
このトピックでは、送信承認プロセスの概要を示し、送信承認によって Amazon SES の E メール送信機
能(送信制限や通知など)がどのように機能するかについて説明します。
次の用語を使用します。
• ID は、Amazon SES ユーザーが E メールの送信に使用する E メールアドレスまたはドメインです。
• ID 所有者は、「E メールアドレスとドメインの検証 (p. 36)」で説明された手順を使用して、ID の所有
権を検証した Amazon SES ユーザーです。
• 代理送信者は、所有していない ID から E メールを送信することを承認されたエンティティです。AWS
アカウント、AWS Identity and Access Management (IAM) ユーザー、または AWS のサービスには、こ
のクロスアカウント権限があります。
• 送信承認ポリシーは、ID にアタッチするドキュメントで、その ID を使用して送信できるユーザーとそ
の条件を指定します。
• Amazon リソースネーム(ARN)は、すべての AWS サービス間で AWS リソースを一意に識別する標
準化された方法です。送信承認の場合、リソースとは、ID 所有者が代理送信者に使用させる ID のこと
です。ARN の例は arn:aws:ses:us-west-2:123456789012:identity/example.com などです。
送信認証プロセス
送信承認は、送信承認ポリシーに基づいています。代理送信者が代わりに送信できるようにする場
合、Amazon SES コンソールまたは Amazon SES API を使用して、送信承認ポリシーを作成してポリシー
を ID に関連付けます。代理送信者がお客様の代わりに Amazon SES を通じて E メールを送信するとき、
代理送信者はリクエストまたは E メールのヘッダーで ID の ARN を渡します。
Amazon SES は、E メール送信リクエストを受け取ると、ID のポリシーを確認し(存在する場合)、代理
送信者がその ID の代わりに送信することが承認されているかどうかを判断します。代理送信者が承認され
ている場合、Amazon SES は E メールを受け入れます。承認されていない場合、Amazon SES はエラー
メッセージを返します。
次の図は、送信承認の各概念の間の全体的な関係を示しています。
API Version 2010-12-01
172
Amazon Simple Email Service 開発者ガイド
送信承認ポリシー
送信承認プロセスのステップは次のとおりです。
1. ID 所有者が、Amazon SES コンソールまたは Amazon SES API を使用して、Amazon SES で ID を検
証します。検証手順については、「E メールアドレスとドメインの検証 (p. 36)」を参照してください。
2. 代理送信者が、送信を行うエンティティの AWS アカウント ID、IAM ユーザー ARN、または AWS の
サービス名を ID 所有者に渡します。
3. ID 所有者が、Amazon SES コンソールまたは Amazon SES API を使用して送信承認ポリシーを作成
し、ポリシーを ID にアタッチします。
4. ID 所有者が代理送信者に ID の ARN を付与し、代理送信者が E メールの送信時に Amazon SES に
ARN を提供できるようにします。
5. ID 所有者と代理送信者が、Amazon SES コンソールまたは Amazon SES API を使用してバウンス、苦
情、配信通知を個別に設定します。通知のセットアップについては、「Amazon SES 通知を使用したモ
ニタリング (p. 98)」を参照してください。
6. 代理送信者は、リクエストまたは E メールのヘッダーで ID 所有者の ID の ARN を渡すことで、ID 所有
者の代わりに Amazon SES を通じて E メールを送信します。代理送信者は、Amazon SES SMTP イン
ターフェイスまたは Amazon SES API を使用して E メールを送信できます。Amazon SES は、リクエ
ストを受け取ると、ID にアタッチされたポリシーを調べ、代理送信者が指定された "From" アドレスと
"Return Path" アドレスの使用を承認されている場合は E メールを受け入れます。承認されていない場
合、Amazon SES はエラーを返し、メッセージを受け入れません。
7. 代理送信者の承認を解除するには、ID 所有者が送信承認ポリシーを編集するか、ポリシーを完全に削除
するだけです。どちらのアクションも、Amazon SES コンソールまたは Amazon SES API を使用して
実行できます。
ID 所有者または代理所有者がこれらのタスクを実行する方法の詳細については、それぞれ「ID 所有者のタ
スク (p. 182)」または「代理送信者のタスク (p. 186)」を参照してください。
E メール送信機能の属性
日次送信クォータ、バウンスと苦情、DKIM 署名、フィードバック転送などの Amazon SES E メール送信
機能に関して、代理送信者と ID 所有者の役割を理解しておくことは重要です。属性は次のとおりです。
• 送信制限—代理送信者の日次送信クォータまでの E メール数。
• バウンスと苦情—代理送信者のバウンスと苦情メトリクスまでのバウンスと苦情。したがって、代理送
信者の送信者としての評価です。
• DKIM 署名—ID 所有者が ID で Easy DKIM 署名を有効にした場合、その ID から送信されるすべての E
メール(代理送信者が送信した E メールを含む)が DKIM 署名されます。E メールが DKIM 署名される
かどうかをコントロールできるのは ID 所有者だけです。
• 通知—ID 所有者と代理送信者は、バウンス、苦情、配信に関して個別に Amazon SNS 通知を設定しま
す。ただし、E メールによるフィードバック転送は ID 所有者だけが設定できます。
• 検証—ID 所有者には、「E メールアドレスとドメインの検証 (p. 36)」の手順に従って、代理送信者に試
用を許可する E メールアドレスとドメインを自分が所有していることを検証する責任があります。代理
送信者は、送信許可用に指定された E メールアドレスまたはドメインを検証する必要はありません。
• AWS リージョン—代理送信者は、ID 所有者の ID が検証された AWS リージョンから E メールを送信す
る必要があります。代理送信者にアクセス権限を付与する承認の送信ポリシーは、そのリージョンの ID
にアタッチする必要があります。
Amazon SES の送信承認ポリシー
別の AWS アカウント、Identity Access and Management (IAM) ユーザー、または AWS のサービスがお客
様の代わりに Amazon SES を通じて E メールを送信できるようにするには、送信承認ポリシーを作成し
API Version 2010-12-01
173
Amazon Simple Email Service 開発者ガイド
送信承認ポリシー
ます。このポリシーは、所有している ID にアタッチする JSON ドキュメントです。このポリシーには、
その ID での送信を許可するユーザーとその条件が明示的にリストされます。お客様とポリシーでアクセス
権限を明示的に付与したエンティティ以外のすべての送信者は、拒否されます。ID にはポリシーをアタッ
チしないことも、1 つまたは複数のポリシーをアタッチすることもできます。さらに、複数のステートメ
ントを含む 1 つのポリシーを作成して、複数のポリシーの効果を持たせることもできます。
ポリシーは、シンプルな内容にすることも、細かくコントロールするために詳細な内容にすることもでき
ます。たとえば、example.com を所有している場合、シンプルなポリシーを記述してそのドメインから送
信するアクセス権限を AWS ID 123456789012 に付与することができます。詳細なポリシーでは、AWS ID
123456789012 が指定された日付範囲に限り、[email protected] からのみ E メールを送信できることを
指定できます。
Amazon SES 送信承認ポリシーは、E メール送信 API (SendEmail と SendRawEmail) のみに適用されま
す。このポリシーによってユーザーが AWS アカウントにアクセスできるようになることはありません。
ポリシーの構造
各送信承認ポリシーは、ID にアタッチされる JSON ドキュメントです。ポリシーには以下の項目が含まれ
ます。
• ドキュメントの最上部に記載されるポリシー全体の情報(任意)
• それぞれ 1 セットのアクセス権限を説明する 1 つ以上の個々のステートメント
各ステートメントには、1 回限りのアクセス権限についての核になる情報が含まれています。ポリシーが
複数のステートメントを含んでいる場合、Amazon SES は評価時にステートメント全体で論理 OR を適用
します。同様に、ID に複数のポリシーがアタッチされている場合、Amazon SES は評価時にポリシー全体
で論理 OR を適用します。
次の例は、"From" アドレスが marketing+.*@example.com の場合のみ、AWS ID 123456789012 に ID
example.com(アカウント 888888888888 が所有)からの E メールの送信を許可するシンプルなポリシー
を示しています。ここで、.* は送信者が marketing+ の後に追加する任意の文字列です。
{
"Id": "SampleAuthorizationPolicy",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AuthorizeMarketer",
"Effect": "Allow",
"Resource": "arn:aws:ses:us-east-1:888888888888:identity/example.com",
"Principal": {"AWS": ["123456789012"]},
"Action": ["SES:SendEmail", "SES:SendRawEmail"],
"Condition": {
"StringLike": {
"ses:FromAddress": "marketing+.*@example.com"
}
}
}
]
}
他の送信承認ポリシーの例は、「送信承認ポリシーの例 (p. 177)」を参照してください。
ポリシーの要素
このセクションでは、送信承認ポリシーに含まれている要素について説明します。まず、ポリシー全体
の要素について説明した後、その要素が含まれるステートメントにのみ適用される要素について説明しま
す。その後、ステートメントに条件を追加する方法について説明します。
API Version 2010-12-01
174
Amazon Simple Email Service 開発者ガイド
送信承認ポリシー
要素の構文の詳細については、『IAM ユーザーガイド』の「IAM ポリシー言語の文法」を参照してくださ
い。
ポリシー全体
ポリシー全体の要素として、Id と Version の 2 つがあります。次の表に、これらの要素についての情報
を示します。
名前
説明
必須
有効な値
Id
ポリシーを一意に識別します。
いいえ。
任意の文字列
Version
ポリシーアクセス言語のバー
ジョンを指定します。
いいえ。ただ
任意の文字列
し、ベストプ
ラクティスとし
て、このフィー
ルドには値
"2012-10-17"
を含めることを
お勧めします。
ステートメント
送信承認ポリシーには、少なくとも 1 つのステートメントが必要です。各ステートメントには、次の表に
示す要素を含めることができます。
名前
説明
必須
有効な値
Sid
ステートメントを一意
に識別します。
いいえ。
任意の文字列。
評価時にポリシーのス
テートメントによって
返される結果を指定し
ます。
いいえ。ただし、エ
フェクトのないステー
トメントには意味があ
りません。
"Allow" または "Deny"。
Effect
Resource
Principal
ポリシーが適用される
はい。
ID を指定します。これ
は、ID 所有者が代理送
信者に使用を承認する
E メールアドレスまたは
ドメインです。
Amazon SES コンソー
ルで指定した ID の
ARN。
ステートメントでアク
セス権限を受け取る
AWS アカウント、IAM
ユーザー、または AWS
のサービスを指定しま
す。
有効な AWS アカウン
ト ID、IAM ユーザー
ARN、または AWS の
サービス。AWS アカウ
ント ID と IAM ユーザー
ARN は "AWS" を使用し
て指定します ("AWS":
["123456789012"]、"AWS":
はい。
["arn:aws:iam::123456789012:root"]
など)。AWS サービ
ス名は "Service"
を使用して指定し
ます("Service":
["cognito-
API Version 2010-12-01
175
Amazon Simple Email Service 開発者ガイド
送信承認ポリシー
名前
説明
必須
有効な値
idp.amazonaws.com"]
など)。
IAM ユーザー ARN
の形式の例について
は、『AWS General
Reference』を参照して
ください。
Action
Condition
ステートメントが適用
される E メール送信
アクションを指定しま
す。
はい。
"ses:SendEmail"、"ses:SendRawEmail
ずれか、または両
方)。カスタムポリ
シーエディタを使用
する場合、アクショ
ンを "ses:*" に設定し
て両方の API を含め
ることもできます。
送信者が SMTP イン
ターフェイスを通じて
Amazon SES にアクセ
スする場合、少なくと
も "ses:SendRawEmail"
を選択する必要があり
ます(または、"ses:*"
を使用します)。
アクセス権限について
の制限や詳細を指定し
ます。
いいえ。
この表の後の条件につ
いての情報を参照して
ください。
条件
条件は、ステートメントのアクセス権限に関する制限のことです。ステートメントの中でも、記述が最も
詳細になるのが、この条件部分です。キーは、リクエストの日時など、アクセス制限に使用される基本項
目です。
制限は、条件とキーの両方を使用して定義します。たとえば、代理送信者が 2015 年 7 月 30 日
より後にのみ、お客様の代わりに Amazon SES にリクエストを行うことができるように制限
する場合、DateLessThan という条件を使用します。キーは aws:CurrentTime を使用し、値を
2015-07-30T00:00:00Z に設定します。
『IAM ユーザーガイド』で説明されている「利用可能なキー」にリストされた任意の AWS 全体のキーを
使用するか、Amazon SES に固有の次のいずれかのキーを使用できます。
条件キー
説明
ses:Recipients
受信者アドレスを制限します。To:、"CC"、"BCC" アドレ
スが含まれます。
ses:FromAddress
"From" アドレスを制限します。
ses:FromDisplayName
"From" 表示名として使用される文字列の内容を制限しま
す("フレンドリ名" と呼ばれることもあります)。たと
えば、"John Doe <[email protected]>" の表示名は
John Doe です。
API Version 2010-12-01
176
Amazon Simple Email Service 開発者ガイド
送信承認ポリシーの例
条件キー
ses:FeedbackAddress
説明
"Return Path" アドレス(E メールのフィードバック転送
によりバウンスや苦情を送信できるアドレス)を制限し
ます。E メールのフィードバック転送の詳細については、
「Amazon SES E メールでの通知 (p. 99)」を参照して
ください。
Amazon SES キーでは、StringEquals 条件と StringLike 条件をよく使用します。これらの条件は、大文
字小文字を区別する文字列の一致を指定するために使用します。StringLike の場合、値には、複数文字一
致のワイルドカード(*)または 1 文字一致のワイルドカード(?)を指定できます。文字列のどこにでも
含めることができます。たとえば、次の条件は、先頭に「invoicing」、末尾に「example.com」が付いた
"From" アドレスからのみ代理送信者が送信できることを指定します。
"Condition": {
"StringLike": {
"ses:FromAddress": "invoicing+.*@example.com"
}
}
Note
E メールアドレスへのアクセスを許可しない場合、ワールドカードを使用して、そのアドレス
のあらゆる形式へのアクセスを完全に禁止してください。たとえば、[email protected] か
らの送信を許可しない場合、次の条件を指定することで「"admin"@example.com」や「admin
[email protected]」などの変化形へのアクセスを禁止できます。
"Condition": {
"StringNotLike": {
"ses:FromAddress": "*admin*.example.com"
}
}
条件を指定する方法の詳細については、『IAM ユーザーガイド』の「条件」を参照してください。
ポリシーの要件
各ポリシーは、以下の要件を満たす必要があります。
• 各ポリシーには、少なくとも 1 つのステートメントが含まれている必要があります。
• 各ポリシーには、少なくとも 1 つの有効なプリンシパルが含まれている必要があります。
• 各ポリシーは、1 つのリソースを指定する必要があり、そのリソースはポリシーがアタッチされた ID の
ARN でなければなりません。
• ID 所有者は、最大 20 のポリシーにそれぞれ一意の ID を関連付けることができます。
• ポリシーは 4 KB 以下でなければなりません。
• ポリシー名は 64 文字以内でなければならず、英数字、ダッシュ、アンダースコアのみ含めることがで
きます。
Amazon SES の送信承認ポリシーの例
送信承認では、代理送信者に代理送信を許可する際の細かい条件を指定することができます。次の例は、
送信のさまざまな側面をコントロールするポリシーを記述する方法を示しています。
• 代理送信者の指定 (p. 178)
API Version 2010-12-01
177
Amazon Simple Email Service 開発者ガイド
送信承認ポリシーの例
• "From" アドレスの制限 (p. 179)
• バウンスや苦情のフィードバックの制限と送信先 (p. 179)
• 送信期間の制限 (p. 180)
• E メール送信アクションの制限 (p. 180)
• E メール送信者の表示名の制限 (p. 181)
• 複数のステートメントの使用 (p. 181)
代理送信者の指定
プリンシパル (アクセス権限を付与するエンティティ) は AWS アカウント、AWS Identity and Access
Management (IAM) ユーザー、または AWS のサービスです。次の例では、AWS アカウント ID
123456789012 に、ID example.com から送信するアクセス権限を付与します。
{
"Id": "ExampleAuthorizationPolicy",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AuthorizeAccount",
"Effect": "Allow",
"Resource": "arn:aws:ses:us-east-1:888888888888:identity/example.com",
"Principal": {"AWS": ["123456789012"]},
"Action": ["SES:SendEmail", "SES:SendRawEmail"]
}
]
}
次のポリシー例では、2 人の IAM ユーザーに、ID example.com から送信するアクセス権限を付与しま
す。IAM ユーザーは、Amazon リソースネーム (ARN) によって指定されます。
{
"Id": "ExampleAuthorizationPolicy",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AuthorizeIAMUser",
"Effect": "Allow",
"Resource": "arn:aws:ses:us-east-1:888888888888:identity/example.com",
"Principal": {"AWS": [
"arn:aws:iam::111122223333:user/John",
"arn:aws:iam::444455556666:user/Jane"
]},
"Action": ["SES:SendEmail", "SES:SendRawEmail"]
}
]
}
次のポリシー例では、Amazon Cognito ユーザーに、ID example.com から送信するアクセス権限を付与し
ます。
{
"Id": "ExampleAuthorizationPolicy",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AuthorizeService",
"Effect": "Allow",
"Resource": "arn:aws:ses:us-east-1:888888888888:identity/example.com",
API Version 2010-12-01
178
Amazon Simple Email Service 開発者ガイド
送信承認ポリシーの例
"Principal": {"Service": ["cognito-idp.amazonaws.com"]},
"Action": ["SES:SendEmail", "SES:SendRawEmail"]
}
]
}
"From" アドレスの制限
ドメイン全体を検証した場合でも、"From" アドレスを制限し、代理送信者が指定された E メール
アドレスからのみ送信できるようにすることができます。"From" アドレスを制限するには、キーで
ses:FromAddress と呼ばれる条件を設定します。次のポリシーでは、AWS アカウント ID 123456789012
が ID example.com から送信することを許可しますが、E メールアドレス [email protected] からのみ
送信できます。
{
"Id": "ExamplePolicy",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AuthorizeFromAddress",
"Effect": "Allow",
"Resource": "arn:aws:ses:us-east-1:888888888888:identity/example.com",
"Principal": {"AWS": ["123456789012"]},
"Action": ["SES:SendEmail", "SES:SendRawEmail"],
"Condition": {
"StringEquals": {
"ses:FromAddress": "[email protected]"
}
}
}
]
}
バウンスや苦情のフィードバックの制限と送信先
代理送信者がお客様の代わりに送信を行い、バウンスや苦情の通知が E メールによってお客様に転送さ
れるようにする場合、2 つの手順が必要です。1 つは、「Amazon SES E メールでの通知 (p. 99)」
の手順を使用して、ID で E メールフィードバック転送を有効にする必要があります。もう 1 つ
は、ses:FeedbackAddress キーで条件を設定することで、E メールの "Return Path" を所有している E
メールアドレスに制限する必要があります。
次の送信承認ポリシーでは、E メールの "Return Path" が [email protected] に設定されている場合
のみ、AWS アカウント ID 123456789012 が ID example.com から送信することを許可します。
{
"Id": "ExamplePolicy",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ControlReturnPath",
"Effect": "Allow",
"Resource": "arn:aws:ses:us-east-1:888888888888:identity/example.com",
"Principal": {"AWS": ["123456789012"]},
"Action": ["SES:SendEmail", "SES:SendRawEmail"],
"Condition": {
"StringEquals": {
"ses:FeedbackAddress": "[email protected]"
}
}
}
API Version 2010-12-01
179
Amazon Simple Email Service 開発者ガイド
送信承認ポリシーの例
]
}
送信期間の制限
代理送信者がお客様の代わりに送信できる日時を制限できます。たとえば、E メールキャンペーンが 2015
年 9 月に予定されている場合、次のポリシーにより、代理送信者がその月にのみお客様の代わに E メール
を送信できるようにします。
{
"Id": "ExamplePolicy",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ControlTimePeriod",
"Effect": "Allow",
"Resource": "arn:aws:ses:us-east-1:888888888888:identity/example.com",
"Principal": {"AWS": ["123456789012"]},
"Action": ["SES:SendEmail", "SES:SendRawEmail"],
"Condition": {
"DateGreaterThan": {
"aws:CurrentTime":"2015-08-31T12:00Z"
},
"DateLessThan": {
"aws:CurrentTime":"2015-10-01T12:00Z"
}
}
}
]
}
E メール送信アクションの制限
送信者が Amazon SES で E メールを送信するために使用できるアクションは、SendEmail と
SendRawEmail の 2 つです。送信者が E メールの形式をどの程度コントロールするかに応じて決定しま
す。送信承認ポリシーでは、代理送信者をこれらの 2 つのアクションのいずれかに制限できます。ただ
し、多くの ID 所有者はポリシーで両方のアクションを有効にすることで、E メール送信呼び出しの詳細を
代理送信者に任せています。
Note
代理送信者が SMTP インターフェイスを介して Amazon SES にアクセスできるようにする場
合、少なくとも SendRawEmail を選択する必要があります。
アクションを制限する必要がある場合、送信承認ポリシーにどちらかのアクションのみ含めることで制限
することができます。次の例は、アクションを SendRawEmail に制限する方法を示しています。
{
"Id": "ExamplePolicy",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ControlAction",
"Effect": "Allow",
"Resource": "arn:aws:ses:us-east-1:888888888888:identity/example.com",
"Principal": {"AWS": ["123456789012"]},
"Action": ["SES:SendRawEmail"]
}
]
}
API Version 2010-12-01
180
Amazon Simple Email Service 開発者ガイド
送信承認ポリシーの例
E メール送信者の表示名の制限
E メールクライアントによっては、実際の "From" アドレスではなく、E メール送信者の "フレ
ンドリ" 名(E メールヘッダーで指定されている場合)が表示されます。たとえば、"John Doe
<[email protected]>" の表示名は John Doe です。例として、[email protected] から E メールを送
信しますが、E メールが [email protected] ではなく「Marketing」から送信されたものとして受信者に
表示したいとします。次のポリシーでは、"From" アドレスの表示名に「Marketing」が含まれている場合
のみ、AWS アカウント ID 123456789012 が ID example.com から送信できるようにします。
{
"Id": "ExamplePolicy",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AuthorizeFromAddress",
"Effect": "Allow",
"Resource": "arn:aws:ses:us-east-1:888888888888:identity/example.com",
"Principal": {"AWS": ["123456789012"]},
"Action": ["SES:SendEmail", "SES:SendRawEmail"],
"Condition": {
"StringLike": {
"ses:FromDisplayName": "Marketing"
}
}
}
]
}
複数のステートメントの使用
複数のステートメントを使用して細かくコントロールすることができます。以下のサンプルポリシーに
は、2 つのステートメントが含まれています。最初のステートメントは、"From" アドレスとフィード
バックアドレスの両方がドメイン example.com に属する場合に限り、2 つの個々の AWS アカウントが
SendEmail API を使用して [email protected] から送信することを承認します。2 番目のステートメ
ントは、E メールの送信先がドメイン example.com に属する E メールアドレスである場合に限り、IAM
ユーザーが [email protected] から E メールを送信することを承認します。
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "AuthorizeAWS",
"Effect": "Allow",
"Resource": "arn:aws:ses:us-east-1:999999999999:identity/[email protected]",
"Principal": {
"AWS": ["111111111111", "222222222222"]
},
"Action": ["SES:SendEmail", "SES:SendRawEmail"],
"Condition": {
"StringLike": {
"ses:FromAddress": "*@example.com",
"ses:FeedbackAddress": "*@example.com"
}
}
}, {
"Sid": "AuthorizeInternal",
"Effect": "Allow",
"Resource": "arn:aws:ses:us-east-1:999999999999:identity/[email protected]",
"Principal": {
"AWS": "arn:aws:iam::333333333333:user/Jane"
},
"Action": ["SES:SendEmail", "SES:SendRawEmail"],
API Version 2010-12-01
181
Amazon Simple Email Service 開発者ガイド
ID 所有者のタスク
"Condition": {
"ForAllValues:StringLike": {
"ses:Recipients": "*@example.com"
}
}
}]
}
Amazon SES 送信承認を行うための ID 所有者のタス
ク
このセクションでは、ID 所有者としてのすべての責務について説明します。主な責務は、代理送信者に代
理送信のアクセス権限を付与する送信承認ポリシーを作成することと、代理送信者が使用する ID にその
ポリシーをアタッチすることです。また、いくつかの簡単なセットアップタスクも実行する必要がありま
す。
これらのタスクが送信承認プロセス全体のどこに当てはまるかについては、「送信承認の概要 (p. 172)」
を参照してください。
• ID の検証 (p. 182)
• 通知の設定 (p. 182)
• 代理送信者からの情報の入手 (p. 182)
• ポリシーの作成 (p. 183)
• ID 情報の代理送信者への提供 (p. 185)
• ポリシーの管理 (p. 185)
Amazon SES の送信承認を行うための ID の検証
Amazon SES 送信者と同様、代理送信者が E メールを送信する場合でも、まず E メールの送信元となる E
メールアドレスまたはドメインをお客様が所有していることを証明する必要があります。検証手順につい
ては、「E メールアドレスとドメインの検証 (p. 36)」を参照してください。
Amazon SES コンソールまたは Amazon SES GetIdentityVerificationAttributes API を使用して
[Verified Senders] リストでステータスを確認することで、E メールアドレスまたはドメインが検証済みで
あることを確認できます。
Amazon SES の送信承認に使用する ID 所有者通知の設定
代理送信者がお客様の代わりに E メールを送信する場合、それらの E メールが生成するバウンスと苦情
は、お客様ではなく代理送信者のバウンスと苦情のメトリクスに対してカウントされます。ただし、こ
のような E メール送信結果の通知を受け取りたい場合、他の ID で行っているのと同様に E メールまたは
Amazon SNS による通知を設定できます。「Amazon SES 通知を使用したモニタリング (p. 98)」の手
順に従います。
代理送信者は、使用を承認された ID に関して独自の Amazon SNS 通知を設定できますが、フィードバッ
クを E メールによって ID に直接転送できるかどうかをコントロールできるのは ID 所有者だけです。
Amazon SES の送信承認を行うための代理送信者からの情報の
入手
送信承認ポリシーは、少なくとも 1 つのプリンシパル(アクセスを許可するエンティティ)を指定する必
要があります。Amazon SES の送信承認ポリシーでは、プリンシパルは AWS アカウント、AWS Identity
and Access Management (IAM) ユーザー、または AWS のサービスです。
API Version 2010-12-01
182
Amazon Simple Email Service 開発者ガイド
ID 所有者のタスク
選択するプリンシパルの種類は自由ですが、できる限り細かくコントロールしたい場合は、代理送信者の
AWS アカウントに含まれるすべてのユーザーではなく 1 人の代理送信者だけがお客様の代わりに送信で
きるように、IAM ユーザーの設定を代理送信者に依頼してください。代理送信者が IAM ユーザーを設定す
るための情報は、『IAM ユーザーガイド』の「AWS アカウントでの IAM ユーザーの作成」にあります。
AWS アカウントまたは IAM ユーザーへのアクセスを許可するかどうかを決定したら、AWS アカウント
ID、IAM ユーザー、または AWS のサービスの Amazon リソースネーム (ARN) を代理送信者に尋ねて、
送信承認ポリシーに追加できるようにします。代理送信者には、「ID 所有者への情報提供 (p. 187)」に
あるこの情報を調べるための手順を参照してもらいます。代理送信者が AWS サービスである場合、その
サービスのドキュメントで、ポリシーで使用されるサービス名を指定している必要があります。
Amazon SES の送信承認ポリシーの作成
お客様のいずれかの ID から E メールを送信することを代理送信者に承認するには、送信承認ポリシーを
作成し、そのポリシーを ID にアタッチします。ID には、ポリシーをアタッチしないことも、1 つまたは
複数のポリシーをアタッすることもできます。ただし、各ポリシーには ID が 1 つだけ関連付けられてい
る必要があります。
Important
E メールアドレス ID にアタッチされたポリシーは、対応するドメインにアタッチされたポリ
シーより優先されます。たとえば、example.com と [email protected] を検証したとしま
す。代理送信者を許可しない example.com のポリシーを作成し、その代理送信者を許可す
る [email protected] のポリシーを作成した場合、代理送信者は E メール送信リクエストで
[email protected] の ARN を指定すると [email protected] から送信できるようになります。
送信承認ポリシーは、次のように作成できます。
• Policy Generator を使用する—Amazon SES コンソールで Policy Generator を使用してシンプルなポ
リシーを作成できます。E メールを送信可能なユーザーを指定するだけでなく、E メールを送信可能
な日時範囲、"From" アドレス、"From" の表示名、バウンスと苦情が送信されるアドレス、受信者ア
ドレス、送信元 IP に基づく条件を使用して E メール送信を制限することもできます。さらに、Policy
Generator を使用すると、シンプルなポリシーの構造を作成した後、ポリシーを編集することでカスタ
マイズすることもできます。
• カスタムポリシーを作成する - 詳細な条件を追加したり、AWS サービスをプリンシパルとして使用した
りする場合、Amazon SES コンソールまたは Amazon SES API を使用することで、カスタムポリシーを
作成して ID にアタッチすることができます。
このトピックでは、両方の方法について説明します。
Policy Generator の使用
Policy Generator を使用すると、次の手順を使用してシンプルな送信承認ポリシーを作成できます。
Policy Generator を使用してポリシーを作成するには
1.
AWS マネジメントコンソールにサインインし、https://console.aws.amazon.com/ses/ で Amazon
SES コンソールを開きます。
2.
左のナビゲーションペインの [Identity Management] で、[Email Addresses] または [Domains] を選択
します。
3.
リソースリストで、ポリシーを作成する ID を選択します。
4.
詳細ペインで、[Identity Policies] を展開し、[Create Policy]、[Policy Generator] の順に選択します。
5.
ウィザードで、次のフィールドの値を選択することでポリシーステートメントを作成します。これら
のオプションについては、「送信承認ポリシー (p. 173)」を参照してください。
• Effect—アクセスを許可する場合、[Allow] を選択します。それ以外の場合は [Deny] を選択します。
API Version 2010-12-01
183
Amazon Simple Email Service 開発者ガイド
ID 所有者のタスク
• Principals—アクセスを許可または拒否する 12 桁の AWS アカウント ID または IAM ユーザー
の ARN を入力し、[Add] を選択します。この手順を繰り返すことにより、さらにプリンシパル
を追加できます。AWS アカウント ID の例は 123456789012 です。IAM ユーザー ARN の例は
arn:aws:iam::123456789012:user/John です。
Note
ポリシーの生成ウィザードでは現在、AWS サービスプリンシパルはサポートされていませ
ん。AWS サービスプリンシパルを追加するには、カスタムポリシーを作成 (p. 184)する
必要があります。あるいは、ポリシージェネレーターで AWS アカウントまたは IAM ユー
ザープリンシパルを追加してから、そのポリシーを編集 (p. 185)する必要があります。
• Actions—このポリシーを適用する E メール送信アクセスを選択します。通常、ID 所有者は両方の
オプションを選択し、代理送信者が E メール送信の実装方法を自由に選択できるようにします。詳
細については、「ステートメント (p. 175)」を参照してください。
6.
(任意)ポリシーに制限を追加する場合、[Add Conditions] を選択し、次の情報を選択します。
• Key—これは、アクセス制限に使用される基本項目です。Policy Generatorでは、Amazon SES 固有
のキーまたは使用頻度の少し低い AWS 全体のキー(現在時刻と送信元 IP)を選択できます。詳細
については、「条件 (p. 176)」を参照してください。「利用可能なキー」にリストされているより
高度な AWS 全体のキーを指定する場合、ポリシーを作成後に編集できます。
• Condition—これは、指定する条件の種類です。たとえば、文字列条件、数値条件、日時条件などが
あります。条件のリストについては、『IAM ユーザーガイド』の「条件の種類」を参照してくださ
い。
• Value—これは、条件に対してテストされる値です。例については、「送信承認ポリシーの
例 (p. 177)」のポリシーを参照してください。
キー、条件、値を選択した後、[Add Condition] を選択します。条件が [Conditions] リストに表示され
ます。リストの条件の横にある [Remove] を選択すると、条件を削除できます。[Add Conditions] をも
う一度選択すると、別の条件を追加できます。
7.
条件の追加が終わったら(追加する場合)、[Add Statement] を選択します。ステートメントが
[Statements] リストに表示されます。ここでは、ステートメントを選択して編集または削除すること
ができます。ステップ 5~7 を繰り返すことでステートメントを追加できます。
8.
ステートメントの追加が完了したら、[Next] を選択します。
9.
[Edit Policy] ダイアログボックスで、ポリシーを確認して必要に応じて編集し、[Apply Policy] を選択
します。
カスタムポリシーの作成
カスタムポリシーを作成して ID にアタッチする場合、次のオプションがあります。
• Amazon SES API を使用する—「Amazon Simple Email Service API Reference」で説明されている
PutIdentityPolicy API を使用することで、テキストエディタでポリシーを作成、ポリシーを ID にア
タッチします。
• Amazon SES コンソールを使用する—テキストエディタでポリシーを作成し、Amazon SES コンソール
でカスタムポリシーエディタに貼り付けることで ID にアタッチします。以下の手順では、この方法につ
いて説明します。
カスタムポリシーエディタを使用してカスタムポリシーを作成するには
1.
AWS マネジメントコンソールにサインインし、https://console.aws.amazon.com/ses/ で Amazon
SES コンソールを開きます。
2.
左のナビゲーションペインの [Identity Management] で、[Email Addresses] または [Domains] を選択
します。
API Version 2010-12-01
184
Amazon Simple Email Service 開発者ガイド
ID 所有者のタスク
3.
リソースリストで、ポリシーを作成する ID を選択します。
4.
詳細ペインで、[Identity Policies] を展開し、[Create Policy]、[Custom Policy] の順に選択します。
5.
[Edit Policy] ペインで、ポリシーのテキストを貼り付けて、必要に応じて編集します。
6.
[Apply Policy] を選択します。
Amazon SES の送信承認に使用する ID 情報の代理送信者への提
供
送信承認ポリシーを作成して ID にアタッチしたら、代理送信者に ID の Amazon リソースネーム(ARN)
を提供します。代理送信者は、E メール送信操作または E メールのヘッダーで ARN を Amazon SES に渡
します。
次の手順を使用すると、ID の ARN を調べることができます。
ID の ARN を調べるには
1.
AWS マネジメントコンソールにサインインし、https://console.aws.amazon.com/ses/ で Amazon
SES コンソールを開きます。
2.
左のナビゲーションペインの [Identity Management] で、[Email Addresses] または [Domains] を選択
します。
3.
リソースリストで、送信承認ポリシーをアタッチした ID を選択します。
4.
詳細ペインの上部にある [Identity ARN] の後に、ID の ARN があります。arn:aws:ses:useast-1:123456789012:identity/[email protected] のような内容です。ARN 全体をコピーし、代理送
信者に提供します。
Amazon SES の送信承認ポリシーの管理
「ポリシーの作成 (p. 183)」で説明したポリシーの作成と ID へのアタッチに加えて、次のセクションで
説明するように ID のポリシーを編集、削除、リスト、取得することができます。
Note
アクセス権限を取り消すには、ポリシーを編集または削除します。
ポリシーの編集
ポリシーを編集する最も簡単な方法は、Amazon SES コンソールを使用することです。代わりに Amazon
SES API を使用する場合、GetIdentityPolicies API を使用してポリシーを取得し、テキストエディタを
使用してポリシーを編集した後、PutIdentityPolicy API を使用して古いポリシーを上書きできます。こ
れらのアクションについては、「Amazon Simple Email Service API Reference」で説明されています。
以下の手順では、Amazon SES コンソールを使用してポリシーを編集する方法を示します。
Amazon SES コンソールを使用してポリシーを編集するには
1.
AWS マネジメントコンソールにサインインし、https://console.aws.amazon.com/ses/ で Amazon
SES コンソールを開きます。
2.
左のナビゲーションペインの [Identity Management] で、[Email Addresses] または [Domains] を選択
します。
3.
リソースリストで、編集するポリシーに関連付けられた ID を選択します。
4.
詳細ペインで、[Identity Policies] を展開して [Identity Policy] リストで目的のポリシーを見つけ、[Edit
Policy] を選択します。
API Version 2010-12-01
185
Amazon Simple Email Service 開発者ガイド
代理送信者のタスク
5.
[Edit Policy] ペインで、ポリシーを編集して [Apply Policy] を選択します。
6.
[Overwrite Existing Policy] ダイアログボックスで、[Overwrite] を選択します。
ポリシーの削除
ポリシーを削除するだけで、アクセス権限をいつでも取り消すことができます。「Amazon Simple Email
Service API Reference」で説明されているように DeleteIdentityPolicy API を使用してポリシーを削除
できます。または、次の手順で説明するように Amazon SES コンソールを使用できます。
Important
ポリシーを削除すると、元に戻す方法はありません。ポリシーを削除する前に、テキストファイ
ルにポリシーをコピーアンドペーストして、ポリシーをバックアップすることをお勧めします。
Amazon SES コンソールを使用してポリシーを削除するには
1.
AWS マネジメントコンソールにサインインし、https://console.aws.amazon.com/ses/ で Amazon
SES コンソールを開きます。
2.
左のナビゲーションペインの [Identity Management] で、[Email Addresses] または [Domains] を選択
します。
3.
リソースリストで、削除するポリシーに関連付けられた ID を選択します。
4.
詳細ペインで、[Identity Policies] を展開して削除するポリシーを見つけ、[Remove Policy] を選択しま
す。
5.
[Remove Policy] ダイアログボックスで、[Yes, Remove Policy] を選択します。
ポリシーのリストと取得
「Amazon Simple Email Service API Reference」で説明されているように ListIdentityPolicies API を
使用することで、ID にアタッチされたポリシーをリストできます。GetIdentityPolicies API を使用する
ことでポリシー自体を取得することもできます。
次の手順で説明するように、これらの操作は Amazon SES コンソールで一緒に実行できます。
Amazon SES コンソールを使用して、ID にアタッチされているポリシーをリストして表示するに
は
1.
AWS マネジメントコンソールにサインインし、https://console.aws.amazon.com/ses/ で Amazon
SES コンソールを開きます。
2.
左のナビゲーションペインの [Identity Management] で、[Email Addresses] または [Domains] を選択
します。
3.
リソースリストで、ポリシーを表示する ID を選択します。
4.
詳細ペインで、[Identity Policies] を展開します。ポリシーのリストが表示されます。
5.
[Identity Policy] リストで表示するポリシーを見つけ、[Show Policy] を選択します。
6.
ポリシーの表示が完了したら、[Show Policy] ダイアログボックスを閉じます。
Amazon SES の送信承認を行うための代理送信者のタ
スク
代理送信者は、クロスアカウント E メールを送信します。つまり、自分が所有していないが使用を承認さ
れた ID の代わりに E メールを送信します。ID 所有者の代わりに送信しますが、バウンスと苦情は自分の
バウンスと苦情のメトリクスに対してカウントされし、E メールは自分の送信クォータに対してカウント
API Version 2010-12-01
186
Amazon Simple Email Service 開発者ガイド
代理送信者のタスク
されます。ID 所有者の E メールを送信するために送信制限の増加が必要になった場合は、それをリクエス
トする責任もあります。
代理送信者には、このセクションで説明するタスクを行う責任があります。これらのタスクが送信承認プ
ロセス全体のどこに当てはまるかについては、「送信承認の概要 (p. 172)」を参照してください。
• ID 所有者への情報提供 (p. 187)
• 代理送信者通知の使用 (p. 187)
• ID 所有者の E メールの送信 (p. 190)
Amazon SES の送信承認を行うための ID 所有者への情報提供
代理送信者は、送信を行う AWS アカウント ID または AWS Identity and Access Management (IAM) ユー
ザーの Amazon リソースネーム (ARN) を ID 所有者に提供する必要があります。この情報は、次の手順を
使用して確認できます。
IAM ユーザーの ARN を確認するには
1.
2.
3.
AWS マネジメントコンソールにサインインして、https://console.aws.amazon.com/iam/ から IAM コ
ンソールを開きます。
左のナビゲーションペインで、[Users] を選択します。
リソースリストで、ユーザー名を選択します。[Summary] セクションに ARN が表示されます。ARN
は arn:aws:iam::123456789012:user/John のような内容です。
AWS アカウント ID を確認するには
1.
https://console.aws.amazon.com/billing/home?#/account に直接移動できます。または、https://
console.aws.amazon.com/ で AWS マネジメントコンソールにアクセスすることで移動することもで
きます。上部のバーで、名前を選択し、[My Account] を選択します。
2.
[Account Settings] を展開します。AWS アカウント ID はこのセクションの上部にあります。
Amazon SES の送信承認を行うための代理送信者通知の使用
代理送信者は、バウンス、苦情、配信の通知を受け取ることができるように Amazon Simple Notification
Service (Amazon SNS) を設定できます。通知の形式と内容については、「Amazon SNS を通じた
Amazon SES 通知 (p. 101)」を参照してください。「Amazon SES E メールでの通知 (p. 99)」で説明
されているように、E メールフィードバック転送により通知を受け取ることを選択できるのは、ID 所有者
だけです。
Important
代理送信者の場合、バウンスと苦情は自分のバウンスと苦情のメトリクスに対してカウントされ
ます。バウンス率や苦情率が高くなると、アカウントがシャットダウンされる事態を招きかね
ません。したがって、通知を設定した後、通知を監視して、バウンスや苦情が発生している受取
人のアドレスをメーリングリストから削除するためのプロセスを備えてください。詳細について
は、「バウンスと苦情の処理 (p. 202)」を参照してください。
バウンス、苦情、配信の通知には、Amazon SNS の標準レートが課金されます。詳細について
は、Amazon SNS 料金表ページを参照してください。
次のセクションでは、クロスアカウント ID 通知を管理する方法を示します。
• 通知設定の実行 (p. 188)
• 通知設定の編集 (p. 188)
• 通知設定の参照 (p. 189)
API Version 2010-12-01
187
Amazon Simple Email Service 開発者ガイド
代理送信者のタスク
• 通知設定の削除 (p. 189)
Amazon SES のクロスアカウント ID 通知設定の実行
通知を設定する前に、ID 所有者によって使用が承認されており、通知を設定する ID の Amazon リ
ソースネーム(ARN)を知っておく必要があります。たとえば、ID [email protected] の ARN は
arn:aws:ses:us-east-1:123456789012:identity/[email protected] のようになります。ID 所有者から ID の
ARN が提供されていない場合、「ID 情報の代理送信者への提供 (p. 185)」の手順を参照してもらってく
ださい。
通知を設定する最も簡単な方法は、Amazon SES コンソールを使用することです。代わりに Amazon
SES API を使用する場合、SetIdentityNotificationTopic API を使用し、ID の ARN を Identity パ
ラメータとして渡すことができます。このアクションについては、「Amazon Simple Email Service API
Reference」で説明されています。次の手順は、Amazon SES コンソールを使用して通知をセットアップ
する方法を示しています。
Amazon SES コンソールを使用して Amazon SNS のバウンス、苦情、配信の通知を設定するには
1.
2.
AWS マネジメントコンソールにサインインし、https://console.aws.amazon.com/ses/ で Amazon
SES コンソールを開きます。
左のナビゲーションペインで、[Cross-Account Notifications] を選択します。
3.
[Add Notification Config] を選択します。
4.
[Edit Notification Configuration] ダイアログボックスで、ID 所有者によって使用が承認されており、通
知を設定する ID の ARN を入力します。現在ログインしているアカウントに属する ID は使用できま
せん。自分の ID で通知を設定する場合は、「Amazon SES の Amazon SNS 通知の設定 (p. 101)」
を参照してください。
バウンス、苦情、配信に使用する既存の Amazon SNS トピックを指定するか、新しい Amazon SNS
トピックを作成します。
5.
Important
Amazon SES 通知に使用する Amazon SNS トピックは、Amazon SES を使用するのと同じ
AWS リージョン内である必要があります。
6.
バウンス、苦情、配信の通知を同じ Amazon SNS トピックに発行するか、異なる Amazon SNS ト
ピックに発行するかは選択可能です。所有していない Amazon SNS トピックを使用する場合、そのト
ピックの所有者が、そのトピックでの SNS:Publish アクションの呼び出しをお客様のアカウントに許
可する Amazon SNS アクセスポリシーを設定する必要があります。IAM ポリシーを使用して Amazon
SNS トピックへのアクセスをコントロールする方法については、「Amazon SNS トピックへのアクセ
スの管理」を参照してください。
[Save Config] を選択して通知設定を保存します。変更が有効になるまでに数分かかることがありま
す。
設定の完了後は、バウンス、苦情、配信の通知が Amazon SNS トピックに送られるようになります。
これらの通知は、「Amazon SES への Amazon SNS 通知のコンテンツ (p. 103)」で説明されている
構造に従ったものになります。
Amazon SES のクロスアカウント通知設定の編集
通知設定を編集する最も簡単な方法は、Amazon SES コンソールを使用することです。代わりに Amazon
SES API を使用する場合、SetIdentityNotificationTopic API を使用し、ID の ARN を Identity パ
ラメータとして渡すことができます。このアクションについては、「Amazon Simple Email Service API
Reference」で説明されています。
次の手順は、Amazon SES コンソールを使用してクロスアカウント通知設定を編集する方法を示していま
す。
API Version 2010-12-01
188
Amazon Simple Email Service 開発者ガイド
代理送信者のタスク
Amazon SES コンソールを使用してクロスアカウント通知設定を編集するには
1.
AWS マネジメントコンソールにサインインし、https://console.aws.amazon.com/ses/ で Amazon
SES コンソールを開きます。
2.
左のナビゲーションペインで、[Cross-Account Notifications] を選択します。
通知を設定したクロスアカウント ID は、[Cross-Account Notifications] 詳細ペインにリストされま
す。
3.
通知設定を表示する ID の ARN を選択します。
4.
通知設定を編集し、[Save Config] を選択します。
Note
すべての通知を [No SNS Topic] に設定することは、ID の通知設定を完全に削除するのと
同じです。この場合、クロスアカウント ID の ARN は、Amazon SES コンソールのクロス
アカウント ID ARN のリストに表示されなくなります。これは、その ID で送信を続けるこ
とができなくなるということではありません。バウンス、苦情、配信の通知を受け取る設
定ではなくなったという意味にすぎません。通知を再度有効にする場合、「通知設定の実
行 (p. 188)」で説明されている通知設定手順を繰り返す必要があります。
Amazon SES のクロスアカウント ID 通知の参照
通知設定を参照する最も簡単な方法は、Amazon SES コンソールを使用することです。代わりに Amazon
SES API を使用する場合、GetIdentityNotificationAttributes API を使用し、ID の ARN を Identity
パラメータとして渡すことができます。このアクションについては、「Amazon Simple Email Service API
Reference」で説明されています。
Note
クロスアカウント ID リストに表示されるクロスアカウント ID は、「通知設定の実行 (p. 188)」
で説明されている手順を使用して通知を設定した ID だけです。
Amazon SES コンソールを使用してクロスアカウント通知設定を参照するには
1.
AWS マネジメントコンソールにサインインし、https://console.aws.amazon.com/ses/ で Amazon
SES コンソールを開きます。
2.
左のナビゲーションペインで、[Cross-Account Notifications] を選択します。
通知を設定したクロスアカウント ID は、[Cross-Account Notifications] 詳細ペインにリストされま
す。
3.
ID の ARN を選択します。
[Edit Configuration Notification] ダイアログボックスに ID 設定が表示されます。
Amazon SES のクロスアカウント ID 通知設定の削除
通知設定を削除する最も簡単な方法は、Amazon SES コンソールを使用することです。代わりに Amazon
SES API を使用する場合、SetIdentityNotificationTopic API を使用して ID の ARN を Identity パ
ラメータとして渡し、SnsTopic パラメータに null を渡すことができます。このアクションについては、
「Amazon Simple Email Service API Reference」で説明されています。通知設定を完全に削除するには、
設定された通知の種類(バウンス、苦情、配信)ごとにこの操作を実行する必要があります。
Note
通知設定を削除すると、クロスアカウント ID の ARN が Amazon SES コンソールのクロスアカ
ウント ID ARN のリストに表示されなくなります。これは、その ID で送信を続けることができな
くなるということではありません。バウンス、苦情、配信の通知を受け取る設定ではなくなった
API Version 2010-12-01
189
Amazon Simple Email Service 開発者ガイド
代理送信者のタスク
という意味にすぎません。通知を再度有効にする場合、「通知設定の実行 (p. 188)」で説明され
ている通知設定手順を繰り返す必要があります。
次の手順は、Amazon SES コンソールを使用してクロスアカウント通知設定を削除する方法を示していま
す。
Amazon SES コンソールを使用してクロスアカウント通知設定を削除するには
1.
AWS マネジメントコンソールにサインインし、https://console.aws.amazon.com/ses/ で Amazon
SES コンソールを開きます。
2.
左のナビゲーションペインで、[Cross-Account Notifications] を選択します。
通知を設定したクロスアカウント ID は、[Cross-Account Notifications] 詳細ペインにリストされま
す。
3.
削除するクロス ID の左側にあるボックスをオンにし、[Remove] を選択します。
4.
[Remove Cross-Account Notification Config] ダイアログボックスで、[Delete Notification config] を選
択します。
クロスアカウント ID の ARN が、クロスアカウント ID ARN のリストに表示されなくなります。これ
は、その ID で送信できないことを意味するのではなく、通知の設定が解除されていることを意味する
にすぎません。
Amazon SES の送信承認時の ID 所有者の E メールの送信
代理送信者とは、他の Amazon SES 送信者と同じ方法で E メールを送信しますが、ID 所有者により使用
を承認された ID の ARN を指定する点のみ異なります。E メールを送信するために Amazon SES を呼び
出すと、Amazon SES は送信を承認するポリシーが指定された ID にあるかどうかを確認します。
E メールを送信するときに ID の ARN を指定する方法はいくつかあります。使用できる方法は、Amazon
SES API(SendEmail または SendRawEmail)と Amazon SES SMTP インターフェイスのどちらを使用し
て E メールを送信するかによって異なります。
Important
ID 所有者の代わりに E メールを正常に送信するには、ID が検証された AWS リージョンの
Amazon SES エンドポイントに接続する必要があります。アクセス権限を付与する送信承認ポリ
シーは、そのリージョンの ID にアタッチする必要があります。
Amazon SES API を使用する
すべての Amazon SES E メール送信者と同様に、Amazon SES API を介して Amazon SES にアクセス
した場合(HTTPS 経由で直接、または AWS SDK を通じて間接的)、2 つの E メール送信アクション
(SendEmail と SendRawEmail)のいずれかを選択できます。これらの API の詳細は「Amazon Simple
Email Service API Reference」で説明されていますが、ここでは送信承認パラメータの概要を示します。
SendRawEmail
SendRawEmail を使用して E メールの形式をコントロールできるようにする場合、次の 2 つの方法のいず
れかを使用してクロスアカウント ID を指定できます。
• オプションパラメータを SendRawEmail API に渡す—これらのパラメータは次のとおりです。
パラメータ
説明
SourceArn
SendRawEmail の Source パラメータで指定された E メー
ルアドレスから送信することを許可する送信承認ポリ
シーに関連付けられた ID の ARN。
API Version 2010-12-01
190
Amazon Simple Email Service 開発者ガイド
代理送信者のタスク
パラメータ
説明
Note
最も一般的なユースケースの場合、SourceArn
を指定しますが、FromArn または
ReturnPathArn を指定しないことをお勧めし
ます。SourceArn のみ指定した場合、Amazon
SES は "From" アドレスと "Return Path" アドレ
スをそのまま SourceArn で指定された ID に設
定します。
raw E メールのヘッダーで特定の "From" アドレスを指定
することを許可する送信承認ポリシーに関連付けられた
ID の ARN。
FromArn
SendRawEmail の ReturnPath パラメータで指定された E
ReturnPathArn
メールアドレスを使用することを許可する送信承認ポリ
シーに関連付けられた ID の ARN。
• E メールに X ヘッダーを含める— X ヘッダーは、標準的な E メールヘッダーに加えて使用できるカスタ
ムヘッダーです。Amazon SES では、送信承認パラメータを指定するために 3 つの X ヘッダーを使用で
きます。X ヘッダーのインスタンスを複数含めた場合、Amazon SES は最初のインスタンスを使用しま
す。どのような場合も、Amazon SES は送信前に E メールからすべての X ヘッダーを削除します。次
の表は、送信承認時に Amazon SES で使用できる 3 つの X ヘッダーを示しています。
Important
これらの X ヘッダーは、E メールの送信前に Amazon SES により削除されるため、DKIM 署名
には含めないでください。
X ヘッダー
説明
X-SES-SOURCE-ARN
SourceArn に対応します。
X-SES-FROM-ARN
FromArn に対応します。
X-SES-RETURN-PATH-ARN
ReturnPathArn に対応します。
次の例は、送信認証 X ヘッダーを含む E メールを示しています。
X-SES-SOURCE-ARN: arn:aws:ses:us-west-2:123456789012:identity/example.com
X-SES-FROM-ARN: arn:aws:ses:us-west-2:123456789012:identity/example.com
X-SES-RETURN-PATH-ARN: arn:aws:ses:us-west-2:123456789012:identity/example.com
From: [email protected]
To: [email protected]
Return-Path: [email protected]
Subject: subject
Content-Type: multipart/alternative;
boundary="----=_boundary"
------=_boundary
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
body
------=_boundary
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit
API Version 2010-12-01
191
Amazon Simple Email Service 開発者ガイド
専用 IP アドレスの使用
body
------=_boundary--
SendEmail
SendEmail を使用して E メールの形式が Amazon SES により設定されるようにする場合、以下のオプ
ションパラメータを渡すことでクロスアカウント ID を指定できます。SendEmail を使用すると、Amazon
SES によりメッセージが組み立てられるため、X ヘッダーは使用できません。
パラメータ
説明
SourceArn
SendRawEmail の Source パラメータで指定された E メー
ReturnPathArn
SendRawEmail の ReturnPath パラメータで指定された E
ルアドレスから送信することを許可する送信承認ポリシー
に関連付けられた ID の ARN。
メールアドレスを使用することを許可する送信承認ポリ
シーに関連付けられた ID の ARN。
Amazon SES SMTP インターフェイスの使用
Amazon SES SMTP インターフェイスを使用してクロスアカウント送信を行う場合、使用できる方法は前
述の X ヘッダー SendRawEmail を含める方法だけです。
Amazon SES での専用 IP アドレスの使用
Amazon SES のデフォルトでは、Amazon SES の他のお客様と共有する IP アドレス (IP) から E メールが
送信されます。追加料金で、お客様専用の IP を予約できます。このトピックでは、専用 IP のユースケー
ス、共有 IP と専用 IP のトレードオフ、専用 IP のリクエスト方法について、また、専用 IP を最大数使用
するまでウォームアップする方法について説明します。
このトピックは、以下のセクションで構成されます。
• 専用 IP のユースケース (p. 192)
• 専用 IP と共有 IP のトレードオフ (p. 193)
• 専用 IP をリクエストおよび解放する方法 (p. 194)
• 専用 IP のウォームアップ方法 (p. 195)
専用 IP のユースケース
専用 IP を選択することで、変更されることのない既知の IP アドレスのセットを E メールの制御に使用で
きます。専用 IP は以下のユースケースに適しています。
• マーケティングメールから、注文の確認やパスワードの再設定など、トランザクションメールの評価を
分離する必要がある。
• 特定の顧客、プログラム、エンゲージメントメトリクスに関する E メールストリームの評価を分離する
必要がある。
• 認定目的またはセキュリティ上の理由から、特定の IP アドレスを認識している必要がある。たとえば、
特定の IP セットから診断または運用メールを送信し、他のすべての E メールを拒否する場合です。
API Version 2010-12-01
192
Amazon Simple Email Service 開発者ガイド
専用 IP と共有 IP のトレードオフ
専用 IP と共有 IP のトレードオフ
専用 IP、共有 IP、それらの混在のどれを使用するかを選択するときは、以下のトレードオフを検討してく
ださい。
Cost
共有 IP は Amazon SES に含まれています。専用 IP には追加料金がかかります。価格の情報については、
「Amazon SES 料金表ページ」を参照してください。
E メールの量
共有 IP を使用する場合、量に制限なく E メールを送信できます。専用 IP に適した候補となるように、通
常は日次送信クォータ (p. 167)を 1 日あたり E メール 150,000 通以上とすることが求められます。既存
の日次送信クォータが 1 日あたり E メール 150,000 通未満の場合、専用 IP リクエストにお客様のユース
ケースを詳細に記入していただければ、同じケース内での送信クォータの増加を検討いたします。専用 IP
が許可された場合、専用 IP をウォームアップ (p. 195)した後、常に専用 IP ごとに 1 日あたり E メール
を 50,000 通以上送信する必要があります。これにより、IP の良い評価を維持することができます。
(IP の評価ではなく) メールを送信した IP アドレスに基づいてメールの許可と拒否を決定している、小規
模で明確に定義された受信者のリストにのみメールを送信する送信者には、送信クォータ要件の例外を認
めることがあります。
送信パターン
専用 IP を使用する場合、「専用 IP のウォームアップ方法 (p. 195)」で説明しているように、送信を徐々
に増やし、持続的で一貫した送信パターンを維持することをお勧めします。共有 IP を使用する場合、送信
はいつでも増減できます。
評価の分離
専用 IP を使用する場合、お客様の特定の E メールストリームの評価を分離できるだけでなく、お客様の
メール送信の評価を Amazon SES の他のお客様のメール送信から分離することもできます。ただしこれ
は、IP の評価の維持に対して最終的な責任がお客様にあることを意味します。IP の評価が主に、お客様が
送信する E メールによって決まるためです。
使用する IP のタイプにかかわらず、E メールの送信が標準的なベストプラクティスに従っていることを
確認する必要があります。ベストプラクティスについては、「受取人リストの取得と管理 (p. 201)」、
「バウンスと苦情の処理 (p. 202)」、「Amazon SES を使用する際の配信可能性の向上 (p. 200)」、
「Amazon Simple Email Service の E メール送信のベストプラクティスホワイトペーパー」を参照してく
ださい。
IP アドレスの認識
専用 IP を使用する場合、Amazon SES コンソールの [Dedicated IPs] ページで、E メールの送信に使用
される IP の値を確認でき、それらのアドレスは変更されることはありません。共有 IP を使用する場
合、Amazon SES によって E メールの送信に使用される IP アドレスは既知ではなく、いつでも変更され
ることがあります。
Amazon SES のエンゲージメント
共有 IP はデフォルトのオプションであるため、その使用にあたって連絡は不要です。専用 IP をリクエ
ストまたは解放するには、「専用 IP をリクエストおよび解放する方法 (p. 194)」で説明しているよう
に、SES Sending Limits Increase case を開く必要があります。
API Version 2010-12-01
193
Amazon Simple Email Service 開発者ガイド
専用 IP をリクエストおよび解放する方法
専用 IP をリクエストおよび解放する方法
このセクションでは、専用 IP をリクエストおよび解放する方法について説明します。このプロセスでは、
サポートセンターで SES Sending Limits Increase case を送信します。その結果に応じて、関連する手続
きの説明で示しているように、いくつかの追加の手順の実行が必要になる場合があります。
専用 IP のリクエスト
以下の手順では、専用 IP を初めてリクエストする方法と、追加の専用 IP をリクエストする方法を示しま
す。Amazon SES で E メールを送信するときに、"Maximum sending rate exceeded" というエラーが発生
するようになると、追加の専用 IP をリクエストする必要があるとわかります。
専用 IP を初めてリクエストするには
1.
AWS マネジメントコンソールにサインインし、サポートセンターで SES Sending Limits Increase
case を開きます。Amazon SES コンソールの [Dedicated IPs] ページを使用しても、このリンクにア
クセスできます。
2.
ケース送信フォームでリージョンを選択したら、[Desired Maximum Send Rate] を選択し、専用 IP で
使用する予定の 1 秒あたりの E メール数を入力します。
3.
[Use Case Description] で、専用 IP のリクエストであることを伝え、専用 IP での 1 日あたりの予想送
信量など、ユースケースについてできる限り詳しく説明します。専用 IP の使用が妥当だと判断したお
客様には、そのユースケースに最適な専用 IP 数をお知らせします。
4.
リクエストが評価された後、同ケース内で返信を受け取ります。この返信は、リクエストの結果を知
らせるものや、リクエストに関する追加の情報を求めるものとなります。現在の日次送信クォータが
最小要件の 1 日あたり E メール 150,000 通を下回る場合、同じケース内でクォータの増加を検討いた
します。
5.
同ケース内で専用 IP が関連付けられたことを通知する返信を受け取った場合は、以下の手順を実行し
ます。
a.
別の AWS アカウントを開きます。これは専用の IP で使用するアカウントです。
b.
この別のアカウントで、専用 IP を使用して送信するように Amazon SES の設定 (通知、確認済み
ID など) を定義します。新しいアカウント用に送信制限の引き上げケースを別途提出する必要は
ありません。これは、新しいアカウントの送信制限は以前のアカウントの送信制限から自動的に
引き継がれるためです。
c.
新しいアカウントの AWS アカウント ID を見つけます。AWS アカウント ID を見つけるには、新
しいアカウントにログインしていることを確認してから、https://console.aws.amazon.com/billing/
home?#/account にアクセスします。
d.
新しい AWS アカウントからログアウトし、古いアカウントにサインインし直します。
e.
サポートセンターに移動し、専用 IP 数の引き上げケース内での返信で、新しいアカウントの
AWS アカウント ID を入力します。
f.
同ケース内で、専用 IP が新しいアカウントに関連付けられたことを確認する返信を受け取りま
す。
g.
「専用 IP のウォームアップ方法 (p. 195)」で説明しているように、専用 IP をウォーミングアッ
プします。
追加の専用 IP をリクエストするには
1.
専用 IP に使用するアカウントで AWS マネジメントコンソールにサインインし、サポートセンターで
SES Sending Limits Increase case を開きます。Amazon SES コンソールの [Dedicated IPs] ページを
使用しても、このリンクにアクセスできます。
2.
ケース送信フォームでリージョンを選択したら、[Desired Maximum Send Rate] を選択し、すべての
専用 IP で使用する予定の 1 秒あたりの E メール数を入力します。
API Version 2010-12-01
194
Amazon Simple Email Service 開発者ガイド
専用 IP のウォームアップ方法
3.
[Use Case Description] で、追加の専用 IP のリクエストであることを伝え、その理由を説明して、す
べての専用 IP での 1 日あたりの予想送信量を入力します。追加の専用 IP の使用が必要だと判断した
お客様には、そのユースケースに最適な追加の専用 IP 数をお知らせします。
4.
リクエストが評価された後、同ケース内で返信を受け取ります。この返信は、リクエストの結果を知
らせるものや、リクエストに関する追加の情報を求めるものとなります。リクエストが承認された場
合、専用 IP が新しいアカウントに関連付けられたことを確認する返信を受け取ります。
5.
リクエストが承認された場合、新しい専用 IP をウォームアップする必要はありません。これ
は、Amazon SES によって送信がすべての専用 IP 間で配分されるためです。
専用 IP を解放する
専用 IP を解放するには、以下の手順を実行します。
専用 IP を解放するには
1.
専用 IP に使用するアカウントで AWS マネジメントコンソールにサインインし、サポートセンターで
SES Sending Limits Increase case を開きます。Amazon SES コンソールの [Dedicated IPs] ページを
使用しても、このリンクにアクセスできます。
2.
ケース送信フォームでリージョンを選択したら、[Desired Maximum Send Rate] を選択し、任意の数
を入力します (ユースケースの説明で、解放する専用 IP の数を指定します)。
3.
[Use Case Description] で、専用 IP の解放リクエストであることを伝え、解放する専用 IP の数を入力
します。
4.
リクエストが評価された後、同ケース内で、指定した数の専用 IP を解放してもよいかを確認する返信
を受け取ります。
5.
同ケース内で、専用の IP が解放されたことを確認する返信を受け取ります。
専用 IP のウォームアップ方法
ISP は、E メールを受け入れるか拒否するかを判断するとき、その送信元の IP の評価を検討します。IP の
評価に影響する要因の 1 つは、IP に大量の高品質 E メールの送信履歴があるかどうかです。送信履歴が
ない新しい IP から E メールを受信した ISP は、その E メールの受け入れにより慎重になる傾向がありま
す。この傾向は、スロットリング (一時的なソフト) バウンスとして現れますが、拒否 (ハード) バウンスと
いう結果になることもあります。さらに、その IP を使用して高品質 E メールの安定したストリームを送
信することで ISP から良好な評価を得られるまで、その IP からの E メールは迷惑メールフォルダーに振
り分けられます。
したがって、新しい専用 IP を最大数使用するまで、その IP を使用した送信を徐々に増やす必要がありま
す。このプロセスは IP のウォームアップと呼ばれます。以下の 3 つの原則を使用して IP をウォームアッ
プします。
1. 少量で開始する。
2. 結果を測定する。
3. 変更を加える。
最適な IP ウォームアップ時間は ISP と受取人によって異なります。何らかのレベルの良好な評価を得る
には、ISP によって異なりますが、最低 14 日はかかり、最大 6 週間かかることがほとんどです。新しい
IP をウォームアップするときは、お客様へのエンゲージメントの高いユーザーに E メールを送信して、苦
情率が低いことを確認する必要があります。
最良の結果を得るには、バウンスメッセージを慎重に調べて、IP ブロッキングまたはスロットリングレス
ポンスを多数受け取っている場合は、E メールの量を減らします。バウンスのモニタリング方法について
は、「Amazon SES 送信アクティビティのモニタリング (p. 96)」を参照してください。
API Version 2010-12-01
195
Amazon Simple Email Service 開発者ガイド
専用 IP のウォームアップ方法
以下に示しているのは、ウォームアップ計画の例です。この計画では、1 日に 100 万件のメッセージを送
信することを目標としており、45 日間にわたるリニアウォームアップを実施することを前提としていま
す。
日。
E メール数
送信率
1
22,222
2.22%
2
44,444
4.44%
3
66,667
6.67%
4
88,889
8.89%
5
111,111
11.11%
6
133,333
13.33%
7
155,556
15.56%
8
177,778
17.78%
9
200,000 件の
20.00%
10
222,222
22.22%
11
244,444
24.44%
12
266,667
26.67%
13
288,889
28.89%
14
311,111
31.11%
15
333,333
33.33%
16
355,556
35.56%
17
377,778
37.78%
18
400,000
40.00%
19
422,222
42.22%
20
444,444
44.44%
21
466,667
46.67%
22
488,889
48.89%
23
511,111
51.11%
24
533,333
53.33%
25
555,556
55.56%
26
577,778
57.78%
27
600,000
60.00%
28
622,222
62.22%
29
644,444
64.44%
API Version 2010-12-01
196
Amazon Simple Email Service 開発者ガイド
E メール送信のテスト
日。
E メール数
送信率
30
666,667
66.67%
31
688,889
68.89%
32
711,111
71.11%
33
733,333
73.33%
34
755,556
75.56%
35
777,778
77.78%
36
800,000
80.00%
37
822,222
82.22%
38
844,444
84.44%
39
866,667
86.67%
40
888,889
88.89%
41
911,111
91.11%
42
933,333
93.33%
43
955,56
95.556%
44
977,78
97.778%
45
100 万回
100.00%
専用 IP を正常にウォームアップしたら、ISP によって IP の良い評価が保たれるように、専用 IP ごとに 1
日あたり E メール 50,000 通以上を送信する必要があります。
Amazon SES E メール送信のテスト
Amazon Simple Email Service(Amazon SES)は、アプリケーションがさまざまな E メール送信シナリオ
をどうのように処理するかをテストできるメールボックスシミュレーターを提供します。送信クォータま
たはバウンスや苦情のメトリクスに影響を与えることはありません。Amazon SES メールボックスシミュ
レーターは一連のテスト E メールアドレスです。各 E メールアドレスが特定のシナリオを表します。メー
ルボックスシミュレーターに E メールを送信することで、次のテストを実行できます。
• テスト用の「To」アドレスを作成せずに、アプリケーションをテストする。
•
•
•
•
E メール送信プログラムが、バウンス、苦情、不在(OOTO)応答をどう処理するかをテストする。
Amazon SES サプレッションリストにあるアドレスに E メールを送信するとどうなるかを確認する。
サプレッションリストに有効な E メールアドレスを記載せずにバウンスを生成する。
その日の送信クォータを使い果たさずに、システムの最大スループットを確認する。
• バウンスや苦情に対する E メールの配信可能性メトリクスに影響を与えることなく、テスト E メールを
送信する。
メールボックスシミュレーターを使用するには、アドレスに E メールを送信し、シミュレートシナリオ
にセットアップがどう応答するかを確認します。以下の表に、シミュレートシナリオとそれに対応する E
メールアドレスを示します。E メールアドレスは大文字と小文字は区別されません。
API Version 2010-12-01
197
Amazon Simple Email Service 開発者ガイド
E メール送信のテスト
Note
メールボックスシミュレーターには、Amazon SES を使用してのみアクセスできます。外部メー
ルサーバーからはアクセスできません。
シミュレートシナリオ
メールボックスシミュレーターの E
メールアドレス
成功 - 受取人の ISP が E メールを受領します。「Amazon
SES 通知を使用したモニタリング (p. 98)」に記載されて
いるように配信通知をセットアップしている場合、Amazon
SES は Amazon Simple Notification Service(Amazon SNS)
から配信通知を送信します。それ以外の場合、API の戻り値
以外この正常な配信についての確認は返されません。
[email protected]
バウンス - 受取人の ISP は、SMTP 550 5.1.1 レスポン
スコード(「不明なユーザー」)で E メールを拒否しま
す。Amazon SES は、バウンス通知を生成し、システムの
セットアップ内容に応じて、E メールでまたは Amazon SNS
通知を使用して送信します。通常、E メールのハードバウン
スの場合は Amazon SES サプレッションリストに記載されま
すが、このメールボックスシミュレーターの E メールアドレ
スは記載されません。メールボックスシミュレーターから受
け取るバウンス応答は、RFC 3464 に準拠しています。バウ
ンスフィードバックの受け取り方法については、「Amazon
SES 通知を使用したモニタリング (p. 98)」を参照してく
ださい。
[email protected]
不在 - 受取人の ISP が E メールを受領し、受取人の受信箱
に配信します。ISP は不在(OOTO)メッセージを Amazon
SES に送信します。Amazon SES は、システムのセット
アップ内容に応じて、OOTO メッセージを E メールでまたは
Amazon SNS 通知を使用して転送します。メールボックスシ
ミュレーターから受け取る OOTO 応答は、RFC 3834 に準拠
しています。OOTO 応答を受け取るようにシステムをセット
アップする方法については、Amazon SES 通知を使用したモ
ニタリング (p. 98) の Amazon SES による通知の送信方法
をセットアップする場合と同じ手順に従います。
[email protected]
苦情 - 受取人の ISP は E メールを受領し、受取人の受信箱に
配信します。ただし、受取人はメッセージの受信を希望して
おらず、Amazon SES に苦情応答を送信する ISP を使用する
E メールアプリケーション内で [Mark as Spam] をクリックし
ます。その後、Amazon SES がシステムのセットアップ内容
に応じて、E メールで、または Amazon SNS 通知を使用し
て苦情通知を転送します。メールボックスシミュレーターか
ら受け取る苦情応答は、RFC 5965 に準拠しています。バウ
ンスフィードバックの受け取り方法については、「Amazon
SES 通知を使用したモニタリング (p. 98)」を参照してく
ださい。
[email protected]
サプレッションリストのアドレス - 宛先アドレスが Amazon
SES サプレッションリストに記載されているため、Amazon
SES は E メールをハードバウンスとして処理します。
[email protected]
API Version 2010-12-01
198
Amazon Simple Email Service 開発者ガイド
Amazon SES およびセキュリティプロトコル
Important
上記のテストアドレス以外のメールボックスシミュレーターアドレスに E メールを送信すると、
そのアドレスがサプレッションリストに記載されます。
メールボックスシミュレーターは、バウンス、苦情、および OOTO の一般的な応答を提供します。バウン
スシナリオでは、同じ送信リクエストからの複数のバウンスは 1 つの応答にまとめられます。実際には、
応答は ISP によって異なります。バウンス率と苦情率を下げるには、「Amazon Simple Email Service の
E メール送信のベストプラクティスホワイトペーパー」を参照してください。
メールボックスシミュレーターに E メールを送信する場合、最大送信レートによって制限されます。ま
た、E メールの使用料金が発生します。ただし、メールボックスシミュレーターへの E メールは、バウン
スと苦情の配信可能性メトリクス、または送信クォータの数には影響しません。
E メールボックスシミュレーターでは、ラベリングがサポートされているため、同じ E メー
ルボックスシミュレーターアドレスにさまざまな方法で E メールを送信したり、可変エンベ
ロープリターンパス (VERP) に対するサポートをテストしたりできます。たとえば、bounce
[email protected][email protected] に E メールを送信し
て、バウンスメッセージとバウンスを引き起こした配信不能アドレスを照合できるかどうかをテストでき
ます。VERP に関する詳細については、https://en.wikipedia.org/wiki/Variable_envelope_return_path を参照
してください。
サンドボックスでも、メールボックスシミュレーターに E メールを送信できます。
Amazon SES のさまざまなトピックに関する技術的な考察については、「Amazon SES ブログ」をご覧
ください。お問い合わせを参照あるいは発信するには「Amazon SES フォーラム」をご覧ください。
Amazon SES およびセキュリティプロトコル
このトピックでは、Amazon SES に接続する際、そして Amazon SES が受信者に E メールを送信する際
に使用できるセキュリティプロトコルについて説明します。
E メール送信者から Amazon SES へ
Amazon SES に接続するために使われるセキュリティプロトコルは、以下に説明されるように、Amazon
SES API あるいは Amazon SES SMTP インターフェイスの使用によって異なります。
HTTP
Amazon SES API を使用している場合には (直接または AWS SDK を通して)、すべての通信は Amazon
SES の HTTPS エンドポイントによる TLS で暗号化されます。Amazon SES の HTTPS エンドポイント
は、TLS 1.2、TLS 1.1、TLS 1.0 のみをサポートします。
SMTP インターフェイス
SMTP インターフェイスを介して Amazon SES にアクセスする場合、Transport Layer Security (TLS) を
使って接続を暗号化する必要があります。 TLS は、以前のプロトコルの名前である「Secure Sockets
Layer (SSL)」と呼ばれることが多いことに注意してください。
Amazon SES は、TLS で暗号化された接続を確立するために、STARTTLS、TLS ラッパーという 2 とお
りのメカニズムをサポートしています。
• STARTTLS—STARTTLS とは、暗号化されていない接続を暗号化された接続にアップグレードする方
法です。 STARTTLS には、様々なプロトコルに対応したバージョンがあります。SMTP バージョン
は、「RFC 3207」に定義されています。STARTTLS 接続の場合は、Amazon SES は TLS 1.2、TLS
1.1、TLS 1.0、および SSLv2Hello をサポートします。
API Version 2010-12-01
199
Amazon Simple Email Service 開発者ガイド
Amazon SES から受信者へ
• TLS Wrapper—TLS Wrapper(SMTPS またはハンドシェイクプロトコルとも呼ばれる)は、最初に暗
号化されていない接続を確立するのではなく、最初から暗号化された接続を開始する方法です。 TLS
ラッパーを使用する場合、Amazon SES SMTP エンドポイントは TLS ネゴシエーションを実行しま
せん。TLS を使用してエンドポイントに接続し、通信全体で TLS の使用を継続するのはクライアント
の役割です。TLS ラッパーは古いプロトコルですが、数多くのクライアントが今もサポートしていま
す。TLS ラッパー接続の場合は、Amazon SES は TLS 1.2、TLS 1.1 および TLS 1.0 をサポートしま
す。
これらの方法を使用して Amazon SES SMTP インターフェイスに接続する詳細については、「Amazon
SES SMTP エンドポイントに接続する (p. 58)」を参照してください。
ソフトウェアが STARTTLS も TLS ラッパーもサポートしていない場合、ソフトウェアは、セキュアなト
ンネルを設定することによって、Amazon SES SMTP エンドポイントと通信できるようになります。安
全なトンネルを設定する方法については、「Amazon SES に接続するために、安全なトンネルを設定す
る (p. 63)」を参照してください。
Amazon SES から受信者へ
Amazon SES は、デフォルトで TLS-protected の接続(TLS バージョン 1.0 のみ)を経由してメッセージ
を送信します。 opportunistic TLS と呼ばれるこの方法では、受信サーバーが TLS をサポートしている場
合に、Amazon SES が受信メールサーバーと SMTP 接続を確立する際、Amazon SES は STARTTLS プロ
トコルを使って接続をアップグレードします。 受信サーバーが STARTTLS を提供しなかったり、TLS ネ
ゴシエーションが失敗した場合には、接続はプレーンテキストで行われます。
Amazon SES はすべてのリージョンで便宜な TLS をサポートしているので、有効にするためのアクション
を行う必要はありません。
Amazon SES を使用する際のベストプラクティス
このセクションは、Amazon Simple Email Service(Amazon SES)を使用して E メールを送信する際のベ
ストプラクティスに関する次のトピックで構成されています。
• E メールが受取人の受信箱に配信される可能性を向上させる方法のヒントについては、「Amazon SES
を使用する際の配信可能性の向上 (p. 200)」を参照してください。
• 無効なアドレス、およびメールの受け取りを希望しない受取人をメーリングリストに含まないようにす
る方法については、「受取人リストの取得と管理 (p. 201)」を参照してください。
• バウンスと苦情を処理する方法のガイダンスについては、「バウンスと苦情の処理 (p. 202)」を参照し
てください。
• 複数の AWS アカウントを使用して Amazon SES 経由で E メールを送信する際に考慮するべき要素につ
いては、「複数の Amazon SES アカウントの使用 (p. 202)」を参照してください。
Amazon SES を使用する際の配信可能性の向上
次の推奨事項は、Amazon SES を使用する際の配信可能性の向上に役立ちます。
• E メールを要求した受取人にのみ E メールを送信する - 受取人の E メールアドレスは、受取人の許可を
得てお客様自身で収集します。メーリングリストを第三者から購入しないでください。メーリングリス
トは最新の状態を維持し、受取人がサブスクライブ解除できるメカニズムを用意してください。メーリ
ングリストがディスカッショングループに関連付けられている場合は、長期間(たとえば 180 日間)に
わたってやり取りのない受取人のサブスクライブ解除を検討してください。
• バウンスと苦情の数を少なく保つ - バウンスの数が多いと、受取人についてあまりよく把握していない
ことを ISP に知らせることになります。苦情の数の多さは、受取人が E メールの受け取りを希望してい
ないことを示しています。E メールがバウンスされたり、受取人にスパムとしてマークされた場合は、
API Version 2010-12-01
200
Amazon Simple Email Service 開発者ガイド
受取人リストの取得と管理
必ずその受取人をリストから削除してください。バウンスと苦情の通知方法については、「Amazon
SES 通知を使用したモニタリング (p. 98)」を参照してください。
• メールを認証する - 認証は、E メールが正規のものであり送信中に変更されていないことを ISP に知
らせる方法です。詳細については、「Amazon SES での E メールの認証 (p. 86)」を参照してくださ
い。
• 高品質 E メール - 高品質 E メールとは、受取人が受け取りを希望し、有益であると考える E メールで
す。有益であるかどうかは受取人によって異なり、その形式にはオファー、注文確認、領収書、ニュー
スレターなどがあります。送信の予定について受取人に通知し、受取人が E メール プログラムに何を期
待しているかを理解してください。
• 送信統計を確認する - 配信の試行、バウンス、苦情、および拒否 E メールの数を定期的にモニタリン
グすることで、問題をすぐに特定して修正できるようにします。送信統計を確認するには、「Amazon
SES 送信アクティビティのモニタリング (p. 96)」を参照してください。
• 送信制限に注意する - 送信制限を超過しようとすると、Amazon SES API の呼び出しは失敗しま
す。Amazon SES コンソールを確認するか、GetSendQuota を呼び出してください。送信制限の上限を
高くする必要がある場合は、「Amazon SES の送信制限の引き上げ (p. 169)」を参照してください。
• 拒否 E メールの増加傾向に注意する Amazon SES では、許可されないメッセージに対して
MessageRejected エラーが生成されます。大量のメッセージが拒否される場合は、どのアプリケーショ
ンでも、拒否された同じメッセージの送信が繰り返し試行されないにようにしてください。
これらのベストプラクティスや他のベストプラクティスの詳しい説明については、「Amazon Simple
Email Service の E メール送信のベストプラクティスホワイトペーパー」を参照してください。
受取人リストの取得と管理
最終的に、メーリングリストの受取人アドレスが有効であること、および受取人がメールの受け取りを希
望していることを確認します。無効な受取人のアドレスへのメールはバウンスされます。また、有効な受
取人であっても、E メールの受け取りを希望しない場合は、E メールクライアントでメールをスパムとし
てマークすることがあります。バウンス率や苦情率が高くなると、アカウントがシャットダウンされる事
態を招きかねません。
受取人リストをクリーンな状態に維持する方法を次に示します(ただし、これらに限定されるものではあ
りません)。詳細については、「Amazon Simple Email Service の E メール送信のベストプラクティスホ
ワイトペーパー」を参照してください。
• バウンスと苦情をモニタリングするプロセスを設定し、受取人のアドレスからバウンスや苦情が発生し
たときは、そのアドレスをメーリングリストから削除します。詳細については、「バウンスと苦情の処
理 (p. 202)」を参照してください。
• E メールリストを購入しないようにします。
• サイトでのやり取りを最近(たとえば、過去 180 日以内に)行ったことがある受取人だけに E メールを
送信します。
• 受取人がリストにサインアップするときに、その受取人がサインアップの対象としているメールの種類
を明確にし、他の種類のメールを送信しないようにします。たとえば、特定のイベントに関する通知を
受け取ることにサインアップした受取人は、マーケティングメールを快く思わない場合があります。
• ダブルオプトインを使用することで、間違ったアドレスに E メールを繰り返し送信することがないよう
にできます。ダブルオプトインでは、受取人は、リストにサブスクライブするためのリクエストを最初
に送信する必要があります。その後、受取人は確認用の E メールを受け取ります。受取人は、サブスク
ライブすることを確認するために、その E メールに記載されているリンクをクリックする必要がありま
す。
• ボットがメーリングリストにサインアップすることを防ぐ方法の 1 つが、サインアッププロセスにお
ける CAPTCHA の使用です。CAPTCHA は、自動化されたチャレンジレスポンス型テストであり、コ
ンピュータではなく人間が情報を入力していることを確認するように設計されています。詳細について
は、http://www.captcha.net を参照してください。
• 受取人リストをクリーンする方法として Amazon SES を使用しないでください。
API Version 2010-12-01
201
Amazon Simple Email Service 開発者ガイド
バウンスと苦情の処理
バウンスと苦情の処理
バウンス率や苦情率が高くなると、アカウントがシャットダウンされる事態を招きかねません。したがっ
て、バウンスや苦情が発生している受取人のアドレスを受取人リストから削除するためのプロセスを備え
る必要があります。無効な E メールアドレスがリストに含まれないようにするためのヒントについては、
「受取人リストの取得と管理 (p. 201)」を参照してください。バウンスと苦情の処理に関するガイドラ
インを次に示します。詳細については、「Amazon Simple Email Service の E メール送信のベストプラク
ティスホワイトペーパー」を参照してください。
• バウンスと苦情をモニタリングし、バウンスや苦情が発生している受取人のアドレスをメーリングリ
ストから削除します。バウンスと苦情の通知は、E メールまたは Amazon Simple Notification Service
(Amazon SNS) 通知のいずれかの方法で受け取ることができます。詳細については、「Amazon SES 通
知を使用したモニタリング (p. 98)」を参照してください。
• 受信者リストが大きい場合は、自動化プロセスを設定している可能性があります。Amazon SNS 通知
の情報を使用して E メールリストを管理する方法に関する .NET サンプルコードについては、Amazon
SES ブログの「バウンスと苦情の処理」を参照してください。
• サプレッションリストのバウンスをその他のハードバウンスのように処理します。Amazon SES コン
ソールを使用してサプレッションリストからアドレスを削除することができますが、それを行うのは、
その E メールアドレスが有効であることを 100% 確信できる場合だけにしてください。ほとんどの場
合、その E メールアドレスは有効ではなく、メーリングリストから削除する必要があります。
• バウンスと苦情の処理プロセスをテストする必要がある場合は、Amazon SES メールボックスシミュ
レーターを使用します。メールボックスシミュレーターに送信する E メールは、バウンス率や苦情率に
は影響しません。詳細については、「Amazon SES E メール送信のテスト (p. 197)」を参照してくだ
さい。
複数の Amazon SES アカウントの使用
明確に異なる E メールのストリームを送信する必要がある場合は、複数の AWS アカウントを使用して
Amazon SES 経由で E メールを送信できます。たとえば、あるアカウントからマーケティング E メール
を送信し、別のアカウントからは取引 E メールを送信する場合や、さまざまな異なるクライアントの代理
として個別のアカウントを使用することで E メールを送信する場合があります。複数の AWS アカウント
を使用して Amazon SES 経由で E メールを送信するときは、次のことに注意してください。
• 使用中の各 AWS アカウントに関連付けられた E メールアドレスで受け取る E メールを確実にモニタリ
ングするようにします。当社では、Amazon SES の停止猶予の通知や停止の通知など、アカウントのス
テータスに関する通知を、それぞれの特定の AWS アカウントに関連付けられた E メールアドレスに送
信します。1 つのアカウントが停止されると、その他のアカウントも停止される事態を招きかねないた
め、すべてのアカウントのステータスに注意を払うことが重要です。
• 複数のアカウントから送信する場合は、各アカウントでそれぞれ異なるタイプの E メールを送信する
(引き続き送信する)ようにします。複数のアカウントを使用して類似するコンテンツを送信すると、
スパムを送信しているように見え、アカウント停止の事態を招きかねません。
Amazon SES のさまざまなトピックに関する技術的な考察については、「Amazon SES ブログ」をご覧
ください。お問い合わせを参照あるいは発信するには「Amazon SES フォーラム」をご覧ください。
Amazon SES のトラブルシューティング
Amazon Simple Email Service(Amazon SES)を使用して E メールを送信しようとしたときに問題が発生
することがあります。最も一般的な問題に解析エラーがありますが、サービスによってリクエストが受け
付けられない場合や最大送信レートで送信できない場合は、別の理由がある可能性があります。リクエス
API Version 2010-12-01
202
Amazon Simple Email Service 開発者ガイド
配信に関する問題
トが成功した場合でも、Amazon SES の制御の及ばない状況が原因で E メールが配信されないことがあり
ます。
このセクションは、問題が発生した場合に役に立つ次のトピックから構成されます。
• E メール送信時に発生する可能性がある一般的な配信に関連する問題のリストとその対処方法について
は、「Amazon SES の配信に関する問題 (p. 203)」を参照してください。
• Amazon SES から送信された E メールの受取人側での表示に関する問題については、「Amazon SES
から受け取った E メールに関する問題 (p. 204)」を参照してください。
• Amazon SES で E メールを送信するときに発生する可能性があるエラーのリストについては、
「Amazon SES の E メール送信エラー (p. 204)」を参照してください。
• ドメインの確認時に発生する可能性がある問題の詳細については、「Amazon SES のドメインの確認に
関する問題 (p. 206)」を参照してください。
• Easy DKIM に関する問題の解決策については、「Amazon SES の DKIM に関する問題 (p. 208)」を参
照してください。
• バウンス、苦情、および配信通知に関する問題の解決方法については、「Amazon SES の通知に関する
問題 (p. 209)」を参照してください。
• サプレッションリストから E メールアドレスを削除する方法については、「Amazon SES サプレッショ
ンリストからの E メールアドレスの削除 (p. 210)」を参照してください。
• API または SMTP インターフェイスを使用して Amazon SES の複数の呼び出しを行うときに E メール
送信速度を向上させるためのヒントについては、「Amazon SES のスループットを上げる (p. 211)」
を参照してください。
• Simple Mail Transfer Protocol(SMTP)インターフェイスを介して Amazon SES を使用するときに発生
する可能性がある一般的な問題の解決策については、「Amazon SES SMTP に関する問題 (p. 212)」
を参照してください。
• クライアントアプリケーションが Amazon SES から受け取ることができる SMTP 応答コードのリスト
については、「Amazon SES から返される SMTP 応答コード (p. 214)」を参照してください。
• Amazon SES の Query(HTTPS)API から返されるエラーコードのリストについては、「Amazon SES
から返される API エラーコード (p. 216)」を参照してください。
• 適応の一般的な問題とその対応方法については、「Amazon SES のエンフォースメントに関するよくあ
る質問 (p. 219)」を参照してください。
• IP ブラックリストが Amazon SES を使用した送信にどのように影響を与えるかについては、「Amazon
SES の IP ブラックリストに関するよくある質問 (p. 231)」を参照してください。
Amazon SES API を直接呼び出している場合は、「Amazon Simple Email Service API Reference」を参照
して、発生する可能性がある HTTP エラーを確認してください。
Amazon SES のさまざまなトピックに関する技術的な考察については、「Amazon SES ブログ」をご覧
ください。お問い合わせを参照あるいは発信するには「Amazon SES フォーラム」をご覧ください。
Amazon SES の配信に関する問題
Amazon SES へのリクエストが成功すると、メッセージは多くの場合、すぐに送信されます。ただし場合
によっては、短い遅延が生じることがあります。いずれにせよ、E メールが送信されることは保証されま
す。
ただし、Amazon SES からメッセージが送信されるときにいくつかの要因で正常な配信が妨げられること
があります。場合によっては、送信したメッセージが到着しないことを知って初めて配信が失敗したこと
に気付く結果になります。この状況を解決するには、次のプロセスを使用します。
E メールが到着しない場合は、次の操作を試してください。
API Version 2010-12-01
203
Amazon Simple Email Service 開発者ガイド
受け取った E メールに関する問題
• 対象の E メールに SendEmail または SendRawEmail リクエストを行っていて、成功を示す応答を受け
取っていることを確認します(例については、「正常なレスポンスの構造 (p. 294)」を参照してくださ
い)。これらのリクエストをプログラムで行っている場合は、ソフトウェアのログを調べて、プログラ
ムがリクエストを実行し、成功を示す応答を受け取っていることを確認します。
• ブログ記事「SES を使用してメールを送信したときに遅延が発生する可能性がある 3 つの場所」を参
照してください。実際は、E メールが配信されていないのではなく、遅延が生じている可能性がありま
す。
• 送信者の E メールアドレス(「From」アドレス)が有効であることを確認します。バウンスメッセー
ジが送信される「Return-Path」アドレスも確認します。メールがバウンスされた場合は、説明のエラー
メッセージが返されます。
• AWS のサービス状態ダッシュボード で、Amazon SES に既知の問題がないことを確認してください。
• E メールの受取人または受取人の ISP に問い合わせます。受取人が正しい E メールアドレスを使用して
いることを確認し、受取人の ISP において配信に関する既知の問題があるかどうかを問い合わせます。
また、実際は到着した E メールがスパムとしてフィルタリングされていないかどうかを確認します。
• 有償の AWS サポートプランを契約している場合は、新しい技術サポートケースを開くことができま
す。お問い合わせの際は、SendEmail または SendRawEmail 応答から返されたリクエスト ID またはメッ
セージ ID に加えて、該当する受取人のアドレスをお知らせください。
• 原因が実際は配信時の遅延であり永続的なエラーでないか、しばらく観察します。スパム発信者への対
策として、一部の ISP は不明な送信メールサーバーからの受信メッセージを一時的に拒否します。この
プロセス(グレーリストと呼ばれる)により配信時に遅延が生じることがあります。Amazon SES で
は、これらのメッセージは再試行されます。グレーリストが原因となっている場合は、再試行される E
メールを ISP が許可することができます。
Amazon SES から受け取った E メールに関する問題
Amazon SES を介して送信された E メールを受取人が受け取ったとき、次の問題が発生する可能性が
あります。受取人に E メールがまったく配信されない問題のトラブルシューティング情報については、
「Amazon SES の配信に関する問題 (p. 203)」を参照してください。
• 受取人の E メールクライアントで E メールの送信元として "sent via
amazonses.com"(amazonses.com 経由で送信)と表示される - E メールクライアントの中には、送信
者のドメインが E メールの実際の送信元のドメインと一致しないときに "via" ドメインを表示するもの
があります(このケースでは amazonses.com)。その理由については、この Google 社による説明を参
照してください。対処法として、優れたやり方である、Domain Keys Identified Mail(DKIM)をセット
アップする方法があります。DKIM を使用してメールを認証する場合、通常、E メールクライアントに
は "via" ドメインが表示されません。これは、DKIM の署名には、送信元として示されているドメインが
メールの送信元として示されるためです。DKIM をセットアップする方法については、「Amazon SES
における DKIM を使った E メールの認証 (p. 88)」を参照してください。
• E メールが受取人の E メールクライアントで正しく表示されない
• E メールに ASCII 文字以外の文字が含まれている場合は、多目的インターネットメール拡張 (MIME)
形式で作成し、SendRawEmail API を使用してそのメールを送信する必要があります。詳細について
は、「Amazon SES API を使用して raw Eメールを送信する (p. 81)」を参照してください。
• E メールの MIME 形式が適切でない可能性があります。その形式が RFC 2047 に準拠していることを
確認してください。たとえば、E メールには適切なヘッダーフィールドとエンコード済みメッセージ
本文を使用する必要があります。
• 受取人の E メールサーバーまたは E メールクライアントによって、表示されるコンテンツが制限され
る場合があります。
Amazon SES の E メール送信エラー
このトピックでは、Amazon SES 経由で E メールを送信するときに発生する可能性がある E メール送
信に固有のエラーのタイプについて説明します。Amazon SES 経由でメールを送信しようとしたときに
API Version 2010-12-01
204
Amazon Simple Email Service 開発者ガイド
E メール送信エラー
Amazon SES の呼び出しに失敗すると、Amazon SES からアプリケーションにエラーメッセージが返さ
れ、E メールは送信されません。このエラーメッセージがどのように表示されるかは、Amazon SES を呼
び出す方法によって異なります。
• Amazon SES API を直接呼び出す場合は、Query アクションによってエラーが返されます。エラー
は、MessageRejected であるか、または『Amazon Simple Email Service API Reference』の「一般的な
エラー」に指定されているいずれかのエラーの可能性があります。
• 例外をサポートするプログラミング言語を使用する AWS SDK を使用して Amazon SES を呼び出した
場合、Amazon SES は例外をスローします。例外のタイプは、SDK とエラーによって異なります。たと
えば、Amazon SES の MessageRejectedException 例外(実際の名前は SDK によって異なります)ま
たは一般的な AWS 例外がスローされます。例外のタイプにかかわらず、例外のエラータイプとエラー
メッセージからより多くの情報が得られます。
• SMTP インターフェイスを介して Amazon SES を呼び出した場合、エラーがどのように示されるかはア
プリケーションによって異なります。特定のエラーメッセージを表示するアプリケーションもあれば、
そのようなメッセージを表示しないアプリケーションもあります。SMTP 応答コードのリストについて
は、「Amazon SES から返される SMTP 応答コード (p. 214)」を参照してください。
Note
E メール送信のための Amazon SES 呼び出しが失敗した場合、対象の E メールについては課金さ
れません。
E メールを送信しようとしたときに Amazon SES がエラーを返す原因となる、Amazon SES に固有の問
題のタイプを次に示します。これらのエラーは、『Amazon Simple Email Service API Reference』の「一
般的なエラー」に指定されている MalformedQueryString などの一般的な AWS エラーとは別のエラーで
す。
• E メールアドレスが検証されていません。以下のアイデンティティが、リージョン <region>:
<identity1>、<identity2>、<identity3> で確認できませんでした。— Amazon SES で確認 (p. 36)して
いない E メールアドレスまたはドメインから E メールを送信しようとしています。このエラーは、
「From」、「Source」、「Sender」または「Return-Path」のアドレスには適用することができま
す。 アカウントがサンドボックスにまだある場合は、Amazon SES のメールボックスシミュレー
ター (p. 197)から提供されているアドレスを除く、すべての受取人のアドレスも確認する必要がありま
す。Amazon SES が失敗したアイデンティティをすべて表示できない場合は、エラーメッセージが省略
符号で終了します。
Note
Amazon SES は複数の AWS リージョン (p. 296)にエンドポイントを持ち、E メールアドレス
の検証ステータスは AWS のリージョンごとに別個に扱われます。使用する AWS リージョンの
各送信者について、確認プロセスを完了する必要があります。
• Customer is suspended - AWS アカウントにおいて、Amazon SES を使用した E メール送信が禁止さ
れています。この場合でも、Amazon SES コンソールにアクセスして、E メールの送信以外の任意のア
クティビティ(たとえば、メトリクスの表示)を実行できます。メールを送信しようとすると、このエ
ラーメッセージを受け取ります。
この場合は、AWS アカウントに関連付けられた E メールアドレスに、Amazon SES からの問題を知
らせる E メールを受け取っているはずです。停止措置に抗議してメール送信権限の回復を要求するに
は、E メールに記載されている手順に従います。同じ問題が再び発生しないようにするには、停止措置
自体が誤りであることを示す理由、またはそれまでに加えた変更を詳しく説明する必要があります。
• Throttling - Amazon SES によって、メッセージを送信できるレートが制限されています。アプリケー
ションが大量の E メールを送信しようとしているか、所定のレートを超えて E メールを送信しようとし
ています。このような場合は、次のようなエラーが返されます。
• Daily message quota exceeded - 24 時間の期間に送信することが許可されたメッセージの最大数に達
しました。日次クォータを超過した場合、次の 24 時間の期間にならないとそれ以上 E メールを送信
できません。
API Version 2010-12-01
205
Amazon Simple Email Service 開発者ガイド
ドメインの確認に関する問題
• Maximum sending rate exceeded - 送信を試みた 1 秒あたりの E メールの件数が、許可された最大送
信レートを超えました。送信レートを超過した場合、E メールの送信を継続できますが、送信レー
トを引き下げる必要があります。詳細については、Amazon SES ブログの「"Throttling - Maximum
sending rate exceeded" エラーの対処法」を参照してください。
送信アクティビティを定期的に監視して、送信制限にどれだけ近づいているかを確認する必要がありま
す。詳細については、「Amazon SES 送信制限のモニタリング (p. 168)」を参照してください。送信
制限に関する一般的な情報については、「Amazon SES の送信制限の管理 (p. 167)」を参照してくだ
さい。送信制限を引き上げる方法については、「Amazon SES の送信制限の引き上げ (p. 169)」を参
照してください。
Important
スロットリングエラーを説明するエラーテキストが日次クォータまたは最大送信レートの超
過に関係ない場合は、システム全体の問題が原因で送信機能が制限されている可能性がありま
す。サービスステータスについては、「AWS のサービス状態ダッシュボード」を参照してくだ
さい。
• There are no recipients specified - 受取人が指定されていません。
• There are non-ASCII characters in the email address – E メールアドレス文字列は 7 ビット ASCII であ
る必要があります。送信先または送信元の E メールアドレス内で、ドメインの部分に Unicode 文字が含
まれる場合は、Punycode を使用してドメインをエンコードする必要があります。Punycode は E メー
ルアドレスのローカル部分 (@ の前の部分) では許可されていません。また、「差出人」名にも許可され
ていません。「差出人」名に Unicode 文字を使用する場合は、Amazon SES API を使用して raw Eメー
ルを送信する (p. 81) に説明されているとおりに MIME encoded-word 構文を使用して「差出人」名を
エンコードする必要があります。Punycode の詳細については、RFC 3492 を参照してください。
• Mail FROM domain is not verified – Amazon SES は、指定された MAIL FROM ドメインを使用するた
めに必要な MX レコードを読み取ることができませんでした。アイデンティティに関してカスタムの
MAIL FROM ドメイン設定を編集する方法については、「Amazon SES で MAIL FROM ドメインを編集
する (p. 49)」を参照してください。
• 設定セットが存在しない - 指定した設定セットが存在しません。設定セットは、メール送信イベントの
発行に使用するオプションのパラメーターです。詳細については、「Amazon SES イベント発行を使用
したモニタリング (p. 118)」を参照してください。
Amazon SES のドメインの確認に関する問題
Amazon SES を使用してドメインを確認するには、「Amazon SES でのドメインの検証 (p. 39)」に記
載されているように、Amazon SES コンソールまたは Amazon SES API を使用してプロセスを開始した
後、TXT レコードを DNS サーバーに発行します。このセクションは、問題が発生した場合に役に立つ次
のトピックから構成されます。
• TXT レコードが DNS サーバーに正しく発行されていることを確認する方法については、「ドメインの
確認に関する設定を確認する方法 (p. 206)」を参照してください。
• Amazon SES を使用してドメインを確認しようとしたときに発生する可能性がある一般的な問題につい
ては、「ドメインの確認に関する一般的な問題 (p. 207)」を参照してください。
ドメインの確認に関する設定を確認する方法
次の手順を使用して、Amazon SES ドメイン確認 TXT レコードが適切に DNS サーバーに発行された
ことを確認できます。この手順では、Windows および Linux で使用できる nslookup ツールを使用しま
す。Linux では、dig を使用することもできます。
これらの手順に示すコマンドは、Windows 7 で実行されています。使用されているサンプルのドメイン
は、ses-example.com です。
API Version 2010-12-01
206
Amazon Simple Email Service 開発者ガイド
ドメインの確認に関する問題
この手順では、最初にドメインにサービスを提供する DNS サーバーを見つけます。次に、これらのサー
バーに対して、TXT レコードを表示するためのクエリを実行します。ドメインにサービスを提供する DNS
サーバーに対してクエリを実行する理由は、これらのサーバーには他の DNS サーバーに伝達されるまで
に時間のかかるドメインの最新情報が格納されているためです。
ドメイン確認 TXT レコードが DNS サーバーに公開されていることを確認するには
1.
次のステップを実行して、ドメインのネームサーバーを見つけます。
a.
コマンドラインに移動します。Windows 7 でコマンドラインに移動するには、[Start] を選択
し、cmd と入力します。Linux ベースのオペレーティングシステムでは、ターミナルウィンドウ
を開きます。
b.
コマンドプロンプトで、次のように入力します。ここで、<domain> はドメインを示します。こ
れにより、ドメインにサービスを提供しているすべてのネームサーバーが表示されます。
nslookup -type=NS <domain>
ドメインが ses-example.com の場合、このコマンドは次のようになります。
nslookup -type=NS ses-example.com
2.
コマンドの出力に、ドメインにサービスを提供しているネームサーバーのリストが表示されま
す。次のステップでは、これらのサーバーの 1 つに対してクエリを実行します。
次のステップを実行して、TXT レコードが適切に発行されていることを確認します。
a.
コマンドプロンプトで、次のように入力します。ここで、<domain> はドメインを示し、<name
server> はステップ 1 で見つけたネームサーバーの 1 つを示します。
nslookup -type=TXT
_amazonses.<domain> <name server>
ses-example.com の例で、ステップ 1 で見つけたネームサーバーが ns1.name-server.net の場合
は、次のように入力します。
nslookup -type=TXT
b.
_amazonses.ses-example.com ns1.name-server.net
コマンドの出力の text = に続く文字列が、Amazon SES コンソールのアイデンティティリスト
でドメインを選択すると表示される TXT 値と一致することを確認します。
この例では、_amazonses.ses-example.com の下で値が fmxqxT/icOYx4aA/bEUrDPMeax9/s3frblS
+niixmqk= の TXT レコードを探しています。レコードが正しく発行されている場合、次のような
コマンド出力が得られます。
_amazonses.ses-example.com text = "fmxqxT/icOYx4aA/bEUrDPMeax9/s3frblS+niixmqk="
ドメインの確認に関する一般的な問題
「Amazon SES でのドメインの検証 (p. 39)」の手順を使用してドメインを確認しようとしたときに問題が
発生した場合は、次に示す考えられる原因と解決策を確認してください。
• DNS プロバイダーにより、TXT レコード名にアンダースコアを含めることが許可されていない - TXT レ
コード名から _amazonses を削除してください。
• 同じドメインを複数回確認しようとしていて、同じ名前の TXT レコードを複数持つことができない - 異
なるリージョンで送信しようとしている場合や、同じリージョンの同じドメインの複数の AWS アカウ
ントから送信しようとしている場合は、複数回ドメインを確認する必要があります。DNS プロバイダー
API Version 2010-12-01
207
Amazon Simple Email Service 開発者ガイド
DKIM に関する問題
により同じ名前を持つ複数の TXT レコードを持つことが許可されない場合は、2 つの対処法がありま
す。1 つ目の対処法は、TXT レコードに複数の値を割り当てることです(DNS プロバイダーによって許
可される場合)。たとえば、DNS が Amazon Route 53 によって管理されている場合、次のように、同
じ TXT レコードに対して複数の値をセットアップできます。
1. Amazon Route 53 コンソールで、最初のリージョンのドメインを確認したときに追加した
_amazonses TXT レコードを選択します。
2. [Value] ボックスで、最初の値の後にカーソルを置き、Enter キーを押します。
3. 追加のリージョンの値を追加し、レコードセットを保存します。
もう 1 つの対処法では、ドメインの確認が 2 回だけ必要な場合に、1 回目は TXT レコード名の
_amazonses を使用して確認し、2 回目は amazonses をレコード名に含めずに確認することができま
す。ただし、ベストプラクティスとしては最初の解決法をお勧めします。
• 管理権限のないウェブベースの E メールサービスによって提供された E メールアドレスを使用してい
る - 所有していないドメインを確認することはできません。たとえば、Gmail のメールアドレスを使用
する E メールを Amazon SES を介して送信する場合は、その E メールアドレスを個別に確認する必要
があります。gmail.com を確認することはできません。個々の E メールアドレスの確認については、
「Amazon SES での E メールアドレスの検証 (p. 37)」を参照してください。
• Amazon SES により、ドメインの確認が失敗したことが報告される - Amazon SES から「Domain
Verification Failure」E メールを受け取ります。Amazon SES コンソールの [Domains] タブに、ドメ
インのステータスが "failed" として表示されます。これは、Amazon SES が DNS サーバー上に必要
な TXT レコードを見つけられないことを意味します。「ドメインの確認に関する設定を確認する方
法 (p. 206)」の手順に従って必要な TXT レコードが適切に DNS サーバーに公開されていることを確
認した後、次のようなエラーの可能性を確認します。
• DNS プロバイダーによって TXT レコードの末尾にドメイン名が追加された - ドメイン
名(たとえば、_amazonses.example.com)がすでに含まれた TXT レコードを追加する
と、_amazonses.example.com.example.com のようにドメイン名が重複する結果になります。ドメイ
ン名の重複を避けるには、TXT レコードのドメイン名の末尾にピリオドを追加します。こうすること
で、DNS プロバイダーにレコード名が完全修飾されている(つまり、ドメイン名に対して相対的でな
くなる)ことを示し、DNS プロバイダーによってドメイン名が追加されないようにします。
• Amazon SES からドメインの確認が失効した(または失効する)ことを示す E メールを受け取る Amazon SES が、必要な TXT レコードを DNS サーバー上で見つけることができません。通知 E メール
には、TXT レコードを再発行することでドメインの確認ステータスが失効するのを回避できる残りの期
間が記載されています。
Note
以下の手順に従って、Amazon SES コンソールで必要な TXT レコードを確認できます。 ナビ
ゲーションペインで、[Identities] の [Domains] を選択します。ドメインのリストでドメインを
選択 (展開するだけではなく) して、TXT レコード名と値を含むドメインの確認設定を表示しま
す。
ドメインの確認のステータスが失効した場合は、失効したドメインがまったく新しいドメインである
かのように、「Amazon SES でのドメインの検証 (p. 39)」の確認手順を最初から繰り返す必要があ
ります。DNS サーバーに TXT レコードを発行した後、「ドメインの確認に関する設定を確認する方
法 (p. 206)」の手順に従って、TXT レコードが正しく発行されていることを確認します。
Amazon SES の DKIM に関する問題
「Amazon SES の Easy DKIM (p. 88)」の手順を使用して Easy DKIM をセットアップしようとしたとき
に問題が発生した場合は、次に示す考えられる原因と解決策を確認してください。
• Easy DKIM が正しくセットアップされているにもかかわらずメッセージに DKIM の署名が付けられない
- 次の問題が考えられます。
• 適切なアイデンティティの Easy DKIM が有効になっていることを確認します。Amazon SES コン
ソールでアイデンティティに対して Easy DKIM を有効にするには、アイデンティティリストでその送
API Version 2010-12-01
208
Amazon Simple Email Service 開発者ガイド
通知に関する問題
信者の E メールアドレスまたはドメインを選択します。E メールアドレスまたはドメインの [Details]
ページで、[DKIM] を展開し、[Enable] を選択して DKIM を有効にします。
• DKIM 署名が有効化されていない個別に確認された E メールアドレスから送信している可能性があ
ります。ドメインに対して Easy DKIM をセットアップした場合、Easy DKIM は、個別に確認した E
メールアドレスを除く、ドメイン内のすべての E メールアドレスに適用されます。個別に確認された
E メールアドレスには、別の設定が使用されます。その場合は、アイデンティティリストから E メー
ルアドレスを削除するか (設定は確認済みドメインの設定から継承されます)、または前述のように E
メールアドレスに対して Easy DKIM を有効にします。
• 複数のリージョンまたは複数の AWS アカウントで Amazon SES を使用している場合は、Easy
DKIM を使用するそれぞれのリージョンおよびアカウントに対して、「Amazon SES の Easy
DKIM (p. 88)」の手順を実行する必要があります。Amazon SES により、ドメイン、アカウント、
リージョンの組み合わせごとに一意の DNS レコードのセットが生成されます。これらのすべての
レコードを DNS サーバーに追加する必要があります。特定のリージョンまたはアカウントに必要
な DNS レコードを削除した場合、Amazon SES は、そのリージョンのそのアカウントに対してのみ
DKIM 署名を無効にし、ユーザーがアクションを実行できるようにその旨を E メールで通知します。
• Amazon SES コンソールのユーザードメインの DKIM 詳細に、DKIM: waiting on sender verification...
DKIM Verification Status: pending verification と表示される場合、この DKIM ステータスは保留となり、
これはお使いの DNS サーバーで必要な CNAME レコードが Amazon SES によって検出されていない
ことを意味します。このレコードは、ユーザーによって Easy DKIM 設定手順 (Amazon SES の Easy
DKIM (p. 88)) で発行されているべきものです。DKIM のステータスが保留の場合、Amazon SES ブ
ログから以下の記事を参照してください。
• DKIM トラブルシューティングシリーズ: DKIM ステータスが [Pending] になっている
• DKIM トラブルシューティングシリーズ: DKIM ステータスがまだ [Pending] になっている
• クエリ実行時、DNS サーバーは Amazon SES DKIM CNAME レコードを正常に返すが、TXT レコード
の SERVFAIL も返す - DNS プロバイダーによる CNAME レコードのリダイレクト時に問題が発生して
いる可能性があります。Amazon SES と ISP は TXT レコードに対するクエリを実行します。DKIM の仕
様に準拠するには、DNS サーバーが CNAME レコードに対するクエリだけでなく、TXT レコードに対
するクエリにも応答できる必要があります。DNS プロバイダーが TXT レコードに対するクエリに応答
できない場合は、別の解決方法として、DNS ホスティングに Amazon Route 53 を使用してください。
• E メールが DKIM によって署名されるが、DKIM 署名の検証に失敗する - Amazon SES ブログの「
DKIM トラブルシューティングシリーズ: 署名の検証に失敗する」を参照してください。
• Amazon SES から DKIM のセットアップが失効した(または失効する)ことを示す E メールを受け取る
- これは、Amazon SES が必要な CNAME レコードを DNS サーバー上で見つけることができないこと
を示します。通知 E メールには、CNAME レコードを再発行することで DKIM のセットアップステータ
スが失効して DKIM 署名が無効化されるのを回避できる残りの期間が記載されています。DKIM のセッ
トアップが失効した場合は、「Amazon SES の Easy DKIM (p. 88)」の DKIM のセットアップ手順を
最初から繰り返す必要があります。
• メッセージヘッダーに DKIM 署名が含まれているが、DKIM 署名が有効になっていない—表示されてい
る DKIM 署名には d=amazonses.com が含まれており、Amazon SES によって自動的に追加されます。
• E メールに 2 つの DKIM 署名が含まれている - 追加の DKIM 署名には d=amazonses.com が含まれてお
り、その署名は Amazon SES によって自動的に追加されたものです。この署名は無視できます。
Amazon SES の通知に関する問題
バウンス、苦情、または配信通知に関する問題が発生した場合は、以下の考えられる原因と解決方法を確
認します。
• バウンス通知を Amazon SNS 経由で受け取ったが、どの受取人が通知と対応しているかわからない—今
後、バウンス通知を特定の受信者に関連付けるには、以下のオプションを使用できます。
• Amazon SES は追加したカスタムメッセージ ID を保持しないので、Amazon SES が E メールを受け
付けるときにお客様に渡す Amazon SES メッセージ ID と識別子のマッピングを保存します。
• Amazon SES を呼び出すたびに、単一のメッセージを複数の受取人に送信する代わりに、単一の受取
人に送信します。
API Version 2010-12-01
209
Amazon Simple Email Service 開発者ガイド
サプレッションリストからの E メールアドレスの削除
• バウンスに関するメッセージ全文をお客様に転送する、E メールによるフィードバックの転送を有効
にすることができます。
• 苦情通知を Amazon SNS 経由または E メールによるフィードバックの転送で受け取ったが、どの受取
人が通知と対応しているかわからない—一部の ISP は、苦情通知を Amazon SES に渡す前に、苦情を
送信した受取人の E メールアドレスを編集します。受取人の E メールアドレスを特定できるようにする
最善の方法は、Amazon SES が E メールを受け付けるときにお客様に渡す Amazon SES メッセージ ID
と識別子のマッピングを保存することです。Amazon SES は追加したカスタムメッセージ ID を保持し
ないことに注意してください。
• 自分が所有していない Amazon SNS トピックに通知が送信されるように設定したい—このトピックの
所有者は、お客様のアカウントがこの所有者のトピックで SNS:Publish アクションを呼び出すことを許
可する Amazon SNS アクセスポリシーを設定する必要があります。IAM ポリシーを使用して Amazon
SNS トピックへのアクセスをコントロールする方法については、『Amazon Simple Notification Service
開発者ガイド』の「Amazon SNS トピックへのアクセスの管理」を参照してください。
Amazon SES サプレッションリストからの E メール
アドレスの削除
Amazon SES では、Amazon SES のお客様に対して最近ハードバウンスが発生した受信者の E メール
アドレスのサプレッションリストが保持されています。サプレッションリストに登録されているアド
レスに Amazon SES 経由で E メールを送信しようとした場合、Amazon SES の呼び出しは成功します
が、Amazon SES は、この E メールを送信せず、代わりにハードバウンスとして扱います。ハードバウン
スと同じく、ブラックリストのバウンスは送信量上限やバウンス率にカウントされます。E メールアドレ
スは、サプレッションリストに最大 14 日まで残ります。
アドレスがサプレッションリストに含まれているかどうかは、アドレスにメールを送信したときにサプ
レッションリストバウンスが返されるかどうかで唯一判断できます。事前にサプレッションリストを照会
する方法はありません。
Important
ハードバウンスとなる他の E メールアドレスと同様、サプレッションリストバウンスとなるアド
レスは、そのアドレスが有効であることが確実である場合を除き、メーリングリストから削除す
る必要があります。なぜなら、サプレッションリストバウンスはバウンス率に反映され、バウン
ス率が高くなるとアカウントがシャットダウンされる事態を招きかねないからです。配信不能の
アドレスをサプレッションリストから削除した後で、自分または他の Amazon SES ユーザーがそ
のアドレスに E メールを送信すると、そのアドレスはハードバウンスとなり、再びサプレッショ
ンリストに登録されます。
サプレッションリストに含まれているアドレスが有効であることがわかっている場合は、次の手順を使用
してリストからアドレスを削除できます。サプレッションリストは AWS リージョンごとに別個に用意さ
れますが、1 つのリージョンのサプレッションリストからアドレスを削除すると、すべてのリージョンの
サプレッションリストからそのアドレスが削除されます。
サプレッションリストから E メールアドレスを削除するには
1.
2.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
[Navigation] ペインで、[Suppression List Removal] を選択します。
3.
4.
5.
[Email Address] フィールドに、サプレッションリストから削除する E メールアドレスを入力します。
[Type characters] に、上のイメージに示された文字を入力します。
[Submit] を選択します。
フォームを送信した後は、別の E メールアドレスをフォームに入力できます。サプレッションリスト削除
リクエストは即座に処理されます。
API Version 2010-12-01
210
Amazon Simple Email Service 開発者ガイド
スループットを上げる
Amazon SES のスループットを上げる
E メールを送信するときは、最大送信レートで許可される頻度で Amazon SES を呼び出すことができま
す(最大送信レートの詳細については、「Amazon SES の送信制限の管理 (p. 167)」を参照してくださ
い)。ただし、それぞれの Amazon SES の呼び出しが完了するまで時間がかかります。
Amazon SES API または SMTP インターフェイスを使用して Amazon SES を複数回呼び出す場合は、次
のヒントを考慮するとスループットを高めることができます。
• 現在のパフォーマンスを測定してボトルネックを識別する - 考えられるパフォーマンステストには、ア
プリケーションのコードループ内で複数のテスト E メールをできる限り早く送信する操作が含まれま
す。各 SendEmail リクエストのラウンドトリップレイテンシーを測定します。次に、同じマシン上でア
プリケーションの追加インスタンスを増分的に起動して、ネットワークレイテンシーへの影響を調べま
す。また、このテストを複数のマシンおよび異なるネットワークで実行すると、考えられるあらゆるマ
シンリソースボトルネックや存在する可能性があるネットワークボトルネックを特定するのに役立ちま
す。
• (API のみ)永続的な HTTP 接続の使用を検討する - 永続的な HTTP 接続を使用して、API リクエスト
ごとに別個の新しい HTTP 接続を確立するオーバーヘッドを回避します。つまり、複数の API リクエス
トに対して同じ HTTP 接続を再利用します。
• 複数のスレッドを使用することを検討する - アプリケーションが 1 つのスレッドを使用する場合、アプ
リケーションコードは Amazon SES API を呼び出した後、API 応答を同期的に待ちます。通常、E メー
ル送信では I/O 負荷が高いため、複数のスレッドからこの操作をする方がよりスループットが向上しま
す。任意の数の実行スレッドを使用して、同時にメールを送信できます。
• 複数のプロセスを使用することを検討する - 複数のプロセスを使用すると、Amazon SES に対してより
多くの同時アクティブ接続を持つことになるため、スループットが向上します。たとえば、目的のメー
ルを複数のバケットにセグメント化した後、E メール送信スクリプトの複数のインスタンスを同時に実
行できます。
• ローカルメールリレーを使用することを検討する - アプリケーションは、ローカルメールサーバーに
メッセージを迅速に送信できます。次に、ローカルメールサーバーを使用して、メッセージをバッファ
処理し、非同期的に Amazon SES に送信します。一部のメールサーバーでは、同時配信がサポートされ
ています。つまり、アプリケーションがメールサーバーに送る E メールがシングルスレッドで生成され
る場合でも、メールサーバーから Amazon SES に E メールを送信するときは複数のスレッドが使用さ
れます。詳細については、「Amazon SES を既存の E メールサーバーに統合する (p. 62)」を参照してく
ださい。
• Amazon SES エンドポイントに近い場所でアプリケーションをホストすることを検討する - Amazon
SES エンドポイントに近いデータセンターか、Amazon SES API エンドポイントと同じ AWS リージョ
ンの Amazon EC2 インスタンスでアプリケーションをホストすることを検討してください。これによ
り、アプリケーションと Amazon SES の間のネットワークレイテンシーが小さくなり、スループッ
トが向上する可能性があります。Amazon SES エンドポイントのリストについては、「リージョンと
Amazon SES (p. 296)」を参照してください。
• 複数のマシンを使用することを検討する - ホストマシンのシステム構成によっては、単一 IP アドレスへ
の同時 HTTP 接続の数に制限がある場合があります。つまり、単一マシンでの特定の同時接続数を超え
た場合に並列処理の利点が制限されることになります。これがボトルネックとなる場合は、複数のマシ
ンを使用して同時 Amazon SES リクエストを実行することを検討してください。
• SMTP エンドポイントではなく Amazon SES クエリ API を使用することを検討する - SMTP エンド
ポイントとのやり取りには複数のネットワークリクエスト(たとえば、EHLO、MAIL FROM、RCPT
TO、DATA、QUIT)から構成される SMTP 対話が含まれるのに対し、Amazon SES クエリ API を使
用すると、単一のネットワーク呼び出しを使用して E メール送信リクエストを送信できます。Amazon
SES クエリ API の詳細については、「Amazon SES API を使用して E メールを送信する (p. 79)」を参
照してください。
• Amazon SES メールボックスシミュレーターを使用して最大スループットをテストする - 実装した変更
をテストするために、メールボックスシミュレーターを使用できます。メールボックスシミュレーター
を使用すると、日次送信クォータを使い果たすことなくシステムの最大スループットを判定できます。
メールボックスシミュレータの詳細については、「Amazon SES E メール送信のテスト (p. 197)」を
参照してください。
API Version 2010-12-01
211
Amazon Simple Email Service 開発者ガイド
SMTP に関する問題
SMTP インターフェイスを介して Amazon SES にアクセスする場合は、「Amazon SES SMTP に関する
問題 (p. 212)」のスループットに影響を与える可能性がある特定の SMTP 関連の問題を確認してくださ
い。
Amazon SES SMTP に関する問題
Amazon SES Simple Mail Transfer Protocol(SMTP)インターフェイスを介して E メールを送信すると
きに問題が発生した場合は、次に示す考えられる原因と解決策を確認してください。Amazon SES SMTP
インターフェイスを介して E メールを送信する方法に関する一般的な情報については、「Amazon SES
SMTP インターフェイスを使用して E メールを送信する (p. 54)」を参照してください。
• Amazon SES SMTP エンドポイントに接続できない
• 適切な認証情報を使用していることを確認します。SMTP 認証情報は、AWS の認証情報とは異なりま
す。SMTP 認証情報を取得する方法については、「Amazon SES SMTP 認証情報を取得する (p. 55)」
を参照してください。認証情報の詳細については、「Amazon SES での認証情報の使用 (p. 287)」
を参照してください。
• ネットワークにより、E メールを送信しようとしているポートでのアウトバウンド接続がブロックさ
れている可能性があります。telnet email-smtp.us-west-2.amazonaws.com <port> コマンドを試し
てください。ここで、<port> は、使用しようとしているポートです (通常は 25、465、587、2465、
または 2587 です)。このコマンドがうまく機能し、さらに TLS ラッパーまたは STARTTLS を使用し
て Amazon SES に接続しようとしている場合は、「コマンドラインを使用し、Amazon SES SMTP
インターフェイスを介して E メールを送信する (p. 77)」に示されている openssl コマンドを試して
ください。telnet または openssl を使用して Amazon SES SMTP エンドポイントに接続できない場合
は、ネットワークのどこか(たとえば、ファイアウォール)で、使用しようとしているポートでのア
ウトバウンド接続がブロックされている可能性があります。ネットワーク管理者と協力して、問題を
診断および解決してください。
• Amazon EC2 インスタンスからポート 25 を介して Amazon SES に送信しようとしていて、Amazon
SES 送信制限に達しないか、またはタイムアウトを受け取っている —Amazon EC2 では、ポート 25 を
介して送信される E メールにデフォルトの送信制限が適用され、この制限を超えて送信しようとした場
合にアウトバウンド接続が調整されます。これらの制限を解除するには、Amazon EC2 E メール送信制
限解除申請 を送信します。調整が適用されないポート 465 またはポート 587 を介して Amazon SES に
接続することもできます。
• ネットワークエラーが原因で E メールのドロップが発生している - アプリケーションが Amazon SES
SMTP エンドポイントに接続するときに再試行ロジックを使用していること、およびアプリケーション
がネットワークエラーを検出しメッセージ配信を再試行できることを確認します。SMTP は冗長プロト
コルで、このプロトコルを使用して E メールを送信する場合は複数のネットワークラウンドトリップ
が必要になります。このプロトコルの性質上、一時的なネットワークエラーの可能性が高くなります。
メッセージは、Amazon SES が Amazon SES メッセージ ID に応答する場合にのみ、Amazon SES に
よって配信用に受け付けられます。
• SMTP エンドポイントとの接続が失われる
• タイムアウトエラーメッセージが表示された場合、Amazon SES SMTP インターフェイスとの接続に
使用しているコンピューターのネットワークインターフェイスに対する最大送信単位 (MTU) のサイズ
が大きすぎる可能性があります。この状況が良くなるように、そのコンピューターに対する MTU の
サイズを 1500 に設定してみてください。Microsoft Windows、Linux、Mac OS X オペレーティングシ
ステムに対する MTU のサイズを設定する手順については、『Amazon Redshift Cluster Management
Guide』の「クライアントでクエリがハングしたようになり、クラスターに到達しない」を参照し
てください。Amazon EC2 インスタンスから Amazon SES に接続しているユーザーは、代わりに、
『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「パス MTU 検出のセキュリティグループ
ルール」で説明している回避策を試すこともできます。
• Amazon SES SMTP エンドポイントとの接続を長時間維持したままにしないでください。Amazon
SES SMTP エンドポイントは、Elastic Load Balancing(ELB)の背後の複数の Amazon EC2 イン
スタンス上で実行されます。システムの最新の状態と障害耐性を維持するために、アクティブな
Amazon EC2 インスタンスは定期的に終了され、新しいインスタンスと置き換えられます。アプリ
ケーションは ELB を介して Amazon EC2 インスタンスに接続するため、 Amazon EC2 インスタンス
が終了すると接続が無効になります。単一の SMTP 接続を使用して所定の数のメッセージを配信した
API Version 2010-12-01
212
Amazon Simple Email Service 開発者ガイド
SMTP に関する問題
後、または SMTP 接続がある程度の時間にわたってアクティブであった場合は、新しい SMTP 接続
を確立する必要があります。アプリケーションがホストされている場所やアプリケーションがどのよ
うに E メールを Amazon SES に送信するかに応じて、いろいろな値を試しながら適切なしきい値を
見つける必要があります。
• 本稼働環境のネットワークのホワイトリストに登録できるように、Amazon SES の SMTP メールサー
バーの IP アドレスを知りたい - Amazon SES の SMTP エンドポイントの IP アドレスは静的ではありま
せん。このエンドポイントはロードバランサーの背後にあり、その IP アドレスは頻繁に変更されること
があります。DNS と静的でない IP アドレスにのみ基づいたホワイトリストを作成することをお勧めし
ます。
• 「Amazon SES を既存の E メールサーバーに統合する (p. 62)」の指示に従って Amazon SES を
Sendmail または Postfix メールサーバーと統合している場合に、ホスト名が一致しないためにメール
サーバーが Amazon SES SMTP エンドポイントで認証されない。 - この場合は、次のステップを試して
ください。
• Sendmail - 「Amazon SES と Sendmail の連携 (p. 68)」のステップ 1 で、使用している Amazon
SES エンドポイントの AWS リージョンに応じて /etc/mail/authinfo に次の行を追加します。このと
き、USERNAME と PASSWORD を SMTP ユーザー名とパスワードで置き換えます。
リージョン名
/etc/mail/authinfo に追加する行
米国東部(バージ
ニア北部)
AuthInfo:ses-smtp-prod-335357831.us-east-1.elb.amazonaws.com
"U:root" "I:USERNAME" "P:PASSWORD" "M:LOGIN"
米国西部 (オレゴ
ン)
欧州 (アイルラン
ド)
AuthInfo:ses-smtp-us-west-2-prod-14896026.uswest-2.elb.amazonaws.com "U:root" "I:USERNAME" "P:PASSWORD"
"M:LOGIN"
AuthInfo:ses-smtp-eu-west-1-prod-345515633.euwest-1.elb.amazonaws.com "U:root" "I:USERNAME" "P:PASSWORD"
"M:LOGIN"
「Amazon SES と Sendmail の連携 (p. 68)」のステップ 4 で、/etc/mail/access に次の行を追加しま
す。
リージョン名
/etc/mail/access に追加する行
米国東部(バージ
ニア北部)
Connect:ses-smtp-prod-335357831.us-east-1.elb.amazonaws.com RELAY
米国西部 (オレゴ
ン)
Connect:ses-smtp-us-west-2-prod-14896026.us-west-2.elb.amazonaws.com
RELAY
欧州 (アイルラン
ド)
Connect:ses-smtp-eu-west-1-prod-345515633.euwest-1.elb.amazonaws.com RELAY
• Postfix - 「Amazon SES と Postfix の連携 (p. 64)」のステップ 3 で、使用している Amazon SES エ
ンドポイントの AWS リージョンに応じて /etc/postfix/sasl_passwd に次の行を追加します。このと
き、USERNAME と PASSWORD を SMTP ユーザー名とパスワードで置き換えます。
リージョン名
/etc/postfix/sasl_passwd に追加する行
米国東部(バージ
ニア北部)
ses-smtp-prod-335357831.us-east-1.elb.amazonaws.com:25
USERNAME:PASSWORD
米国西部 (オレゴ
ン)
ses-smtp-us-west-2-prod-14896026.us-west-2.elb.amazonaws.com:25
USERNAME:PASSWORD
API Version 2010-12-01
213
Amazon Simple Email Service 開発者ガイド
SMTP 応答コード
リージョン名
/etc/postfix/sasl_passwd に追加する行
欧州 (アイルラン
ド)
ses-smtp-eu-west-1-prod-345515633.eu-west-1.elb.amazonaws.com:25
USERNAME:PASSWORD
Amazon SES から返される SMTP 応答コード
このトピックには、Amazon SES により返される SMTP 応答コードのリストが含まれています。エラーが
どのように処理されるかは、使用する SMTP クライアントによって異なります。エラーコードをまったく
表示しない SMTP クライアントもあります。
4xx エラーを受け取った SMTP リクエストは、再試行する必要があります。この場合、重複が生成され
る可能性を下げるため、タイムアウトごとに待機時間が徐々に長くなる (5 秒、10 秒、30 秒) 段階的な
再試行方法を実装することをお勧めします。3 回目の再試行呼び出しが成功しない場合、20 分後に一
連の再試行をもう一度実行します。Amazon SES で段階的な再試行ポリシーを使用する実装例について
は、Amazon SES blogで「"Throttling - Maximum sending rate exceeded" エラーの対処法」を参照してく
ださい。
Note
AWS SDK は、再試行ロジックを自動的に実装しますが、SMTP の代わりに HTTPS インター
フェイスを使用します。
SMTP クライアントエラー (5xx) は、再試行する前にリクエストを修正して問題を解決する必要があるこ
とを示しています。たとえば、AWS 認証情報が無効な場合、E メールを再度送信する前に適切な認証情報
が使用されるように設定を更新する必要があります。
説明
Response Code(レスポンスコー
ド)
詳細情報
認証に成功
235 Authentication successful
該当なし
正常に配信
250 Ok <メッセージ ID>
<メッセージ ID> は、Amazon SES
がメッセージを一意に識別するた
めに使用する文字列です。
日次送信クォータの超過
454 Throttling failure: Daily
message quota exceeded
24 時間の期間に送信することが
Amazon SES によって許可され
たメッセージの最大数を超えまし
た。詳細については、「Amazon
SES の送信制限の管理 (p. 167)」
を参照してください。
最大送信レートの超過
454 Throttling failure: Maximum
sending rate exceeded
Amazon SES によって許可され
た、1 秒あたりに送信できる E
メールの最大数を超えました。詳
細については、「Amazon SES の
送信制限の管理 (p. 167)」を参照
してください。
SMTP 認証情報を検証すると 454 Temporary authentication
きの Amazon SES の問題
failure
考えられる理由を次に示します
(ただし、これらに限定されるも
のではありません)。
• E メール送信アプリケーション
と Amazon SES の間で暗号化
に関する問題が発生していま
す。Amazon SES に接続する
API Version 2010-12-01
214
Amazon Simple Email Service 開発者ガイド
SMTP 応答コード
説明
Response Code(レスポンスコー
ド)
詳細情報
ときは暗号化された接続を使用
する必要があることに注意し
てください。詳細については、
「Amazon SES SMTP エンドポ
イントに接続する (p. 58)」を参
照してください。
• Amazon SES に問題が発生して
いる可能性があります。AWS の
サービス状態ダッシュボード で
最新情報を確認してください。
リクエストの受信に関する問
題
454 一時的なサービス失敗
Amazon SES が正常にリクエスト
を受信しなかったため、メッセー
ジを送りませんでした。リクエス
トを再実行してください。
認証情報の誤り
530 Authentication required
E メール送信アプリケーション
は、Amazon SES SMTP インター
フェイスに接続しようとしたと
きに Amazon SES への認証を
試行しませんでした。Amazon
SES で認証されるように E メー
ル送信アプリケーションをセット
アップする方法の例については、
「Amazon SES を介して送信する
ために、E メールクライアントを
設定する (p. 59)」を参照してくだ
さい。
無効な認証情報
535 Authentication Credentials
Invalid
E メール送信アプリケーションが
Amazon SES に正しい SMTP 認証
情報を提供しませんでした。SMTP
認証情報は AWS 認証情報と同じで
はありません。詳細については、
「Amazon SES SMTP 認証情報を
取得する (p. 55)」を参照してくだ
さい。
Amazon SES に登録されて
いないアカウント
535 Account not subscribed to SES
SMTP 認証情報を所有する AWS
アカウントは、Amazon SES にサ
インアップされていません。
Amazon SES SMTP エンド
ポイントを呼び出す許可が与
えられていないユーザー
554 アクセス拒否: ユーザー <ユー
ザー ARN> は ses を実行する権限
がありません: リソース <ID ARN>
の SendRawEmail
SMTP 認証情報を所有するユー
ザーの AWS Identity and Access
Management (IAM) ポリシーまた
は Amazon SES 送信承認ポリシー
では、Amazon SES SMTP エンド
ポイントを呼び出すことが許可さ
れません。既存の IAM ユーザー
の SMTP 認証情報を取得する方
法については、「AWS 認証情報
を変換することにより、Amazon
SES SMTP 認証情報を取得す
る (p. 56)」を参照してください。
API Version 2010-12-01
215
Amazon Simple Email Service 開発者ガイド
API エラーコード
説明
Response Code(レスポンスコー
ド)
詳細情報
未確認の E メールアドレス
554 Message rejected:
Amazon SES に対して確
Email address is not verified.
認 (p. 36)していない E メール
以下のアイデンティティ
アドレスまたはドメインから E
がリージョン <region>:
メールを送信しようとしていま
<identity1>、<identity2>、<identity3> す。このエラーは、「From」、
で確認できませんでした。
「Source」、「Sender」または
「Return-Path」のアドレスには適
用することができます。 アカウン
トがサンドボックスにまだある場
合は、Amazon SES のメールボッ
クスシミュレーター (p. 197)から
提供されているアドレスを除く、
すべての受取人のアドレスも確
認する必要があります。Amazon
SES が失敗したアイデンティティ
をすべて表示できない場合は、エ
ラーメッセージが省略符号で終了
します。
Note
Amazon SES は複
数の AWS リージョ
ン (p. 296)にエンドポイ
ントを持ち、E メールアド
レスの検証ステータスは
AWS のリージョンごとに
別個に扱われます。使用
する AWS リージョンの各
送信者について、確認プ
ロセスを完了する必要が
あります。
Amazon SES から返される API エラーコード
このトピックには、Amazon SES の Query (HTTPS) API から返されるエラーコードのリストが含まれてい
ます。Amazon SES API の詳細については、「Amazon Simple Email Service API Reference」を参照して
ください。
5xx エラーを受け取った HTTPS リクエストは、再試行する必要があります。この場合、重複が生成さ
れる可能性を下げるため、タイムアウトごとに待機時間が徐々に長くなる (5 秒、10 秒、30 秒) 段階的
な再試行方法を実装することをお勧めします。3 回目の再試行呼び出しが成功しない場合、20 分後に一
連の再試行をもう一度実行します。Amazon SES で段階的な再試行ポリシーを使用する実装例について
は、Amazon SES blogで「"Throttling - Maximum sending rate exceeded" エラーの対処法」を参照してく
ださい。
Note
AWS SDK は、再試行ロジックを自動的に実装します。
HTTPS クライアントエラー (4xx) は、再試行する前にリクエストを修正して問題を解決する必要があるこ
とを示しています。たとえば、AWS 認証情報が無効な場合、E メールを再度送信する前に適切な認証情報
が使用されるように設定を更新する必要があります。
API Version 2010-12-01
216
Amazon Simple Email Service 開発者ガイド
API エラーコード
エラー
説明
HTTPS ステータスコー
ド
このコードを返すアク
ション
ConfigurationSetDoesNotExist
指定した設定セットが
存在しません。設定
セットは、メール送信
イベントの発行に使用
するオプションのパラ
メーターです。詳細に
ついては、「Amazon
SES イベント発行を
使用したモニタリン
グ (p. 118)」を参照し
てください。
400
SendEmail,
SendRawEmail
IncompleteSignature
リクエストの署名が
AWS 基準に適合しませ
ん。
400
すべて
InternalFailure
不明なエラー、例外、
または障害により、リ
クエスト処理が失敗し
ました。
500
すべて
InvalidAction
要求されたアクション
またはオペレーション
は無効です。アクショ
ンが正しく入力され
ていることを確認しま
す。
400
すべて
InvalidClientTokenId
指定された x.509 証明
書、または AWS アクセ
スキー ID が見つかりま
せん。
403
すべて
InvalidParameterCombination
同時に使用できないパ
ラメータが、同時使用
されています。
400
すべて
InvalidParameterValue
無効な値または範囲外
の値が入力パラメー
タとして指定されまし
た。
400
すべて
InvalidQueryParameter
AWS クエリ文字列
が正しい形式でない
か、AWS 標準を順守し
ていません。
400
すべて
400
SendEmail,
SendRawEmail
MailFromDomainNotVerified
Amazon SES では、指
定された MAIL FROM
ドメインを使用するた
めに必要な MX レコー
ドを読み取ることがで
きず、メッセージを送
信できませんでした。
API Version 2010-12-01
217
Amazon Simple Email Service 開発者ガイド
API エラーコード
エラー
説明
HTTPS ステータスコー
ド
このコードを返すアク
ション
MalformedQueryString
クエリ文字列に構文エ
ラーがあります。
404
すべて
MessageRejected
アクションが失敗し、
メッセージを送信で
きなかったことを示
します。エラーの原因
については、エラース
タックを確認してく
ださい。このエラー
の原因となる可能性
がある問題について
は、「Amazon SES
の E メール送信エ
ラー (p. 204)」を参照
してください。
400
SendEmail,
SendRawEmail
MissingAction
リクエストに、アク
ションまたは必須パラ
メータが含まれていま
せん。
400
すべて
MissingAuthenticationToken
リクエストには、有効
な(登録された)AWS
アクセスキー ID、また
は X.509 証明書のどち
らか一方が含まれてい
る必要があります。
403
すべて
MissingParameter
指定したアクションの
必須パラメータが指定
されていません。
400
すべて
OptInRequired
サービスを利用するた
めには、AWS アクセス
キー ID を取得する必要
があります。
403
すべて
RequestExpired
リクエストの日付スタ
ンプの 15 分以上後また
はリクエストの有効期
限(署名付き URL の場
合など)の 15 分以上後
に、リクエストが到着
しました。または、リ
クエストの日付スタン
プが現在より 15 分以上
先です。
400
すべて
ServiceUnavailable
サーバーの一時的障害
のため、リクエストは
失敗しました。
503
すべて
API Version 2010-12-01
218
Amazon Simple Email Service 開発者ガイド
エンフォースメントに関するよくある質問
エラー
説明
HTTPS ステータスコー
ド
このコードを返すアク
ション
Throttling
リクエストは、制限が
必要なために実行が拒
否されました。
400
すべて
Amazon SES のエンフォースメントに関するよくある
質問
E メールを送信したことにより、バウンス、苦情、およびその他の問題が過剰に発生する場合は、送信機
能が停止猶予になったり、停止される可能性があります。このプロセスは、エンフォースメントと呼ば
れています。このような場合、AWS アカウントに関連付けられた E メールアドレスに通知が送信されま
す。
このセクションでは、次のエンフォースメントに関するトピックについて、よくある質問を紹介します。
• 停止猶予 (p. 219)
• 停止 (p. 221)
• バウンス (p. 223)
• 苦情 (p. 225)
• スパムトラップ (p. 229)
• 手動調査 (p. 230)
Amazon SES の停止猶予に関するよくある質問
Q1. 停止猶予の通知を受信しました。これはどういう意味ですか。
お客様のアカウントでの送信に深刻な問題が見つかったため、その問題を解決するための時間が与えられ
ます。現在も通常の送信を実行できますが、割り当てられた時間内で問題を解決しない場合、または許可
を申請しない場合、Amazon SES の送信権限が停止される可能性があります。
Q2. 停止猶予になった場合は、必ず通知されますか?
はい。Amazon SES の停止猶予に関連する AWS アカウントの E メールアドレスに通知が送信されます。
Q3. Amazon SES の停止猶予は、他の AWS サービスの使用に影響を与えますか?
いいえ。
Q4. 停止猶予になった場合、どうすればよいですか?
次のことを実行してください。
• お客様の状況で可能な場合は、問題が解決されるまでメールの送信を停止します。Amazon SES を経由
したメールの送信機能は停止猶予による影響を受けませんが、問題解決の変更を 1 度も行わずに引き続
きメールを送信すると、送信を継続している際に重大な問題が発生します。
• 弊社から受け取る E メールをご覧になり、問題の概要について確認してください。
• 送信内容を調べて、どのような送信が原因で問題が発生したのかを具体的に特定します。
• 問題を解決したら、その問題解決を通知する要請を弊社に送信してください(「Q6. 要請を送信するに
は、どうすればよいですか? (p. 220)」を参照)。停止猶予に関する要請は、問題解決のための変更を
API Version 2010-12-01
219
Amazon Simple Email Service 開発者ガイド
エンフォースメントに関するよくある質問
行った後でのみ送信してください。変更がまだ計画段階であるときに、その変更の概要を示す要請は送
信しないでください。このような要請が送信された場合は、問題解決が実際に行われたときに再度弊社
に連絡するように求められます。お客様が問題を解決したことが確認された場合は、停止猶予が解除さ
れます。
• 弊社が具体的に要求するすべての情報を必ず提供してください。お客様の状況を評価するために、これ
らの情報が必要になります。
Q5. 要請とは何ですか?
要請とは、停止猶予の通知や停止の通知に応答するときに(または AWS アカウントに関連付けられた E
メールアドレスから [email protected] に E メールを送信するとき)、停止猶予や停止を解
除できるかどうかを判断するための特定の情報を提供することです。提供する情報のリストについては、
「Q6. 要請を送信するには、どうすればよいですか? (p. 220)」を参照してください。
Q6. 要請を送信するには、どうすればよいですか?
停止猶予の通知に応答するだけです。停止猶予の通知が見つからない場合は、AWS アカウントに関連付け
られた E メールアドレスから [email protected] に要請を送信します。要請では、次の 3 点
について、できるだけ詳しく説明してください。
• 問題がどのように発生したか、および発生の理由に関する説明。
• 問題に対処するためにすでに行った変更のリスト(計画中の変更ではありません)。
• これらの変更によって問題が再度発生しないと考えられる理由。
お客様の問題に特に関連するよくある質問(バウンスに関する質問など)をお読みになり、要請に含める
必要がある追加の情報があるかどうかを確認してください。
Note
これらの情報が十分に提供されないと、要請の処理に時間がかかります。これは、問題解決を判
断する前に、不足している情報を弊社から要求するためです。また、要請に関するやり取りを
行っているときに弊社から追加の情報が具体的に要求された場合は、それらの情報を必ず提供し
てください。
Q7. 要請が受け入れられない場合どうなりますか?
お客様の要請が受け入れられなかった理由を説明する応答が弊社から送られます。場合によっては、問題
に対処した後で再度要請を送信することができます。たとえば、追加の情報をお客様に要求した場合に、
その情報を提供すると、お客様の要請が受け入れられる可能性があります。また、どのように問題を解決
する予定であるかを知らせて、実際には問題がまだ解決されていないこと伝えると、問題を実際に解決し
たときに再度弊社へ連絡するように求められます。
Q8. 問題を診断する際にサポートを受けることはできますか?
通常は、問題の概要だけが伝えられます(たとえば、バウンスに関する問題があるなど)。根本原因は、
お客様の側で調査する必要があります。
Q9. 停止猶予が解除されたことを確認するには、どうすればよいですか?
お客様の要請に応答するときに、その情報が通知されます。場合によっては、AWS アカウントに関連付け
られた E メールアドレスに自動的に通知が送信されます。通知には、停止猶予が解除されたこと、または
問題が解決されていないために、お客様のアカウントが停止されていることが示されます。
Q10. 問題が存在する場合は必ず停止猶予の期間が発生しますか?
いいえ。次の 2 つの状況では、停止猶予の期間が発生しない場合があります。
API Version 2010-12-01
220
Amazon Simple Email Service 開発者ガイド
エンフォースメントに関するよくある質問
• 送信の問題が深刻なものである場合は、すぐに停止される可能性があります。他のすべての停止の場合
と同様に、停止される時点で弊社から通知が送信されます。
• 停止猶予が繰り返される傾向が顕著になると、最終的には、再度停止猶予になるのではなく、停止され
る可能性があります。そのため、個々の停止猶予の原因となる個別の問題に対処するのではなく、根本
的な問題に対処することが重要となります。たとえば、特定のキャンペーンが原因で停止猶予となる場
合は、そのキャンペーンを単に停止すること以外にも、必要な作業があります。キャンペーンのどのよ
うな特徴が問題となっていたかを特定し、今後のキャンペーンで同じ問題が発生しないようにするプロ
セスを構築する必要があります。
Q11. 停止猶予の期限が切れる直前に問題を解決した場合どうなりますか?
要請の手続きに従って弊社に連絡し、問題を解決したことをお知らせください。
Q12. AWS の担当者やプレミアムサポートからサポートを受けることはできます
か?
AWS 顧客担当者と頻繁にやり取りをしている場合は、お客様の停止猶予や停止について弊社から担当者
に連絡します。場合によっては、その担当者から問題の理解に役立つサポートを受けることができます。
また、お客様が担当者に直接連絡することもできます。プレミアムサポートにサインアップすると、プレ
ミアムサポートのチームに依頼して、停止猶予や停止のプロセスについてサポートを受けることができま
す。
Amazon SES の停止に関するよくある質問
Q1. 停止の通知を受け取りました。これはどういう意味ですか。
お客様の送信内容に重要な問題が発生したため、お客様のアカウントがシャットダウンされます。これに
より、E メールを送信できなくなります。停止が発生する場合として、次の 3 つのシナリオがあります。
• 送信の問題(バウンスなど)のために停止猶予になっており、問題が解決されないまま、停止猶予の期
限が切れた場合。
• 問題が非常に深刻であるため、停止猶予の期間が適用されずに直ちに停止された場合。
• 特定の問題について停止猶予が繰り返されており、その問題が再度発生した場合。
Q2. 停止された場合は、必ず通知されますか?
はい。Amazon SES の停止に関連する AWS アカウントの E メールアドレスに通知が送信されます。
Q3. Amazon SES の停止は、他の AWS サービスの使用に影響を与えますか?
いいえ。
Q4. アカウントが停止された場合、どうすればよいですか?
次のことを実行してください。
• 弊社から受け取る E メールをご覧になり、問題の概要について確認してください。
• 送信内容を調べて、どのような送信が原因で問題が発生したのかを具体的に特定します。
• 問題を解決したら、その問題解決を通知する要請を弊社に送信してください(「Q6. 要請を送信するに
は、どうすればよいですか? (p. 222)」を参照)。停止に関する要請は、問題解決のための変更を行っ
た後でのみ送信してください。変更がまだ計画段階であるときに、その変更の概要を示す要請は送信し
ないでください。このような要請が送信された場合は、問題解決が実際に行われたときに再度弊社に連
絡するように求められます。
API Version 2010-12-01
221
Amazon Simple Email Service 開発者ガイド
エンフォースメントに関するよくある質問
• 弊社が具体的に要求するすべての情報を必ず提供してください。お客様の状況を評価するために、これ
らの情報が必要になります。
Q5. 要請とは何ですか?
要請とは、停止猶予の通知や停止の通知に応答するときに(または AWS アカウントに関連付けられた E
メールアドレスから [email protected] に E メールを送信するとき)、停止猶予や停止を解
除できるかどうかを判断するための特定の情報を提供することです。提供する情報のリストについては、
「Q6. 要請を送信するには、どうすればよいですか? (p. 222)」を参照してください。
Q6. 要請を送信するには、どうすればよいですか?
停止の通知に応答するだけです。停止の通知が見つからない場合は、AWS アカウントに関連付けられた
E メールアドレスから [email protected] に要請を送信します。要請では、次の 3 点につい
て、できるだけ詳しく説明してください。
• 問題がどのように発生したか、および発生の理由に関する説明。
• 問題に対処するためにすでに行った変更のリスト(計画中の変更ではありません)。
• これらの変更によって問題が再度発生しないと考えられる理由。
お客様の問題に特に関連するよくある質問(バウンスに関する質問など)をお読みになり、要請に含める
必要がある追加の情報があるかどうかを確認してください。
Note
これらの情報が十分に提供されないと、要請の処理に時間がかかります。これは、問題解決を判
断する前に、不足している情報を弊社から要求するためです。また、要請に関するやり取りを
行っているときに弊社から追加の情報が具体的に要求された場合は、それらの情報を必ず提供し
てください。
Q7. 要請が受け入れられない場合どうなりますか?
お客様の要請が受け入れられなかった理由を説明する応答が弊社から送られます。場合によっては、問題
に対処した後で再度要請を送信することができます。たとえば、追加の情報をお客様に要求した場合に、
その情報を提供すると、お客様の要請が受け入れられる可能性があります。また、どのように問題を解決
する予定であるかを知らせて、実際には問題がまだ解決されていないこと伝えると、問題を実際に解決し
たときに再度弊社へ連絡するように求められます。
Q8. 問題を診断する際にサポートを受けることはできますか?
通常は、問題の概要だけが伝えられます(たとえば、バウンスに関する問題があるなど)。根本原因は、
お客様の側で調査する必要があります。
Q9. アカウントが回復されたことを確認するには、どうすればよいですか?
お客様の要請に応答するときに、その情報が通知されます。場合によっては、AWS アカウントに関連
付けられた E メールアドレスに自動的に通知が送信されます。また、Amazon SES を経由して(たとえ
ば、Amazon SES コンソールを使用して)、お客様が自分宛に E メールを送信する方法もあります。この
E メールの送信が成功した場合は、アカウントが回復されています。
Q10. AWS の担当者やプレミアムサポートからサポートを受けることはできます
か?
AWS 顧客担当者と頻繁にやり取りをしている場合は、お客様の停止猶予や停止について弊社から担当者
に連絡します。場合によっては、その担当者から問題の理解に役立つサポートを受けることができます。
また、お客様が担当者に直接連絡することもできます。プレミアムサポートにサインアップすると、プレ
API Version 2010-12-01
222
Amazon Simple Email Service 開発者ガイド
エンフォースメントに関するよくある質問
ミアムサポートのチームに依頼して、停止猶予や停止のプロセスについてサポートを受けることができま
す。
Amazon SES のバウンスに関するよくある質問
Q1. なぜバウンスを重視しているのですか?
高いバウンス率は、ISP、メールボックスプロバイダー、アンチスパム組織などの団体によって頻繁に使
用されます。このようなバウンス率は、送信者が実施している E メール送信の手続きが適切なものではな
く、それらの E メールはブロックされるか、スパムフォルダに送られる必要があることを示す指標として
利用されます。
Q2. バウンス率について停止猶予の通知や停止の通知を受信した場合、どうすれ
ばよいですか?
根本的な問題を解決し、お客様の状況を再評価するための要請を行います。要請の手続きについては、停
止猶予や停止に関するよくある質問を参照してください。要請には、停止猶予や停止に関するよくある質
問で説明されている情報に加えて、次の情報も含めてください。
• バウンスの追跡で使用する方法。
• 新しい受信者へ送信する前に、新しい受信者の E メールアドレスが有効であることを検証する方法。た
とえば、「Q11. バウンスを最小限に抑えるにはどうすればよいですか? (p. 224)」で実行する推奨事項
などがあります。
Q3. どのような種類のバウンスがバウンス率に含まれますか?
バウンス率には、まだ検証していないドメインに対するハードバウンスのみが含まれます。ハードバウン
スは、"アドレスは存在しません" などの永続的な配信障害です。"メールボックスがいっぱいです" などの
一時的かつ断続的な障害や、IP アドレスのブロックによるバウンスは、バウンス率にカウントされませ
ん。
Q4. 停止猶予や停止の原因となる Amazon SES のバウンス率の制限は公開されて
いますか?
いいえ。ただし、「Amazon Simple Email Service の E メール送信のベストプラクティスホワイトペー
パー」でバウンスの回避方法に関する一般的なバウンス率のガイドラインとヒントを確認することはでき
ます。
Q5. バウンス率の計算対象となる期間はどれくらいですか?
バウンス率の計算は一定期間に基づいて行われるわけではありません。これは、さまざまな送信者が異な
る割合で送信を行うためです。代わりに、いわゆる代表ボリュームを調べます。このボリュームは、送信
手続きの評価に利用できる十分な量のメールを含んでいることを表しています。大量のメールの送信者と
少量のメールの送信者を公平に扱うために、代表ボリュームはユーザーごとに異なっており、ユーザーの
送信パターンの変化に伴って代表ボリュームも変わります。
Q6. Amazon SES コンソールや GetSendStatistics API の情報を使用して、自分で
バウンス率を計算できますか?
いいえ。バウンス率は、代表ボリュームを使用して計算されます(「Q5. バウンス率の計算対象とな
る期間はどれくらいですか? (p. 223)」を参照)。送信レートによっては、バウンス率の計算期間
が、Amazon SES コンソールや GetSendStatistics で取得できるバウンス率よりも過去にさかのぼる場
合があります。また、バウンス率を計算するときに考慮されるのは、検証されていないドメインへの E
メールのみです。ただし、このコンソールや API による方法を使用して定期的にバウンス率をモニタリン
グしている場合は、これらの方法で取得したバウンス率は適切な指標となり、バウンス率が停止猶予や停
止の原因となるレベルに達する前に問題を把握することができます。
API Version 2010-12-01
223
Amazon Simple Email Service 開発者ガイド
エンフォースメントに関するよくある質問
Q7. どの E メールアドレスがバウンスされたかを確認するには、どうすればよい
ですか?
Amazon SES から送信されたバウンス通知を調べます。Amazon SES が通知を転送する E アドレスは、
「Amazon SES E メールでの通知 (p. 99)」に説明されているように、元のメッセージの送信方法に
よって異なります。また、「Amazon SES 通知を使用したモニタリング (p. 98)」に説明されているよ
うに、Amazon Simple Notification Service (Amazon SNS) を経由するようにバウンス通知をセットアップ
することもできます。バウンスされたアドレスを詳しく調べずにリストから削除すると、根本的な問題が
解決できなくなる場合があるので、注意してください。バウンスを減らすために実行できる作業について
は、「Q11. バウンスを最小限に抑えるにはどうすればよいですか? (p. 224)」を参照してください。
Q8. バウンスをモニタリングしていない場合、バウンスされたアドレスのリスト
は提供されますか?
いいえ。弊社では、包括的なリストを提供することはできません。E メールや Amazon SNS を利用して、
バウンスを定期的にモニタリングする必要があります。
Q9. バウンスはどのように処理すればよいですか?
バウンスされたアドレスをメーリングリストから削除し、それらのアドレスへのメール送信をすぐに停止
する必要があります。少量のメールの送信者であれば、場合によっては、E メールを使用してバウンスを
モニタリングし、バウンスされたアドレスをメーリングリストから手動で削除するだけで十分です。ボ
リュームが大きいときは、場合によっては、このプロセスの自動化をセットアップする必要があります。
そのためには、バウンスを受信したメールボックスをプログラムで処理するか、Amazon SNS を経由する
ようにバウンス通知をセットアップします。詳細については、「Amazon SES 通知を使用したモニタリン
グ (p. 98)」を参照してください。
Q10. 送信制限に達したために、E メールがバウンスされる場合はありますか?
いいえ。バウンスは送信制限とは無関係です。送信制限を超過する場合に E メールの送信を試みる
と、Amazon SES API や SMTP インターフェイスからエラーを受信します。
Q11. バウンスを最小限に抑えるにはどうすればよいですか?
まず、バウンスについて把握していることを確認します(「Q7. どの E メールアドレスがバウンスされた
かを確認するには、どうすればよいですか? (p. 224)」を参照)。その後で、次のガイドラインに従いま
す。
• E メールアドレスの購入、貸与、共有は行わないでください。お客様からのメールを実際にリクエスト
したアドレスのみを使用します。
• バウンスされた E メールアドレスをリストから削除します。
• E メールアドレスを要求するときは、タイプミスを回避するために、アドレスを 2 回入力するように指
示して、それらのアドレスが一致するように要求します。
• ダブルオプトインを使用して、新しいユーザーをサインアップします。つまり、新しいユーザーがサイ
ンアップするときには、それらのユーザーに確認メールを送信します。確認メールには、追加のメー
ルを受け取るためにクリックする必要があることを記載します。これにより、あるユーザーが他のユー
ザーをサインアップしたり、誤ってサインアップすることを回避できます。
• 最近メールを送信していないアドレスに送信する必要がある場合(つまり、そのアドレスがまだ有効で
あるかどうかを確認できていない場合)、すべての送信内容のごく一部だけを、そのアドレスに送信し
ます。詳細については、ブログ投稿「古いアドレスには送信しないこと。ただし、送信する必要がある
場合はどうするか?」を参照してください。
• 架空のアドレスの使用を推奨するようなサインアップを構築していないことを確認します。新しいユー
ザーの E メールアドレスが確認されるまで、それらのユーザーに任意のアドレスの値を提供しないでく
ださい。また、メールを受信するためのサインアップを実際に行ったときにだけ、新しいユーザーのア
ドレスを要求することは避けてください。
API Version 2010-12-01
224
Amazon Simple Email Service 開発者ガイド
エンフォースメントに関するよくある質問
• "友だちにメールを送る" 機能を取り入れている場合は、CAPTCHA や同様のメカニズムを使用して、こ
の機能が自動的に使用されることを防いでください。また、ユーザーが自由にコンテンツを挿入するこ
とを許可しないでください。CAPTCHA の詳細については、http://www.captcha.net/ を参照してくださ
い。
• システム通知用に Amazon SES を使用している場合は、メールを受信できる実在のアドレスに通知を送
信していることを確認してください。また、不要な通知は無効にすることを検討してください。
• 新しいシステムをテストしている場合は、E メールを受信できる実在のアドレスに送信していること、
または Amazon SES メールボックスシミュレーターを使用していることを確認してください。詳細につ
いては、「Amazon SES E メール送信のテスト (p. 197)」を参照してください。
Amazon SES の苦情に関するよくある質問
Q1. 苦情とは何ですか?
受取人が E メールの受け取りを希望していないことを報告した場合に、苦情が発生します。受取人は、E
メールクライアントで "これはスパムです" などのボタンをクリックした、E メールプロバイダーに苦情を
報告した、Amazon SES ディレクトリに通知した、またはその他の方法を使用した可能性があります。こ
のトピックには、苦情に関する全般的な情報が含まれています。通知に、苦情のソースに関する特定の情
報が含まれている場合は、関連トピック「ISP フィードバックループを通じた Amazon SES の苦情に関
する FAQ (p. 226)」、「Amazon SES 受取人からの直接の苦情に関する FAQ (p. 227)」、または「E
メールプロバイダーを通じた Amazon SES の苦情に関する FAQ (p. 228)」も参照してください。
Q2. なぜ苦情を重視しているのですか?
高い苦情率は、ISP、E メールプロバイダー、アンチスパム組織などの団体によって頻繁に使用されます。
このような苦情率は、E メールを受信するためのサインアップを実際には行っていない受信者に送信者が
メールを送ったことや、送信者が送ったコンテンツは受信者がサインアップしたときのコンテンツの種類
と異なっていることを示す指標として利用されます。
Q3. 苦情率について停止猶予の通知や停止の通知を受信した場合、どうすればよ
いですか?
お客様のリスト取得プロセスと E メールの内容を確認して、受取人がお客様の E メールを受け取りたく
ない理由を特定します。原因が判明したら、根本的な問題を解決し、お客様のケースが再評価されるよう
に要請してください。要請の手続きについては、停止猶予や停止に関するよくある質問を参照してくださ
い。
Q4. 苦情を最小限に抑えるにはどうすればよいですか?
最初に、Amazon SES が通知できる苦情を必ずモニタリングします。これは、ISP フィードバックループ
を通じて Amazon SES が受け取る苦情です (「ISP フィードバックループを通じた Amazon SES の苦情に
関する FAQ (p. 226)」を参照)。その後で、次のガイドラインに従います。
• E メールアドレスの購入、貸与、共有は行わないでください。お客様からのメールを実際にリクエスト
したアドレスのみを使用します。
• ダブルオプトインを使用して、新しいユーザーをサインアップします。つまり、ユーザーがサインアッ
プするときには、それらのユーザーに確認メールを送信します。確認メールには、追加のメールを受け
取るためにクリックする必要があることを記載します。これにより、あるユーザーが他のユーザーをサ
インアップしたり、誤ってサインアップすることを回避できます。
• 送信したメールへの対応状況をモニタリングし、メッセージを開かなかったり、クリックしなかった受
信者への送信を停止します。
• 新しいユーザーがサインアップするとき、ユーザーが受信する E メールの種類を明確にします。また、
ユーザーがサインアップしたときの対象となっている種類のメールだけを送信するようにします。たと
えば、ユーザーがニュースの更新に対してサインアップした場合は、広告を送信しないでください。
API Version 2010-12-01
225
Amazon Simple Email Service 開発者ガイド
エンフォースメントに関するよくある質問
• メールが適切な形式になっており、見た目の質も高いことを確認します。
• メールがお客様からのものであることが明確になっており、他のメールと混同されないことを確認しま
す。
• ユーザーがメールの受信登録を解除するとき、わかりやすく簡単な方法で実行できるようにします。
ISP フィードバックループを通じた Amazon SES の苦情に関する FAQ
このトピックでは、フィードバックループを通じて Amazon SES が受け取った苦情に関する情報を示しま
す。すべての種類の苦情に適用される一般的情報については、「Amazon SES の苦情に関するよくある質
問 (p. 225)」を参照してください。
Q1. この種類の苦情が報告される方法は?
ほどんどの E メールクライアントプログラムには、メッセージをスパムフォルダーに移動して ISP に
転送するためのボタン([Mark as Spam] など)が用意されています。また、ほとんどの ISP では、
ユーザーが不要な E メールを転送して ISP による防止策をリクエストできる迷惑メール用アドレス
([email protected] など) を用意しています。Amazon SES に ISP でセットアップしたフィードバック
ループ (FBL) が存在する場合、ISP は苦情を Amazon SES に送信し直します。
Q2. これらの苦情は、Amazon SES コンソールにある苦情率の統計に含まれてい
て、GetSendStatistics API で返されますか?
はい。ただし、苦情率の統計には、Amazon SES にフィードバックを提供しない ISP からの苦情は含まれ
ません。ただしこのような場合でも、フィードバックを提供するドメインに基づく苦情率は、他の送信状
況を代表する苦情率と考えることができます。
Q3. これらの苦情はどのようにして通知されますか?
E メールまたは Amazon SNS 通知を通じて通知を受けることができます。セットアップ手順については、
「Amazon SES 通知を使用したモニタリング (p. 98)」を参照してください。
Q4. E メールまたは Amazon SNS を通じて苦情の通知を受け取った場合はどうすればよいです
か?
最初に、苦情が発生したアドレスをメーリングリストから削除し、それらのアドレスへのメール送信を
すぐに停止する必要があります。受信登録を解除するリクエストを受け取ったことを示す E メールの
送信も行わないでください。場合によっては、このプロセスの自動化をセットアップする必要がありま
す。そのためには、苦情を受信したメールボックスをプログラムで処理するか、Amazon SNS を経由す
るように苦情通知をセットアップします。詳細については、「Amazon SES 通知を使用したモニタリン
グ (p. 98)」を参照してください。
次に、送信状況を詳細に調べて、お客様から送信されたメールを受信者が快く思わない理由を判断し、根
本的な問題に対処します。苦情を持つすべてのユーザーの中には、お客様のメールを快く思わなかった受
信者が多数いる場合もあれば、苦情を申し出なかった(または苦情を申し出ることができなかった)受信
者が多数いる場合もあります。実際に苦情を申し出た受信者を削除しただけでは、送信状況の根本的な問
題に対処したことになりません。
Q5. 停止猶予や停止の原因となる Amazon SES の苦情率の制限は公開されていますか?
いいえ。ただし、「Amazon Simple Email Service の E メール送信のベストプラクティスホワイトペー
パー」で苦情の回避方法に関する一般的な苦情率のガイドラインとヒントを確認することはできます。
Q6. 苦情率の計算対象となる期間はどれくらいですか?
苦情率の計算は一定期間に基づいて行われるわけではありません。これは、さまざまな送信者が異なる割
合で送信を行うためです。代わりに、いわゆる代表ボリュームを調べます。このボリュームは、送信手続
API Version 2010-12-01
226
Amazon Simple Email Service 開発者ガイド
エンフォースメントに関するよくある質問
きの評価に利用できる十分な量のメールを含んでいることを表しています。大量のメールの送信者と少量
のメールの送信者を公平に扱うために、代表ボリュームはユーザーごとに異なっており、ユーザーの送信
パターンの変化に伴って代表ボリュームも変わります。また、苦情率はすべての E メールに基づいて計算
されるわけではありません。苦情率は、苦情のフィードバックを Amazon SES に送るドメインを対象とし
ており、それらのドメインに送信されたメールに対する苦情の割合として計算されます。
Q7. Amazon SES コンソールや GetSendStatistics API のメトリクスを使用して、自分で苦情率を
計算できますか?
いいえ。その主な理由には、次の 2 つがあります。
• 苦情率は、代表ボリュームを使用して計算されます(「Q6」を参照)。送信レートによっては、苦情率
の計算期間が、Amazon SES コンソールや GetSendStatistics で取得できるバウンス率よりも過去に
さかのぼる場合があります。ただし、このコンソールや API による方法を使用して定期的に苦情率をモ
ニタリングしている場合は、これらの方法で取得した苦情率は適切な指標となり、苦情率が停止猶予や
停止の原因となるレベルに達する前に問題を把握することができます。
• 苦情率を計算するとき、すべての E メールが計算対象になるわけではありません。苦情率は、苦情の
フィードバックを Amazon SES に送るドメインを対象としており、それらのドメインに送信されたメー
ルに対する苦情の割合として計算されます。
Q8. どの E メールアドレスに苦情があったかを確認するには、どうすればよいですか?
E メールまたは Amazon SNS を通じて Amazon SES から送信される苦情の通知を調べます (「Amazon
SES 通知を使用したモニタリング (p. 98)」を参照)。ただし、ISP によって提供される情報の量は異な
り、一部の ISP は、苦情通知を Amazon SES に渡す前に、苦情を送信した受取人の E メールアドレスを
編集します。今後、受取人の E メールアドレスを特定できるようにする最善の方法は、Amazon SES が E
メールを受け付けるときにお客様に渡す Amazon SES メッセージ ID と識別子のマッピングを保存するこ
とです。Amazon SES は追加したカスタムメッセージ ID を保持しないことに注意してください。
Q9. 苦情をモニタリングしていない場合、苦情があったアドレスのリストは提供されますか?
残念ながら、弊社では、包括的なリストを提供することはできません。ただし、E メールや Amazon SNS
を利用して、将来の苦情をモニタリングすることはできます。
Q10. E メールのサンプルを入手できますか?
リクエストに応じて E メールのサンプルをお送りすることはできませんが、この情報は苦情の通知に含ま
れている場合があります。Q8 の回答を参照してください。
Amazon SES 受取人からの直接の苦情に関する FAQ
このトピックでは、受取人から直接 Amazon SES が受け取った苦情に関する情報を示します。すべての種
類の苦情に適用される一般的情報については、「Amazon SES の苦情に関するよくある質問 (p. 225)」
を参照してください。
Q1. この種類の苦情が報告される方法は?
E メールまたはその他の方法を通じて、複数の受取人がお客様のメールに関して Amazon SES に連絡しま
した。
Q2. これらの苦情は、Amazon SES コンソールにある苦情率の統計に含まれてい
て、GetSendStatistics API で返されますか?
いいえ。Amazon SES コンソールまたは GetSendStatistics API を通じて取得する苦情率の統計に
は、ISP フィードバックループを通じて Amazon SES が受け取った苦情のみが含まれます。これらの
苦情のタイプの詳細については、「ISP フィードバックループを通じた Amazon SES の苦情に関する
FAQ (p. 226)」を参照してください。
API Version 2010-12-01
227
Amazon Simple Email Service 開発者ガイド
エンフォースメントに関するよくある質問
Q3. E メールのフィードバック通知または Amazon SNS を通じて、これらの苦情について通知さ
れないのはなぜですか?
E メールのフィードバック転送と Amazon SNS の通知には、ISP のフィードバックループを通じて
Amazon SES が受け取る苦情のみが含まれます。受取人が Amazon SES に直接登録した苦情については
通知を受け取りません。
Q4. どの E メールアドレスに苦情があったかを確認するには、どうすればよいですか?
苦情を報告した受取人のアドレスを公開することはできませんが、複数の受取人から苦情があり、お客様
の現在の送信ボリュームを考慮すると、苦情数は非常に多いと言えます。ただし、リストから個別の受取
人を削除する代わりに、根本的な問題の発見と修正に重点を置く必要があります。お客様のリスト取得プ
ロセスと E メールの内容を確認して、受取人がお客様の E メールを受け取りたくない理由を特定すること
から開始します。
Q5. E メールのサンプルを入手できますか?
残念ながら、受取人の直接的な苦情の原因となった E メールの例を示すことはできません。
Q6. 直接的な受取人の苦情に対する猶予停止の通知を受け取りました。どうすればよいですか?
可能な限り早くシステムを修正し、メーリングリストに、メールの受け取りに明確にサインアップした受
信者のみを含め、受取人が実際に必要としているコンテンツのみを送信するようにします。次に、変更の
詳細を E メールで送信し、弊社がお客様の事例の再評価プロセスを開始できるようにしてください。3 週
間が経過してもお客様からご連絡をいただけず、メールに関して引き続き苦情が発生している場合、お客
様の送信を無効にさせていただく必要があります。
E メールプロバイダーを通じた Amazon SES の苦情に関する FAQ
このトピックでは、E メールプロバイダー (メールボックスプロバイダーとも呼ばれます) を通じて
Amazon SES で受け取った苦情に関する情報を示します。すべての種類の苦情に適用される一般的情報に
ついては、「Amazon SES の苦情に関するよくある質問 (p. 225)」を参照してください。
Q1. この種類の苦情が報告される方法は?
非常に多くの数の顧客が、お客様の E メールをスパムとマークしたことが E メールプロバイダーから
Amazon SES に報告されました。この報告は、「ISP フィードバックループを通じた Amazon SES の苦情
に関する FAQ (p. 226)」に示されているフィードバックループ以外の方法で Amazon SES に提供されま
した。
Q2. これらの苦情は、Amazon SES コンソールにある苦情率の統計に含まれてい
て、GetSendStatistics API で返されますか?
いいえ。Amazon SES コンソールまたは GetSendStatistics API を通じて取得する苦情率の統計に
は、ISP フィードバックループを通じて Amazon SES が受け取った苦情のみが含まれます。
Q3. E メールのフィードバック通知または Amazon SNS を通じて、これらの苦情について通知さ
れないのはなぜですか?
E メールのフィードバック転送と Amazon SNS の通知には、ISP のフィードバックループを通じて
Amazon SES が受け取る苦情のみが含まれます。
Q4. どの E メールアドレスに苦情があったかを確認するには、どうすればよいですか?
通常、E メールプロバイダーはこの情報を公開していません。ただし、リストから個別の受取人を削除す
る代わりに、根本的な問題の発見と修正に重点を置く必要があります。お客様のリスト取得プロセスと E
メールの内容を確認して、受取人がお客様の E メールを受け取りたくない理由を特定することから開始し
ます。
API Version 2010-12-01
228
Amazon Simple Email Service 開発者ガイド
エンフォースメントに関するよくある質問
Q5. E メールのサンプルを入手できますか?
いいえ。通常、E メールプロバイダーはサンプルの E メールを公開していません。
Q6. この種類の苦情について猶予停止またはシャットダウンを受け取りました。どうすればよい
ですか?
システムを修正し、メーリングリストに、メールの受け取りに特にサインアップした受信者のみを含
め、E メールのコンテンツそのものを受取人が実際に必要としていることを確認します。次に、変更の詳
細を E メールで送信し、弊社がお客様の事例の再評価プロセスを開始できるようにしてください。猶予停
止中に 3 週間が経過してもお客様からご連絡をいただけず、メールに関して引き続き苦情が発生している
場合、お客様の送信を無効にさせていただく必要があります。シャットダウンを要請する場合、お客様が
送信する情報では、再度送信を開始したときに問題が再発しないことの確証が必要です。
Amazon SES のスパムトラップに関するよくある質問
Q1. スパムトラップとは何ですか?
スパムトラップとは、E メールプロバイダー、ISP、アンチスパム組織によって管理されている特別な E
メールアドレスであり、このアドレスは誰も使用していないことが保証されています。このアドレスで
は、メールを受信するためのサインアップが正当に行われないため、これらのスパムトラップを管理する
組織は、スパムトラップのアドレスにメールを送信した送信者は不審な E メールの手続きを実施している
可能性があると判断しています。
Q2. スパムトラップはどのようにセットアップされますか?
スパムトラップのアドレスは複数の方法でセットアップされます。これらのアドレスは、以前は有効で
あったアドレスから変換されたものですが、長期間にわたって未使用(およびバウンスの状態)になって
います。また、これらのアドレスはスパムトラップとして使用されることのみを目的としてセットアップ
されています。スパムトラップのアドレスは通常とは異なるアドレスで、推測するのが難しくなっていま
す。また、現実のアドレスに近いアドレスになっている場合もあります(たとえば、一般的なドメイン名
のスペルを変えたアドレスなど)。常にというわけではありませんが、場合によっては、スパムトラップ
がさまざまな方法でインターネット上に配置され、世界中に仕掛けられることがあります。
Q3. スパムトラップに送信した場合、Amazon SES はどのように把握しますか?
Amazon SES の送信者によってスパムトラップがヒットされると、スパムトラップを操作している特定の
組織が Amazon SES に通知を送信します。
Q4. Amazon SES はスパムトラップレポートをどのように使用しますか?
レポートを確認し、スパムトラップへの送信に関する問題があるという十分な証拠を把握できた場合、お
客様は停止猶予になり、根本的な問題を解決するよう求められます。停止猶予の期間内に問題を解決しな
いと、アカウントが停止されます。また、スパムトラップの問題が非常に深刻である場合は、停止猶予の
期間に関係なく、直ちに停止される可能性があります。他のすべての停止の場合と同様に、停止される時
点で弊社から通知が送信されます。
Q5. スパムトラップへの送信について停止猶予の通知や停止の通知を受信した場
合、どうすればよいですか?
根本的な問題を解決し、お客様の状況を再評価するための要請を行います。要請の手続きについては、停
止猶予や停止に関するよくある質問を参照してください。スパムトラップへの送信に関する報告の状況に
よっては、問題解決が成功したかどうかを確認できるまで最低 3 週間かかります。
Q6. 停止猶予や停止になるまで許容されるスパムトラップのヒットは何件ですか?
スパムトラップのヒットは好ましくない兆候を示すものです。そのため、スパムトラップのヒットが数件
発生しただけで、不審な送信手続きを実施していることが示されます。
API Version 2010-12-01
229
Amazon Simple Email Service 開発者ガイド
エンフォースメントに関するよくある質問
Q7. スパムトラップのアドレスは公開されていますか?
いいえ。スパムトラップの組織は、スパムトラップのヒットが発生したことだけを公開しており、実際の
スパムトラップのアドレスは公開していません。これは、スパムトラップのアドレスの機密性と効果を維
持するための手段の 1 つです。
Q8. スパムトラップへの送信を回避するにはどうすればよいですか?
スパムトラップに送信するリスクを軽減するには、次のガイドラインに従います。
• E メールアドレスの購入、貸与、共有は行わないでください。お客様からのメールを実際にリクエスト
したアドレスのみを使用します。
• タイプミスを回避するために、E メールアドレスを 2 回入力するように要求します。
• ダブルオプトインを使用して、新しいユーザーをサインアップします。つまり、ユーザーがサインアッ
プするときには、それらのユーザーに確認メールを送信します。確認メールには、追加のメールを受け
取るためにクリックする必要があることを記載します。
• ハードバウンスが発生するアドレスをリストから削除します。これにより、それらのアドレスは、スパ
ムトラップに変換されるよりもかなり前に削除されることになります。
• 受信者の関与の状況をモニタリングし、最近 E メールやウェブサイトに関与していない受信者への送信
を停止します。"関与しているユーザー" を決める期間はお客様のユースケースによって異なりますが、
一般的に、ユーザーが数か月にわたって E メールを開いていないまたはクリックしていない場合は、そ
のようなユーザーを削除することを検討してください(ただし、そのユーザーが実際にはメールを希望
していることが明確な場合は除きます)。
• 最近やり取りのない受信者に対して意図的に連絡するといった、関与を再開させる活動は慎重に行って
ください。こうした活動はリスクが高く、スパムトラップへの送信だけでなく、バウンスや苦情に関連
した問題を引き起こす場合が多くあります。
• メーリングリスト全体へのオプトインメッセージを送信し、検証リンクをクリックした受取人のみを維
持します。この手順では、リストからアクティブでない受取人を削除することに加え、スパムトラップ
アドレスも削除されます。ただし、メーリングリストに多くの不正なアドレスが含まれているか、バウ
ンスの問題がすでに発生していると思われる、またはその両方が該当する場合、この手法の使用はお勧
めしません。送信が猶予停止またはシャットダウンされるポイントにバウンス率が到達する可能性があ
るためです。
Amazon SES の手動調査に関するよくある質問
Q1. 手動調査について停止猶予やシャットダウンの通知を受信しました。これは
どういう意味ですか。
Amazon SES の調査で、お客様の送信について重大な問題が発生したことが確認されました。次に示す典
型的な問題が考えられますが、これらに限定されるものではありません。
• お客様の送信が、AWS の適正利用規約 (AUP) に違反している。
• お客様の E メールが未承諾 E メールの可能性がある。
• お客様のコンテンツが、Amazon SES でサポートされていないユースケースに関連している。
問題が修正可能である場合、アカウントが停止猶予になり、問題を解決するために一定期間が与えられま
す(バウンスや苦情のように一定のボリュームのメールではありません)。問題を修正できない場合は、
停止猶予の期間は適用されず、アカウントが停止されます。
Q2. なぜ手動調査が実施されるのですか?
さまざまな理由があります。次の理由がありますが、これらに限定されるものではありません。
• 受信者が Amazon SES に連絡して、お客様の E メールについて苦情を申し出た。
API Version 2010-12-01
230
Amazon Simple Email Service 開発者ガイド
IP ブラックリストに関するよくある質問
• お客様の送信パターンで大幅な変更が検出された。
• Amazon SES のスパムフィルターによって、お客様の E メールの大部分にフラグが設定された。
停止猶予の通知や停止の通知によって、問題のレベルが高いことが示されます。問題によっては、より具
体的な詳細が提供される場合があります。
Q3. "未承諾" E メールとは何ですか?
未承諾 E メールは、受信者が実際にはサインアップしていない E メールです。受信者がある種類のメー
ル(通知など)にサインアップしたにもかかわらず、異なる種類のメール(広告など)が送信された場合
に、このような未承諾 E メールが発生する可能性があります。停止猶予の通知や停止の通知に、未承諾 E
メールの送信が問題となっていることが示されている場合は、次の情報を要請に含めてください。
• 送信したすべてのメッセージは受信者が実際にリクエストしたものであるかどうか、およびそれらの
メッセージが AUP に準拠しているかどうか。
• ユーザーがお客様またはウェブサイトと具体的にやり取りする方法や、ユーザーが E メールを実際に要
求する方法以外の方法で E メールアドレスを取得したかどうか。メーリングリストを収集した方法につ
いて説明する必要があります。
• 受信登録や受信登録の解除に関するプロセスはどうように機能しているか。オプトインやオプトアウト
のリンクを含める必要があります。
また、E メールリストの収集や管理が「Amazon Simple Email Service の E メール送信のベストプラク
ティスホワイトペーパー」で説明されている手続きに従って行われたことを証明するための他の情報を任
意に提供することもできます。
Q4. 手動調査について停止猶予の通知や停止の通知を受信した場合、どうすれば
よいですか?
他の停止猶予や停止の場合と同様に、停止猶予の通知や停止の通知に示されている内容の原因となる根本
的な問題を解決し、お客様の状況を再評価するための要請を行います。要請の手続きについては、停止猶
予や停止に関するよくある質問を参照してください。
Q5. どのような種類の問題が "修正可能" と見なされますか?
通常、適切な送信手続きの履歴がある場合や、送信の大部分を継続するときに問題のある送信を除外でき
る手順が用意されている場合を、修正可能な状況と考えています。たとえば、3 つの異なる種類の E メー
ルを送信しており、そのうち 1 種類だけが問題のあるメールであるとき、場合によっては、問題のある送
信を停止するだけで、残りの送信を継続することができます。
Q6. 問題の原因がわからない場合、どうなりますか?
通知に応答し(または、AWS アカウントに関連付けられた E メールアドレスから [email protected] に E メールを送る)、問題の原因となったメールのサンプルをリクエストす
ることができます。
Amazon SES の IP ブラックリストに関するよくある
質問
メールボックスプロバイダーは、スパムの受信からユーザーを保護することを目指しています。メール
ボックスプロバイダーは、電子メールがスパムであるかどうかを確認するため、E メールのさまざまな特
性を検査します。使用する 1 つの方法は、E メールの送信元の IP アドレスが IP ブラックリストに載って
いるかどうかを確認することです。IP ブラックリスト (リアルタイムブラックホールリスト (RBL) または
DNS ベースのブラックホールリスト (DNSBL) とも呼ばれます) は、スパムを送信していることが疑われる
API Version 2010-12-01
231
Amazon Simple Email Service 開発者ガイド
IP ブラックリストに関するよくある質問
IP アドレスのリストです。E メールの送信元の IP アドレスが、メールボックスプロバイダーが使用して
いるブラックリストに載っている場合、メールボックスプロバイダーはメールをバウンスするか、完全に
削除することがあります。さまざまな組織がブラックリストをコンパイルしています。メールボックスプ
ロバイダーは、これらのブラックリストから使用するものを選択します。一部のブラックリストは、他の
ブラックリストよりも幅広く使用されています。
他の E メールサービスプロバイダーの IP アドレスと同じように、Amazon SES の IP アドレスがブラック
リストに載っていることもあります。このトピックでは、Amazon SES を使用した送信に対するブラック
リストの影響について説明します。
Note
このトピックでは、Amazon SES などの E メールサービスプロバイダーから受信メールをブロッ
クするためにメールボックスプロバイダーが使用するブラックリストに関するものです。以前に
バウンスされた受信者アドレスに対して Amazon SES が送信メールをブロックする方法に関す
る情報をお探しの場合は、「Amazon SES サプレッションリストからの E メールアドレスの削
除 (p. 210)」を参照してください。
Q1. ブラックリストによって受信者が私の E メールを受信できな
いことを確認するには、どうすればよいですか。
Amazon SES の IP アドレスがブラックリストに載っていることによって送信に影響がある場合、一般的
に、ブラックリストに載っているために E メールが拒否されたことを示すメッセージが含まれたバウンス
通知 (p. 98)が届きます。ほとんどの場合、バウンスメッセージにはブラックリストの名前または URL
が含まれています。このようなメッセージのタイプには、「RBL [X] に記載された IP [0.0.0.0] により、
メッセージが拒否されました」のような例があります。バウンス通知にこのようなタイプのメッセージが
ない場合、ブラックリストによる送信への影響は低いと考えられます。
Q2. Amazon SES はブラックリストに関して何を行うのですか。
当社は IP アドレス空間の評価を慎重かつ継続的にモニタリングしています。メールボックスプロバイダー
やブラックリストオペレーターと緊密に連携し、ルーチンコンプライアンスプロセスと並行してブラック
リストを識別、軽減し、被害を及ぼしているユーザーをシステムから除外しています。
ブラックリストオペレーターは独自の記載と記載解除ポリシーを設定しており、RFC 6471 の推奨とは必
ずしも一致しないため、ブラックリストの問題が解決される保証またはタイムフレームは提供していませ
ん。特に、当社の IP アドレス空間の一部が SORBS および UCEPROTECT に載っていることを認識して
います。当社はこのリストの問題を軽減し、解決するためにブラックリストデータを使用していますが、
解決までの時間を予測することはできません。
SORBS や SpamCannibal など、現在リストの問題の解決に使用していないブラックリストがありま
す。当社のデータは、それらのブラックリストの影響が極めて低いことを示しています。SORBS または
SpamCannibal を使用してメッセージを拒否している主要なメールボックスプロバイダーはないと思わ
れます。特に SORBS について懸念がある場合は、「SORBS の信頼性」についてインターネットを検索
し、ISP がメールを拒否する唯一の条件としてこのブラックリストを使用しない理由について調べてくだ
さい。
Q3. すべてのブラックリストは同じように重要ですか。
いいえ。通常、大規模なメールボックスプロバイダーは Spamhaus など信頼できるブラックリストを使
用していますが、信頼できるブラックリストを認識していない小規模なメールボックスプロバイダーは、
より信頼性の低いブラックリストを使用する可能性があります。Spamhaus のリストでは、主要なメー
ルボックスプロバイダーでメールがブロックされる可能性があり、SORBS、UCEPROTECT、または
SpamCannibal は、送信にそれほど影響がない可能性があります。記載解除に支払いを求めたり、記載解
除リクエストを受け付けないサービスは、主要なメールボックスプロバイダーで使用されない可能性があ
ります。
API Version 2010-12-01
232
Amazon Simple Email Service 開発者ガイド
IP ブラックリストに関するよくある質問
Q4. Amazon SES の IP アドレスがブラックリストに載っている
ことに気付いた場合はどうすればよいですか。
当社は記載について認識しており、解決に向けて取り組んでいるため、ご安心ください。ただし、ブラッ
クリストに関するメッセージを含むバウンス通知が届かない場合、ブラックリストが送信に影響している
可能性は非常に低いと考えられます。バウンス通知で、SORBS、UCEPROTECT、または SpamCannibal
のリストが送信に影響を与えていることが示されている場合、メールボックスプロバイダーに問い合わせ
て、これらのいずれのリストも、IP アドレスのブロックの唯一の条件として使用していないことを確認す
るようお勧めします。
Q5. 私が送信する E メールが迷惑メールフォルダーに振り分けら
れます。これは、Amazon SES の IP アドレスがブラックリスト
に載っているためでしょうか。
メッセージの拒否の理由がブラックリストであることを示すメッセージがバウンス通知に含まれていない
限り、送信がブラックリストによる影響を受けている可能性は低いと思われます。
API Version 2010-12-01
233
Amazon Simple Email Service 開発者ガイド
メール受信の概念
Amazon SES を使用した E メールの
受信
Amazon Simple Email Service (Amazon SES) は、ご使用のドメインに代わってメールを送受信できるメー
ルサーバーです。Amazon SES を使用してメールを受信するときは、次のような基礎となるメール受信操
作を Amazon SES が処理します。
• 他のメールサーバーとの通信
• スパムおよびウイルスのスキャン
• 信頼されないソースからのメールの拒否
• ご使用のドメインの受信者宛てのメールの受け入れ
Amazon SES は、AWS インフラストラクチャの一部として、Amazon S3 バケットへの配信、Amazon
SNS トピックへの公開、AWS Lambda を通じたカスタムコードの呼び出し、Amazon WorkMail との統
合、バウンスしているメールの送信者への差し戻しなど、メールに対するアクションを実行することもで
きます。
これ以降のセクションでは、Amazon SES を使用してメールを受信する方法を理解し、セットアップして
使用するための情報を説明します。
• メール受信の概念 (p. 234)
• E メール受信のご利用開始にあたって (p. 236)
• E メール受信のセットアップ (p. 239)
• E メール受信の管理 (p. 257)
Amazon SES のさまざまなトピックに関する技術的な考察については、「Amazon SES ブログ」をご覧
ください。お問い合わせを参照あるいは発信するには「Amazon SES フォーラム」をご覧ください。
Amazon SES によるメール受信の概念
メール受信のために Amazon SES を使用するときは、メールにどのような処理を実行するのかをサービス
に対して指示する必要があります。メールをきめ細かく制御する方法として主に使用されるのは、受信者
に基づいて実行するアクションを指定する方法です。別の方法として、発信元 IP アドレスに基づいてメー
ルをブロックまたは許可する方法があります。このトピックでは、両方の方法について説明します。
API Version 2010-12-01
234
Amazon Simple Email Service 開発者ガイド
受信者ベースの制御
受信者ベースの制御
受信メールを制御する主な方法としては、受信者に基づいてメールの処理方法を指定します。たとえ
ば、example.com というドメインを所有している場合、[email protected] 宛てのメールはバウンスさ
せ、example.com およびそのサブドメイン宛てのそれ以外のすべてのメールを配信するように指定できま
す。このとき指定する受信者リストを条件と呼びます。
受信ルールをセットアップして、条件が満たされたときのメールの処理方法を指定します。受信ルール
は、条件と、順序どおりに並べたアクションのリストで構成されます。受信メールの宛先となっている受
信者が、条件に指定された受信者と一致する場合に、ルールに指定されたアクションを Amazon SES が実
行します。以下のアクションを使用できます。
• S3 アクション - 当該メールを Amazon S3 バケットに配信し、オプションで Amazon SNS を通じて通
知します。
• SNS アクション - メールを Amazon SNS トピックに公開します。
Note
この SNS アクションでは、メールのコンテンツの完全なコピーが Amazon SNS 通知に含まれ
ます。ここで言及されるそれ以外の Amazon SNS 通知は、単純にメールの配信を通知するだけ
であり、メールのコンテンツそのものではなくメールに関する情報が含まれます。
• Lambda アクション - Lambda 関数を通じてコードを呼び出し、オプションで Amazon SNS を通じて通
知します。
• バウンスアクション - 送信下にバウンス応答を返すことによってメールを拒否し、オプションで
Amazon SNS を通じて通知します。
• 停止アクション - 設定された受信ルールの評価を終了し、オプションで Amazon SNS を通じて通知しま
す。
• ヘッダー追加アクション - 受信メールにヘッダーを追加します。このアクションは通常、他のアクショ
ンとの組み合わせでのみ使用します。
• WorkMail アクション - メールを Amazon WorkMail で処理します。Amazon WorkMail がセットアップを
処理するため、このアクションを直接使用することは通常はありません。
複数の受信ルールがグループ化されたものが受信ルールセットです。ご使用の AWS アカウントで複数の
受信ルールを定義することはできますが、有効にできる受信ルールセットは常に 1 つだけです。次の図
は、受信ルール、受信ルールセット、アクションが相互にどのように関連するのかを示しています。
IP アドレスベースの制御
IP アドレスフィルタをセットアップすることで、より広範なレベルでメールの流れを制御できます。IP ア
ドレスフィルタはオプションであり、特定の IP アドレスまたは IP アドレス範囲から送信されるメールを
受け入れるか拒否するかを指定できます。IP アドレスフィルタには、ブロックリスト (そこから受信する
メールをブロックする IP アドレス) と 許可リスト (常にメールを受け入れる IP アドレス) を含めることが
できます。IP アドレスフィルタは、スパムをブロックするのに役立ちます。Amazon SES は、スパムの送
信元として知られる IP アドレスの独自のブロックリストを保持していますが、該当する IP アドレスを許
可リストに追加することで、その IP アドレスからのメールを受信するよう選択できます。
Note
Amazon EC2 の IP アドレスから送信されるメールを許可する場合は、そのアドレスを許可リスト
に追加する必要があります。Amazon EC2 から送信されるすべてのメールは、デフォルトではブ
ロックされています。
E メール受信プロセス
ご使用のドメイン宛ての E メールを Amazon SES が受信するときは、以下のイベントが発生します。
API Version 2010-12-01
235
Amazon Simple Email Service 開発者ガイド
E メール受信のご利用開始にあたって
1. Amazon SES は最初に送信者の IP アドレスを参照します。Amazon SES は、次の場合を除き、メール
がこの段階を通過することを許可します。
• IP アドレスがブロックリストに含まれている。
• IP アドレスが Amazon SES のブロックリストに含まれており、指定した許可リストには含まれな
い。
2. Amazon SES は、設定された有効な受信ルールセットを調査して、受信する E メールのいずれかの受
信者と一致する条件が受信ルールに含まれているかどうかを判定します。
3. 一致がない場合、Amazon SES は当該メールを拒否します。そうでない場合、Amazon SES はメール
を受け入れます。
4. メールを受け入れる場合、Amazon SES は有効な受信ルールセットを評価します。アクションまたは受
信ルールによって受信ルールセットの評価が明示的に終了されない限り、受信者の条件のうち少なくと
も 1 つと一致するすべての受信ルールが、定義された順序で適用されます。
プロセスの概要を理解したところで、「E メール受信のセットアップ (p. 239)」に進んで利用開始するこ
とができます。
Amazon SES による E メール受信のご利用開始に
あたって
このチュートリアルでは、Amazon Route 53 に登録したドメインで E メールを受信し、その E メールを
Amazon S3 バケットに送信するように Amazon SES を設定します。
トピック
• ステップ 1: 開始する前に (p. 236)
• ステップ 2: ドメインの検証 (p. 237)
• ステップ 3: 受信ルールの設定 (p. 237)
• ステップ 4: E メールの送信 (p. 238)
• ステップ 5: 受信した E メールの参照 (p. 238)
• ステップ 6: クリーンアップ (p. 239)
ステップ 1: 開始する前に
このチュートリアルを開始する前に、AWS アカウントにサインアップし (アカウントをお持ちでない場
合)、Amazon Route 53 に E メールを受信するドメインを登録する必要があります。以下のセクションで
は、これらのタスクを完了する方法について説明します。
サインアップ
すでに AWS アカウントをお持ちの場合は、次の手順に進んでください。Amazon Route 53 にドメインを
登録する (p. 237)そうでない場合は、以下の手順を実行します。
サインアップして AWS アカウントを作成するには
1.
https://aws.amazon.com/ を開き、[AWS アカウントの作成] を選択します。
2.
オンラインの手順に従います。
サインアップ手順の一環として、通話呼び出しを受け取り、電話のキーパッドを用いて PIN を入力す
ることが求められます。
API Version 2010-12-01
236
Amazon Simple Email Service 開発者ガイド
ステップ 2: ドメインの検証
Amazon Route 53 にドメインを登録する
このチュートリアルでは、Amazon Route 53 に登録したドメイン宛てのメールを受信します。このドメイ
ンを入手するには、新しいドメインを登録するか、既存のドメインを転送できます。既存のドメインの転
送には、数日間かかる場合があります。
次のステップ: ステップ 2: ドメインの検証 (p. 237)
ステップ 2: ドメインの検証
Amazon SES を使用してドメイン宛ての E メールを受信する前に、そのドメインを Amazon SES で検証
して、ドメインを所有していることを証明する必要があります。Amazon SES を使用すると、単一の E
メールアドレスを検証できますが、Amazon SES を使用して E メールを受信する場合はドメインを検証す
る必要があります。お客様が所有するドメインであればどれでも、Amazon SES を使用して検証し E メー
ルを受信できますが、Amazon Route 53 に登録したドメインを設定する方が簡単です。
Amazon SES でドメインを検証するには
1.
Amazon Route 53 にドメインを登録する際に使用した AWS アカウントを使用して、AWS マネジメ
ントコンソールにサインインし、https://console.aws.amazon.com/ses/ の Amazon SES コンソールを
開きます。
2.
左ナビゲーションペインで、[Identity Management] の [Domains] を選択します。コンテンツペイン
で、[Verify a New Domain] を選択します。
3.
Amazon Route 53 に登録したドメインの名前を入力し、[Generate DKIM Settings] は未選択のまま (E
メール送信用です) で、[Verify This Domain] を選択します。
4.
[Verify a New Domain] ページに、DNS サーバーに追加する必要があるレコードが表示されているの
で、[Use Route 53] を選択します。
Note
[Use Route 53] が表示されない場合は、ドメインが Amazon Route 53 に登録されていませ
ん。登録はこのチュートリアルの前提条件です。
5.
[Use Route 53] ページで、[Domain Verification Record] を選択し、[Email Receiving Record] を選択し
て、使用するホストゾーンを選択します。
Important
すでにドメインの E メールエクスチェンジャ (MX) レコードを設定している場合は、次のス
テップで古い MX レコードが新しいレコードに置き換えられます。MX レコードは、ドメイ
ンに代わってメールを受け入れるメールサーバーを指定します。
6.
[Create Record Sets] を選択します。[Domain Identities] リストに戻ります。
7.
数分間待ってから、コンテンツページの右上にある最新表示ボタンを使用して [Domain Identities] リ
ストを最新表示にします。ドメインのステータスが [verified] であることを確認します。
次のステップ: ステップ 3: 受信ルールの設定 (p. 237)
ステップ 3: 受信ルールの設定
E メールの受信機能として Amazon SES を使用するには、ご使用のアカウントに少なくとも 1 つの受信
ルールセットがある必要があります。受信ルールセットは、ご使用のすべての確認済みドメイン全体につ
いて受信するメールに対して Amazon SES でどのような処理を行うのかを指定する、順序が指定された受
信ルールの集合です。Amazon SES を使用した E メール受信の設定は初めてであるため、Amazon SES
によって自動的にデフォルトの受信ルールセットが作成されます。そのため、すぐに受信ルールを作成で
きます。作成した受信ルールはデフォルトの受信ルールセットに属します。
API Version 2010-12-01
237
Amazon Simple Email Service 開発者ガイド
ステップ 4: E メールの送信
受信ルールを作成するには
1.
左側のナビゲーションペインで、[Email Receiving]、[Rule Sets] の順に選択します。コンテンツペイ
ンで、[Create a Receipt Rule] を選択します。
2.
[Recipients] ページで、[Next Step] を選択します。受信者を追加していないため、この受信ルール
は、すべての確認済みドメインのすべての受信者宛てのメールを処理します。
3.
[Add action] メニューから [S3] を選択します。
4.
[S3 bucket] で、[Create S3 bucket] を選択します。
5.
[Bucket Name] に、新しいバケット名を入力します。バケット名は、次の要件を満たす必要がありま
す。
• 小文字、数字、ピリオド(.)、ハイフン(-)を含めることができます。
• AWS 全体で一意である必要があります。
• 数字または文字で始まっている必要があります。
• 3~63 文字の長さが必要です。
• アンダースコア (_) を含まない、ハイフンで終わらない、または IP アドレス形式 (例: 192.168.5.4)
ではない必要があります。
• 隣接した 2 つのピリオド、またはピリオドの次にダッシュを含めることはできません。
次に、[Create Bucket] を選択します。
Note
Amazon SES コンソールを使用して Amazon S3 バケットを作成しているため、バケットに
書き込みするアクセス権限を Amazon SES に付与するポリシーが Amazon SES によって自
動的に作成されます。ただし、既存の Amazon S3 バケットを選択する場合、Amazon S3 コ
ンソールまたは API を使用してバケットにポリシーを添付して、バケットに書き込むための
アクセス権限を明示的に Amazon SES に付与する必要があります。
6.
このチュートリアルではわかりやすいようにその他のオプションはデフォルト設定のままにして、
[Next Step] を選択します。
7.
[Rule Details] ページで、ルール名に [my-rule] と入力し、その他のオプションはデフォルト設定のま
まにして、[Next Step] を選択します。
8.
[Review] ページで、[Create Rule] を選択します。
次のステップ: ステップ 4: E メールの送信 (p. 238)
ステップ 4: E メールの送信
メールの送信に使用する E メールクライアントにサインインして、E メール受信用に設定したドメインの
E メールアドレスにメールを送信します。
次のステップ: ステップ 5: 受信した E メールの参照 (p. 238)
ステップ 5: 受信した E メールの参照
1. AWS マネジメントコンソールの左上で AWS アイコンを選択し、[Storage & Content Delivery] で [S3]
を選択します。
2. Amazon S3 コンソールで、前にこのチュートリアルで Amazon SES の E メール受信を設定した際に作
成したバケットを選択します。
3. バケット内で、受信したメールを見つけます。E メール名は英数字の文字列です。このバケットに
は、AMAZON_SES_SETUP_NOTIFICATION という名前の項目も含まれていますが、これは無視して
かまいません。
API Version 2010-12-01
238
Amazon Simple Email Service 開発者ガイド
ステップ 6: クリーンアップ
4. E メールをコンピューターにダウンロードするには、E メールの左にあるボックスを選択して、メ
ニューから [Download] を選択します。
5. テキストエディターで E メールを開きます。E メールは raw 形式です。一般的には多目的インターネッ
トメール拡張# (MIME) 形式です。MIME をデコードするには、独自のアプリケーションを使用する必要
があります。
次のステップ: ステップ 6: クリーンアップ (p. 239)
ステップ 6: クリーンアップ
このチュートリアルを完了したら、追加料金が発生しないように、次の設定とリソースをクリーンアップ
してください。
Amazon SES 受信ルールセット
今後 Amazon SES でドメイン宛ての E メールを受け取らないようにするには、アクティブな受信ルール
セットを無効にする (p. 257)必要があります。
Amazon S3 バケット
作成した Amazon S3 バケットが不要になった場合は、削除できます。ただし、項目を含む Amazon S3
バケットは削除できません。まずバケットの内容を削除してから、バケットを削除する必要があります。
フォルダーとバケットの削除の詳細については、Amazon S3 入門ガイドのオブジェクトとバケットの削
除を参照してください。
Amazon Route 53 ドメイン
ドメインを登録する Amazon Route 53 が不要になった場合は、登録を削除するか、別のレジストラにドメ
インを転送できます。
Amazon SES による E メール受信のセットアップ
このセクションでは、メールを受信するように Amazon SES を設定するために必要な操作を説明します。
たとえば、メールの受信、フィルタリング、処理をどのように実行するかは Amazon SES の設定方法に影
響するため、これらを最初に検討する必要があります。また、ドメインを所有していることを証明するた
めに Amazon SES でドメインを検証し、受信メールに関してドメインに Amazon SES を参照させる必要
があります。また、別のステップとして、必要な AWS リソースへのアクセス権限を Amazon SES に付与
します。さらに、受信ルールセット、受信ルースを作成し、オプションで IP アドレスフィルタを作成する
ことによって、E メール受信を設定します。
これらのすべてのステップについて、これ以降のトピックで説明します。
1. ユースケースの検討 (p. 240)
2.
3.
4.
5.
ドメインの検証 (p. 241)
MX レコードの公開 (p. 242)
アクセス権限の付与 (p. 242)
IP アドレスフィルタの作成 (p. 244)
6. 受信ルールセットの作成 (p. 245)
7. 受信ルールの作成 (p. 245)
これらのタスクが E メール受信プロセス全体のどこに当てはまるかについては、「メール受信の概
念 (p. 234)」を参照してください。
API Version 2010-12-01
239
Amazon Simple Email Service 開発者ガイド
ユースケースの検討
Amazon SES による E メール受信のユースケースの
検討
メールを受信するように Amazon SES を設定する前に、以下の質問を検討することが有用です。
E メールのコンテンツ
• どのような場合に Amazon SES で E メールのコンテンツを合格にしますか。
Amazon SES では、E メールのコンテンツを 2 通りの方法で提供できます。指定された Amazon S3 バ
ケットに E メールを保存する方法か、E メールのコピーを含む Amazon SNS 通知を送信する方法で
す。Amazon SES は、変更が加えられていない raw E メールを配信しますが、これは一般に多目的イン
ターネットメール拡張 (MIME) 形式です。MIME 形式の詳細については、RFC 2045 を参照してくださ
い。
• E メールサイズの制限としてどの程度の大きさが必要ですか。
Amazon S3 バケットに E メールを保存する場合、E メールの最大サイズ (ヘッダーを含む) は 30 MB で
す。Amazon SNS を通じて E メールを受信する場合、E メールの最大サイズ (ヘッダーを含む) は 150
KB です。
• E メールの処理をどのようにトリガーしますか。
メールが配信された後で、独自のコードで処理する場合があります。たとえば、アプリケーションを使
用して Base64 エンコードの E メールを表示可能な形式に変換してから、エンドユーザーが E メールク
ライアントで使用できるようにする場合が考えられます。このプロセスを開始する方法はいくつかあり
ます。
• E メールが Amazon S3 に配信される場合、アプリケーションは、S3 アクションによって生成される
Amazon SNS 通知をリッスンし、通知から E メールのメッセージ ID を抽出して、そのメッセージ ID
を使用して Amazon S3 から E メールを取得します。
または、Lambda 関数を記述することで、受信ルールに E メール処理を組み込むこともできます。こ
の場合、受信ルールでは、まず E メールを Amazon S3 に書き込んでから Lambda 関数をトリガーす
る必要があります。Lambda 関数が他のアクションの実行方法に影響する結果を返す必要があるかど
うかに応じて、受信ルールから複数の Lambda アクションを同期または非同期で実行することができ
ます。ユースケースで同期実行が絶対に必要とされるのでない限りは、非同期実行を使用することを
お勧めします。AWS Lambda の詳細については、『AWS Lambda Developer Guide』を参照してくだ
さい。
• SNS アクションを使用して E メールを Amazon SNS 通知を介して配信する場合は、アプリケーショ
ンは、Amazon SNS 通知をリッスンし、通知から E メールメッセージを抽出することができます。
• E メールを暗号化しますか。
Amazon SES は、Amazon S3 バケットに書き込むメールをオプションで暗号化するために、AWS Key
Management Service (AWS KMS) と統合されています。Amazon SES は、クライアント側の暗号化を
使用して、Amazon S3 に書き込む前にメールを暗号化します。つまり、Amazon S3 からメールを取
得した後にご自身でコンテンツを復号する必要があります。AWS SDK for Java および AWS SDK for
Ruby では、復号を処理できるクライアントが提供されています。Amazon SES による E メールの暗号
化は、E メールを Amazon S3 バケットに配信するよう選択した場合にのみ利用できます。
不要なメール
• メール受信プロセスのどの時点で、不要なメールを拒否しますか。
E メール受信プロセスでは、送信者のメールサーバーとの SMTP 対話中と、E メールのプロパティを調
査可能な配信後の 2 つの時点で E メールを拒否することができます。SMTP 対話中に拒否されたメール
については課金されないため、この時点でできるだけ多くの不要なメールを拒否することにはメリット
API Version 2010-12-01
240
Amazon Simple Email Service 開発者ガイド
ドメインの検証
があります。SMTP 対話中には、IP アドレスフィルタと受信ルールを使用して E メールを拒否できま
す。この両方について、「メール受信の概念 (p. 234)」で説明されています。
SMTP 対話の後、Amazon SES は、ウイルススキャン、スパムのスキャン、およびドメインキーアイデ
ンティファイドメール (DKIM) とセンダーポリシーフレームワーク (SPF) の認証チェックを実行し、そ
の E メールを信頼するかどうかを決める判定を作成します。その E メールを信頼しない場合は、削除す
るか送信者にバウンス応答を送信します。この決定ポイントは Amazon SES が E メールを配信した後
であるため、このメールについては課金が発生します。
• 受信者または IP アドレス以外のプロパティに基づいて E メールをフィルタリングしますか。
同期実行される Lambda 関数 ("RequestResponse" として呼び出される) を使用して、メッセージと
一致する複雑な条件を記述し、その Lambda 関数を受信ルールに組み込むことができます。Lambda
関数の戻り値は、受信ルールおよび受信ルールセットの評価を続行するかどうかを示します。たとえ
ば、Amazon SES がスパムとしてフラグを付けたメールを削除する受信ルールを設定できます。
他の AWS サービスの使用
• 適切なアクセス権限をセットアップしましたか。
メールを Amazon S3 バケットに配信する場合、自身が所有していない Amazon SNS トピックに公開す
る場合、Lambda 関数をトリガーする場合、またはカスタムのマスター AWS KMS キーを使用する場合
は、それらのリソースへのアクセス権限を Amazon SES に付与する必要があります。Amazon SES に
アクセス権限を付与するには、それらの AWS サービスに対応するコンソールまたは API から、リソー
スに対するポリシーを作成します。詳細については アクセス権限の付与 (p. 242).
メールのストリーム
• メールのストリームをどのように分割しますか。
ご使用のドメインでは、さまざまなクラスのメールを受信する可能性があります。たとえ
ば、[email protected] 宛てのメールのように、ドメインのメールの一部は個人の受信箱に配信され
ます。それ以外に、[email protected] 宛てのメールのように、自動化されたシステムに送
信されるべきものもあります。それぞれ異なる処理を行えるように、受信ルールを使用して受信メー
ルを分割することができます。受信ルールをセットアップする方法については、「受信ルールの作
成 (p. 245)」を参照してください。
Amazon SES による E メール受信のためのドメイン
の検証
Amazon SES での E メールの送受信に使用するドメインに関しては、まず、ご自身がそのドメインを所有
していることを証明する必要があります。検証の手順には、Amazon SES でのドメイン検証の開始と、ご
使用の DNS サーバーに対する TXT レコードの公開が含まれますが、それについては「Amazon SES での
ドメインの検証 (p. 39)」で説明しています。
Note
Amazon SES を使用すると、単一の E メールアドレスを検証できますが、Amazon SES を使用し
て E メールを受信する場合はドメインを検証する必要があります。
「受信ルールの作成 (p. 245)」で受信ルールをセットアップするときに、ドメイン検証プロセスを開始す
ることもできます。受信者リストは、未検証の受信者を示し、検証を開始できるようにします。いずれの
場合も、「Amazon SES のドメイン検証 TXT レコード (p. 42)」の説明に従って、DNS サーバーに対して
TXT レコードを公開することによってドメイン検証を完了する必要があります。
API Version 2010-12-01
241
Amazon Simple Email Service 開発者ガイド
MX レコードの公開
Amazon SES コンソールで [Email Address Identities] または [Domain Identities] リストでステータスを確
認するか、Amazon SES GetIdentityVerificationAttributes API を使用して、E メールアドレスまたは
ドメインが検証済みであることを確認できます。
Amazon SES による E メール受信のための MX レ
コードの公開
メールエクスチェンジャ (MX) レコードは、ご使用のドメインのネームサーバー上のレコードであり、そ
のドメインの E メールを処理するメールサーバーを指します。E メールの受信機能として Amazon SES
を指定するために、使用するリージョンでの Amazon SES E メール受信エンドポイントを指す MX レ
コードを公開することができます (たとえば、米国西部 (オレゴン) のエンドポイントは inbound-smtp.uswest-2.amazonaws.com です)。Amazon SES エンドポイントのリストについては、「リージョンと
Amazon SES (p. 296)」を参照してください。
Amazon SES を介してメールを受信するために MX レコードを公開する必要はありませんが、このレコー
ドを公開しない場合は、メールを明示的に Amazon SES にルーティングした場合のみメールが Amazon
SES で受信されます。
Amazon SES に対する E メール受信に関するアクセ
ス権限の付与
Amazon S3 バケットへの E メールの書き込み、AWS KMS キーを使用した E メールの暗号化、Lambda
関数の呼び出し、別のアカウントの Amazon SNS トピックへの公開を Amazon SES が実行できるように
するためには、これらのリソースに対するアクセス権限を Amazon SES に付与する必要があります。アク
セス権限を付与するには、ポリシーをリソースにアタッチします。このトピックでは、ポリシーの例を示
します。
Amazon S3バケットに書き込むためのアクセス権限を Amazon
SES に付与する
Amazon S3 バケットへの書き込みを Amazon SES に対して許可するには、Amazon S3 コンソールまた
は API を使用して、バケットにポリシーをアタッチします。次のポリシーは、Amazon S3 バケットにオ
ブジェクトを書き込むためのアクセス許可を Amazon SES に付与します。ACCOUNT-ID-WITHOUT-HYPHENS
をご自身の 12 桁の AWS アカウント ID で置き換え、BUCKET-NAME をご使用の Amazon S3 バケットの名
前で置き換えます。Amazon S3 バケットへのポリシーのアタッチの詳細については、『Amazon Simple
Storage Service 開発者ガイド』を参照してください。
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "GiveSESPermissionToWriteEmail",
"Effect": "Allow",
"Principal": {
"Service": [
"ses.amazonaws.com"
]
},
"Action": [
"s3:PutObject"
],
"Resource": "arn:aws:s3:::BUCKET-NAME/*",
"Condition": {
"StringEquals": {
"aws:Referer": "ACCOUNT-ID-WITHOUT-HYPHENS"
API Version 2010-12-01
242
Amazon Simple Email Service 開発者ガイド
アクセス権限の付与
}
}
}
]
}
AWS KMS マスターキーを使用するためのアクセス権限を
Amazon SES に付与する
Amazon SES で E メールを暗号化するためには、受信ルールをセットアップしたときに指定した AWS
KMS キーを使用するためのアクセス権限を付与する必要があります。ご使用のアカウントのデフォルトの
マスターキー (aws/ses) を使用するか、ご自身で作成するカスタムのマスターキーを使用することができ
ます。デフォルトのマスターキーを使用する場合は、それを使用するためのアクセス権限を Amazon SES
に付与する手順は必要ありません。カスタムのマスターキーを使用する場合は、キーのポリシーにステー
トメントを追加することで、使用するためのアクセス権限を Amazon SES に付与する必要があります。
このポリシーステートメントには、AWS KMS に対するリクエストに特定の値が含まれているときにのみ
Amazon SES がカスタムのマスターキーを使用できるように設計した条件を含める必要があります。具体
的には次のようになります。
• aws:ses:source-account—Amazon SES に代理で E メールを受信させる AWS アカウント ID。
• aws:ses:message-id—受信した E メールの Amazon SES メッセージ ID。
• aws:ses:rule-name—E メールの暗号化に使用された受信ルールの名前。
ご使用の AWS アカウントの代理で Amazon SES が E メールを受信するときに Amazon SES がカスタム
のマスターキーを使用することを許可するために、次のポリシーステートメントをキーのポリシーに貼り
付けます。ACCOUNT-ID-WITHOUT-HYPHENS は、ご自身の 12 桁の AWS アカウント ID に置き換えます。
{
"Sid": "AllowSESToEncryptMessagesBelongingToThisAccount",
"Effect": "Allow",
"Principal": {"Service":"ses.amazonaws.com"},
"Action": ["kms:Encrypt", "kms:GenerateDataKey*"],
"Resource": "*",
"Condition": {
"Null": {
"kms:EncryptionContext:aws:ses:rule-name": "false",
"kms:EncryptionContext:aws:ses:message-id": "false"
},
"StringEquals": {
"kms:EncryptionContext:aws:ses:source-account": "ACCOUNT-ID-WITHOUT-HYPHENS"
}
}
}
AWS KMS キーへのポリシーのアタッチの詳細については、『AWS Key Management Service Developer
Guide』を参照してください。
Lambda 関数を呼び出すためのアクセス権限を Amazon SES に
付与する
Amazon SES が Lambda 関数を呼び出せるようにするには、受信ルールのセットアップ中に Amazon SES
コンソールを使用して Lambda 関数を設定するか (この場合 Amazon SES が必要なアクセス権限を関数
に自動的に追加します)、AWS Lambda AddPermission API を使用して関数にポリシーをアタッチするこ
とができます。次の AddPermissionAPI 呼び出しでは、Lambda 関数を呼び出すためのアクセス許可を
Amazon SES に付与しています。ACCOUNT-ID-WITHOUT-HYPHENS は、ご自身の 12 桁の AWS アカウント
API Version 2010-12-01
243
Amazon Simple Email Service 開発者ガイド
IP アドレスフィルタの作成
ID に置き換えます。Lambda 関数へのポリシーのアタッチの詳細については、『AWS Lambda Developer
Guide』を参照してください。
{
"Action": "lambda:InvokeFunction",
"Principal": "ses.amazonaws.com",
"SourceAccount": "ACCOUNT-ID-WITHOUT-HYPHENS",
"StatementId": "GiveSESPermissionToInvokeFunction"
}
別のアカウントの Amazon SNS トピックに公開するためのアク
セス権限を Amazon SES に付与する
使用する Amazon SNS トピックを、Amazon SES で使用しているのと同じ AWS アカウントが所有してい
る場合は、トピックへの公開を Amazon SES に許可するためのセットアップは必要ありません。ただし、
ご自身が所有していないトピックに対して通知を公開する場合は、Amazon SNS コンソールまたは API を
使用して Amazon SNS トピックにポリシーをアタッチします。次のポリシーは、Amazon SNS トピック
に対して公開するためのアクセス権限を Amazon SES に付与します。ACCOUNT-ID-WITHOUT-HYPHENS をご
自身の 12 桁の AWS アカウント ID で置き換え、TOPIC-NAME を Amazon SNS トピックの名前で置き換え
ます。Amazon SNS トピックに関するポリシーの記述の詳細については、『Amazon Simple Notification
Service 開発者ガイド』を参照してください。
{
"Version": "2008-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ses.amazonaws.com"
},
"Action": "SNS:Publish",
"Resource": "arn:aws:sns:us-east-1:ACCOUNT-ID-WITHOUT-HYPHENS:TOPIC-NAME"
}
]
}
Amazon SES によるメール受信の IPアドレスフィル
タの作成
IP アドレスフィルタを使用すると、オプションで、特定の IP アドレスまたは IP アドレス範囲から送信さ
れるメールを受け入れるか拒否するかを指定できます。
IP アドレスフィルタを作成するには、Amazon SES コンソールまたは CreateReceiptFilter API を使用
できます。
Note
既知の IP アドレスで構成される有限のリストからのメールのみを受信する場合は、0.0.0.0/0 を
含むブロックリストをセットアップし、信頼する IP アドレスを含む許可リストをセットアップし
ます。この設定では、デフォルトではすべての IP アドレスがブロックされ、明示的に指定する
IP アドレスからのメールのみが許可されます。
IP アドレスフィルタを作成するには (コンソール)
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
API Version 2010-12-01
244
Amazon Simple Email Service 開発者ガイド
受信ルールセットの作成
2.
左側のナビゲーションペインで、[Email Receiving]、[IP Address Filters] の順に選択します。
3.
コンテンツペインで、[Create Filter] を選択します。
4.
[Filter Name] に、IPアドレスフィルタの名前を入力します。名前は 64 文字未満で、英数字、ハイフン
(-)、アンダースコア (_)、ピリオド (.) を使用できます。文字. 名前の最初と最後は、文字または数字で
なければなりません。
5.
[IP Address Range] には、ブロックまたは許可する 1 つの IP アドレスまたは IP アドレス範囲を、ク
ラスレスドメイン間ルーティング (CIDR) 表記で入力します。IP アドレス 1 個の場合の例は 10.0.0.1
です。IP アドレス範囲の例は 10.0.0.1/24 となります。CIDR 表記の詳細については、RFC 2317 を参
照してください。
6.
[Policy Type] では、[Allow] または [Block] を選択します。
7.
[Create Filter] を選択します。
CreateReceiptFilter API を使用して IP アドレスフィルタを作成する方法については、『Amazon Simple
Email Service API Reference』を参照してください。
Amazon SES による E メール受信の受信ルールセッ
トの作成
受信ルールセットは、ご使用のすべてのドメイン全体について受信するメールに対して Amazon SES でど
のような処理を行うのかを指定する、順序が指定された受信ルールの集合です。E メールの受信機能とし
て Amazon SES を使用するには、ご使用のアカウントに少なくとも 1 つの受信ルールセットを作成する必
要があります。受信ルールセットは複数セットアップできますが、各 AWS リージョンで有効にできる受
信ルールセットは常に 1 つだけです。E メール受信プロセスにおける受信ルールセットの役割の詳細につ
いては、「メール受信の概念 (p. 234)」を参照してください。
Note
E メールの受信機能として Amazon SES を使用しない場合は、単純にすべての受信ルールセット
を無効にします。受信ルールセットを無効にする方法の詳細については、「受信ルールセットの
管理 (p. 257)」を参照してください。
受信ルールセットを作成するには、Amazon SES コンソールまたは API を使用できます。
• Amazon SES コンソールの使用
• 受信ルールは受信ルールセット内にのみ存在するため、受信ルールセットを作成するには、まず受信
ルールの作成から開始します。詳細については、「受信ルールの作成 (p. 245)」を参照してくださ
い。この手順を最後まで実行すると、新しい受信ルールセットを作成できるようになります。
• 「受信ルールセットの管理 (p. 257)」の説明に従って、既存の受信ルールセットをコピーします。
• 左側のナビゲーションペインで、[Email Receiving]、[Rule Sets]、[Create a New Rule Set] の順に選
択します。
• Amazon SES API の使用 - CreateReceiptRuleSet API を使用して、「Amazon Simple Email Service
API Reference」の説明に従って空の受信ルールセットを作成します。その後で、Amazon SES コン
ソールまたは CreateReceiptRule API を使用して、そのセットに受信ルールを追加します。
Amazon SES による E メール受信の受信ルールの作
成
受信ルールを使用すると、1 つ以上の受信者またはドメインについて受信するメールに対して Amazon
SES でどのような処理を行うかを指定できます。受信ルールは、条件と、順序どおりに並べたアクション
のリストで構成されます。受信メールの宛先となっている受信者が、条件に指定された受信者と一致する
API Version 2010-12-01
245
Amazon Simple Email Service 開発者ガイド
受信ルールの作成
場合に、受信ルールに指定されたアクションを Amazon SES が実行します。E メール受信プロセスにおけ
る受信ルールの役割の詳細については、「メール受信の概念 (p. 234)」を参照してください。
Note
受信ルールは受信ルールセット内にのみ存在するため、受信ルールセットは少なくとも 1 つ必要
です。各受信ルールが属することができるのは、1 つの受信ルールセットのみです。
このトピックでは、受信ルールの作成方法と、各アクションタイプに対するオプションについて説明しま
す。
受信ルールのセットアップ
ルールを作成するには、Amazon SES コンソールまたは CreateReceiptRule API を使用できます。
受信ルールを作成するには (コンソール)
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
左側のナビゲーションペインで、[Email Receiving]、[Rule Sets] の順に選択します。
3.
受信ルールセットを選択します。たとえば、有効な受信ルールセットを選択するには、[View Active
Rule Set] を選択します。 まだ受信ルールセットを作成していない場合は、[Create a New Rule Set]
を選択して作成することができます。
4.
受信ルールセットから、[Create Rule] を選択します。
5.
次の手順を使用して、1 人以上の受信者を追加します。これらの受信者を総称して条件と呼びます。
受信ルールごとに 100 人の受取人を指定できます。
a.
[Recipients] に、所有する E メールアドレスまたはドメインを入力します。先頭にドットを使
用することで、ドメインのすべてのサブドメインを取得できます。ここでは、デモの目的で
example.com を使用します。
• 特定のユーザーと一致させるには、[email protected] のように指定します。これは、
ラベルを含むあらゆる形式のアドレスと一致します。ラベルを含むアドレスは、name
[email protected] という形式であり、プラス記号(+)とアットマーク(@)の間はユー
ザー指定のテキストです。ラベルを指定する場合、同じラベルを含むメッセージのみが一致し
ます。
たとえば、受信ルールを [email protected][email protected]、および ticket
[email protected] に適用する場合は、受信ルールの受信者を単に [email protected]
に設定します。一方、受信ルールの受信者を [email protected] に設定すると、
ルールは [email protected] にのみ適用され、[email protected] と ticket
[email protected] には適用されません。
• ドメイン内のすべてのアドレスと一致させるが、サブドメインを除外する場合
は、example.com のように指定します。
• すべてのサブドメイン内のすべてのアドレスと一致させるが、ドメインそのものを除外する場
合は、.example.com のように指定します (先頭にピリオドがあることに注意してください)。
• ドメインとそのすべてのサブドメイン内のすべてのアドレスと一致させるには、example.com
と .example.com の 2 つの受信者を指定します。
• 検証済みのすべてのドメイン内のすべての受信者を許可するには、空欄にします (受信者は指
定しないでください)。
b.
[Add Recipient] を選択します。
c.
受信者のドメインをまだ検証していない場合は、[Verify] を選択します。ドメインの検証を完了す
るには、「Amazon SES でのドメインの検証 (p. 39)」の説明に従って、ご使用の DNS サーバー
に対して TXT レコードを公開する必要があります。
d.
必要に応じて受信者を追加してから、[Next Step] を選択します。
API Version 2010-12-01
246
Amazon Simple Email Service 開発者ガイド
受信ルールの作成
6.
7.
次の手順を使用して、受信ルールに 1 つ以上のアクションを追加します。
a.
メニューからアクションを選択します。
b.
アクションの設定を選択します。各アクションのオプションについては、「アクションのオプ
ション (p. 247)」を参照してください。
c.
必要に応じてアクションを追加してから、[Next Step] を選択します。
[Rule Details] については、次の手順を使用して設定を選択します。
a.
[Rule Name] に、受信ルールの名前を入力します。名前は 64 文字未満で、英数字、ハイフン
(-)、アンダースコア (_)、ピリオド (.) を使用できます。文字. 名前の最初と最後は、文字または数
字でなければなりません。
b.
その受信ルールを有効にする場合は、[Enabled] オプションを選択したままにします。
c.
Transport Layer Security (TLS) を使用して暗号化された接続を介して送信されていない受信メー
ルを Amazon SES で拒否するには、[TLS] を選択します。
d.
Amazon SES で受信メールのスパムおよびウイルスのスキャンを実行するには、[Enable Spam
and Virus Scanning] を選択します。
8.
[Rule Set] では、既存の受信ルールセットを選択するか、[Create New Rule Set] をクリックします。
9.
[Rule Position] では、この受信ルールを、順序どおりに並べた受信ルールのリストのどの位置に配置
するかを選択します。受信ルールは順序どおりに評価されます。
10. [Next Step] を選択し、さらに [Create Rule] を選択します。
CreateReceiptRule API を使用してルールを作成する方法については、「Amazon Simple Email Service
API Reference」を参照してください。
アクションのオプション
Amazon SES による E メール受信に関する受信ルールにはそれぞれ、順序どおりに並べられたアクション
のリストが含まれます。受信ルールの全体的なセットアップ手順は、「Amazon SES による E メール受信
の受信ルールの作成 (p. 245)」で説明しています。このセクションでは、各アクションタイプに固有のオ
プションについて説明します。
アクションタイプには以下のものがあります。
• ヘッダー追加アクション (p. 247)
• バウンスアクション (p. 248)
• Lambda アクション (p. 248)
• S3 アクション (p. 254)
• SNS アクション (p. 255)
• 停止アクション (p. 256)
• WorkMail アクション (p. 256)
ヘッダー追加アクション
ヘッダー追加アクションは、受信した E メールにカスタムヘッダーを追加します。このアクションは通
常、他のアクションとの組み合わせでのみ使用します。このアクションには以下のオプションがありま
す。
• Header name - 追加するヘッダーの名前。1 ~ 50 文字で、英数字 (a-z、A-Z、0-9) とダッシュのみ使用
できます。
• Header value - 追加するヘッダーの値。2048 文字未満で、改行文字 ("\r" または "\n") を含めることはで
きません。
API Version 2010-12-01
247
Amazon Simple Email Service 開発者ガイド
受信ルールの作成
バウンスアクション
バウンスアクションは、送信者にバウンス応答を返すことによって E メールを拒否し、オプションで
Amazon SNS を通じて通知します。このアクションには以下のオプションがあります。
• SMTP Reply Code - RFC 5321 で定義される SMTP 応答コード。
• SMTP Status Code - RFC 3463 で定義される SMTP 拡張ステータスコード。
• Message - バウンス E メールに含める、人間が読み取れるテキスト。
• Reply Sender - バウンス E メールの送信者の E メールアドレス。これは、バウンス E メールの送信元ア
ドレスです。Amazon SES で検証されている必要があります。
• SNS Topic - バウンス E メールが送信されたときにオプションで通知するための Amazon
SNS トピックの名前または ARN。Amazon SNS トピックの ARN の例は、arn:aws:sns:uswest-2:123456789012:MyTopic となります。アクションを設定するときに [Create SNS Topic] を選択す
ることで、Amazon SNS トピックを作成することもできます。Amazon SNS トピックの詳細について
は、『Amazon Simple Notification Service 開発者ガイド』を参照してください。
Note
選択する Amazon SNS トピックは、E メールを受け取る Amazon SES エンドポイントと同じ
AWS リージョン内に存在する必要があります。
これらのフィールドに独自の値を入力するか、バウンスの理由に基づいて SMTP Reply Code、SMTP
Status Code、Message の各フィールドに値を入力するテンプレートを選択することができます。次のテ
ンプレートを使用できます。
• Mailbox Does Not Exist - SMTP 応答コード = 550、SMTP ステータスコード= 5.1.1
• Message Too Large - SMTP 応答コード = 552、SMTP ステータスコード = 5.3.4
• Message Full - SMTP 応答コード = 552、SMTP ステータスコード = 5.2.2
• Message Content Rejected - SMTP 応答コード = 500、SMTP ステータスコード = 5.6.1
• Unknown Failure - SMTP 応答コード = 554、SMTP ステータスコード = 5.0.0
• Temporary Failure - SMTP 応答コード = 450、SMTP ステータスコード = 4.0.0
フィールドにカスタムの値を入力して使用できる可能性があるその他のバウンスコードについては、RFC
3463 を参照してください。
Lambda アクション
Lambda アクションは、Lambda 関数を通じてコードを呼び出し、オプションで Amazon SNS を通じて通
知します。このアクションには以下のオプションがあります。
• Lambda function - Lambda 関数の ARN。Lambda 関数の ARN の例は、arn:aws:lambda:uswest-2:account-id:function:MyFunction となります。AWS Lambda については、『AWS Lambda
Developer Guide』を参照してください。
• Invocation type - Lambda 関数の呼び出しタイプ。呼び出しタイプが RequestResponse の場合は、関数
の実行により即座に応答が得られることを意味します。また、値が Event の場合は、関数が非同期で呼
び出されることを意味します。ユースケースで同期実行が絶対に必要とされる場合を除き、呼び出しタ
イプには Event を使用することをお勧めします。
Note
RequestResponse の呼び出しには 30 秒のタイムアウトがあります。
AWS Lambda の呼び出しタイプの詳細については、『AWS Lambda Developer Guide』を参照してくだ
さい。
API Version 2010-12-01
248
Amazon Simple Email Service 開発者ガイド
受信ルールの作成
• SNS Topic - 指定された Lambda 関数がトリガーされたときに通知するための Amazon
SNS トピックの名前または ARN。Amazon SNS トピックの ARN の例は、arn:aws:sns:uswest-2:123456789012:MyTopic となります。アクションを設定するときに [Create SNS Topic] を選択す
ることで、Amazon SNS トピックを作成することもできます。Amazon SNS トピックの詳細について
は、『Amazon Simple Notification Service 開発者ガイド』を参照してください。
Note
選択する Amazon SNS トピックは、E メールを受け取る Amazon SES エンドポイントと同じ
AWS リージョン内に存在する必要があります。
Lambda 関数の記述
E メールを処理するために、Lambda 関数を (Event 呼び出しタイプを使用して) 非同期で呼び出すことが
できます。Lambda 関数に渡されるイベントオブジェクトには、インバウンド E メールイベントに関係す
るメタデータが格納されます。このメタデータを使用して、Amazon S3 バケットからメッセージコンテン
ツにアクセスすることもできます。
メールフローを実際に制御するには、Lambda 関数を同期的に呼び出す (RequestResponse 呼び出しタ
イプを使用する) 必要があります。Lambda 関数では、2 つの引数 (1 つ目の引数は null、2 つ目の引数
は、STOP_RULE、STOP_RULE_SET、または CONTINUE に設定された disposition プロパティ) を指定して
callback メソッドを呼び出す必要があります。2 つ目の引数が null であるか、有効な disposition プロ
パティが指定されていない場合は、CONTINUE の場合と同様に、メールフローが継続し、後続のアクション
とルールが処理されます。
たとえば、Lambda 関数のコードの末尾に次の行を記述することで、受信ルールを停止することができま
す。
callback( null, { "disposition" : "STOP_RULE_SET" });
AWS Lambda のコードの例については、「Lambda 関数の例 (p. 253)」を参照してください。概要レベ
ルのユースケースの例については、「ユースケース (p. 250)」を参照してください。
入力形式
Amazon SES は、Lambda 関数に JSON 形式で情報を渡します。最上位レベルのオブジェクトには
Records 配列が格納され、この配列には eventSource、eventVersion、および ses のプロパティが入力さ
れます。ses オブジェクトには receiptオブジェクトと mail オブジェクトが格納されますが、これらは
「通知の内容 (p. 263)」で説明する Amazon SNS 通知とまったく同じ形式です。
以下に、Amazon SES が Lambda 関数に提供する入力の構造を概要レベルで示します。
{
"Records": [
{
"eventSource": "aws:ses",
"eventVersion": "1.0",
"ses": {
"receipt": {
<same contents as SNS notification>
},
"mail": {
<same contents as SNS notification>
}
}
}
]
}
API Version 2010-12-01
249
Amazon Simple Email Service 開発者ガイド
受信ルールの作成
戻り値
Lambda 関数では、次のいずれかの値を返すことにより、メールフローを制御できます。
• STOP_RULE - 現在の受信ルールでの後続のアクションは処理されませんが、後続の受信ルールは処理可能
です。
• STOP_RULE_SET - 後続のアクションまたは受信のルールは処理されません。
• CONTINUE またはそれ以外の無効な値 - 後続のアクションおよび受信ルールが処理可能であることを意味
します。
ユースケース
以下の例では、Lambda 関数の結果を使用してメールフローを制御するように設定できるルールの概要を
いくつか示します。これらの例の多くでは、デモの目的で、S3 アクションを結果として使用します。
ユースケース 1: すべてのドメインにわたってスパムを削除する
この例では、すべてのドメインにわたってスパムを削除するグローバルなルールを示します。ルール 2 と
3 は、すべてのドメインにわたってスパムを削除した後で、ドメイン固有のルールを適用できることを示
すために含めてあります。
ルール 1
受信者リスト: 空。したがって、このルールは、検証済みのすべてのドメインに含まれるすべての受信者に
適用されます。
アクション
1. E メールがスパムである場合に STOP_RULE_SET を返す Lambda アクション (非同期)。そうでない場合は
CONTINUE を返します。「Lambda 関数の例 (p. 253)」で示した、スパムの削除に関する Lambda 関数
の例を参照してください。
ルール 2
受信者リスト: example1.com
アクション
1. 任意のアクション。
ルール 3
受信者リスト: example2.com
アクション
1. 任意のアクション。
ユースケース 2: すべてのドメインにわたってスパムをバウンスする
この例では、すべてのドメインにわたってスパムをバウンスするグローバルなルールを示します。ルール
2 と 3 は、すべてのドメインにわたってスパムをバウンスした後で、ドメイン固有のルールを適用できる
ことを示すために含めてあります。
ルール 1
受信者リスト: 空。したがって、このルールは、検証済みのすべてのドメインに含まれるすべての受信者に
適用されます。
API Version 2010-12-01
250
Amazon Simple Email Service 開発者ガイド
受信ルールの作成
アクション
1. E メールがスパムである場合に CONTINUE を返す Lambda アクション (非同期)。そうでない場合は
STOP_RULE を返します。
2. バウンスアクション ("500 5.6.1. Message content rejected")。
3. 停止アクション。
ルール 2
受信者リスト: example1.com
アクション
1. 任意のアクション
ルール 3
受信者リスト: example2.com
アクション
1. 任意のアクション
ユースケース 3: 固有のルールを適用する
この例では、停止アクションを使用して、E メールが複数のルールによって処理されるのを防ぐ方法を示
します。この例では、特定のアドレスに対して 1 つのルールを設定し、ドメインに含まれるすべての E
メールアドレスに対して別のルールを設定します。停止アクションを使用することで、特定の E メールア
ドレスに関するルールと一致するメッセージは、ドメインに適用される汎用的なルールでは処理されませ
ん。
ルール 1
受信者リスト: [email protected]
アクション
1. Lambda アクション (非同期)。
2. 停止アクション。
ルール 2
受信者リスト: example.com
アクション
1. 任意のアクション。
ユースケース 4: メールイベントのログを CloudWatch に書き込む
この例では、メールを Amazon SES に保存する前に、システムを通過するすべてのメールの監査ログを保
持する方法を示します。
ルール 1
受信者リスト: example.com
アクション
API Version 2010-12-01
251
Amazon Simple Email Service 開発者ガイド
受信ルールの作成
1. CloudWatch ログにイベントオブジェクトを書き込む Lambda アクション (非同期)。「Lambda 関数の
例 (p. 253)」で示した Lambda 関数の例では、CloudWatch にログを書き込みます。
2. S3 アクション.
ユースケース 5: DKIM に合格しないメールを削除する
この例では、すべての受信メールを Amazon S3 バケットに保存するが、特定の E メールアドレスに宛て
た E メールのうち DKIM に合格したもののみを、自動化された E メールアプリケーションに送信する方法
を示します。
ルール 1
受信者リスト: example.com
アクション
1. S3 アクション.
2. メッセージが DKIM に合格しない場合に STOP_RULE_SET を返す Lambda アクション (非同期)。そうで
ない場合は CONTINUE を返します。
ルール 2
受信者リスト: [email protected]
アクション
1. 自動化されたアプリケーションをトリガーする Lambda アクション (非同期)。
ユースケース 6: 件名行に基づいてメールをフィルタリングする
この例では、ドメインの受信メールのうち、件名行に "discount" という語を含むすべてのメールを削除し
てから、自動化されたシステム宛てのメールについては特定の処理を実行し、ドメイン内のその他のすべ
ての受信者宛のメールは別の方法で処理する方法を示します。
ルール 1
受信者リスト: example.com
アクション
1. 件名行に "discount" という語が含まれる場合に STOP_RULE_SET を返す Lambda アクション (非同期)。
そうでない場合は CONTINUE を返します。
ルール 2
受信者リスト: [email protected]
アクション
1. バケット 1 を使用する S3 アクション。
2. 自動化されたアプリケーションをトリガーする Lambda アクション (非同期)。
3. 停止アクション。
ルール 3
受信者リスト: example.com
API Version 2010-12-01
252
Amazon Simple Email Service 開発者ガイド
受信ルールの作成
アクション
1. バケット 2 を使用する S3 アクション。
2. ドメインのそれ以外の受信者宛の E メールを処理する Lambda アクション (非同期)。
Lambda 関数の例
このトピックでは、メールフローを制御する Lambda 関数の例を示します。
例 1: スパムを削除する
この例では、少なくとも 1 つのスパムインジケータがあるメッセージの処理を停止します。
exports.handler = function(event, context, callback) {
console.log('Spam filter');
var sesNotification = event.Records[0].ses;
console.log("SES Notification:\n", JSON.stringify(sesNotification, null, 2));
// Check if any spam check failed
if (sesNotification.receipt.spfVerdict.status === 'FAIL'
|| sesNotification.receipt.dkimVerdict.status === 'FAIL'
|| sesNotification.receipt.spamVerdict.status === 'FAIL'
|| sesNotification.receipt.virusVerdict.status === 'FAIL') {
console.log('Dropping spam');
// Stop processing rule set, dropping message
callback(null, {'disposition':'STOP_RULE_SET'});
} else {
callback(null, null);
}
};
例 2: 特定のヘッダーがある場合に続行する
この例では、E メールに特定のヘッダー値が含まれる場合にのみ、現在のルールの処理を続行します。
exports.handler = function(event, context, callback) {
console.log('Header matcher');
var sesNotification = event.Records[0].ses;
console.log("SES Notification:\n", JSON.stringify(sesNotification, null, 2));
// Iterate over the headers
for (var index in sesNotification.mail.headers) {
var header = sesNotification.mail.headers[index];
// Examine the header values
if (header.name === 'X-Header' && header.value === 'X-Value') {
console.log('Found header with value.');
callback(null, null);
return;
}
}
// Stop processing the rule if the header value wasn't found
callback(null, {'disposition':'STOP_RULE'});
};
例 3: Amazon S3 から E メールを取得する
この例では、Amazon S3 からraw Eメールを取得して処理します。
API Version 2010-12-01
253
Amazon Simple Email Service 開発者ガイド
受信ルールの作成
Note
先に S3 アクションを使用して Amazon S3に E メールを書き込む必要があります。
var AWS = require('aws-sdk');
var s3 = new AWS.S3();
var bucketName = '<YOUR BUCKET GOES HERE>';
exports.handler = function(event, context, callback) {
console.log('Process email');
var sesNotification = event.Records[0].ses;
console.log("SES Notification:\n", JSON.stringify(sesNotification, null, 2));
// Retrieve the email from your bucket
s3.getObject({
Bucket: bucketName,
Key: sesNotification.mail.messageId
}, function(err, data) {
if (err) {
console.log(err, err.stack);
callback(err);
} else {
console.log("Raw email:\n" + data.Body);
// Custom email processing goes here
callback(null, null);
}
});
};
S3 アクション
S3 アクションは、メールを Amazon S3 バケットに配信し、オプションで Amazon SNS を通じて通知し
ます。このアクションには以下のオプションがあります。
• S3 Bucket - 受信した E メールを保存する Amazon S3 バケットの名前。アクションを設定すると
きに [Create S3 Bucket] を選択することで、新規の Amazon S3 バケットを作成することもできま
す。Amazon SES は、変更が加えられていない raw E メールを提供しますが、これは一般に多目的イン
ターネットメール拡張 (MIME) 形式です。MIME 形式の詳細については、RFC 2045 を参照してくださ
い。
Important
E メールを Amazon S3 バケットに保存するときの E メールの最大サイズ (ヘッダーを含む) は
30 MBです。
• Object Key Prefix—Amazon S3 バケット内で使用するキー名のプレフィックス。キー名のプレフィック
スを使用して、フォルダー構造の Amazon S3 バケットを分類できます。たとえば、[Email] を [Object
Key Prefix] として使用すると、Amazon S3 バケットの Email という名前のフォルダーに E メールが表
示されます。
• KMS Key (Amazon SES コンソールで "Encrypt Message" が選択されている場合) – E メールを Amazon
S3 バケットに保存する前に暗号化するために Amazon SES が使用する、お客様のマスターキー。デ
フォルトのマスターキーか、AWS KMS で作成したカスタムのマスターキーを使用できます。
Note
選択するマスターキーは、E メールを受け取る Amazon SES エンドポイントと同じ AWS リー
ジョン内に存在する必要があります。
API Version 2010-12-01
254
Amazon Simple Email Service 開発者ガイド
受信ルールの作成
• デフォルトのマスターキーを使用するには、Amazon SES コンソールで受信ルールを
セットアップするときに [aws/ses] を選択します。Amazon SES API を使用する場合
は、arn:aws:kms:REGION:ACCOUNT-ID-WITHOUT-HYPHENS:alias/aws/ses 形式で ARN を指定す
ることでデフォルトのマスターキーを指定できます。たとえば、ご使用の AWS アカウント ID が
123456789012 であり、米国西部 (オレゴン) リージョンのデフォルトのマスターキーを使用する場合
は、デフォルトのマスターキーの ARN は arn:aws:kms:us-west-2:123456789012:alias/aws/ses と
なります。デフォルトのマスターキーを使用する場合は、そのキーを使用するためのアクセス権限を
Amazon SES に付与する手順をさらに実行する必要はありません。
• AWS KMS で作成したカスタムのマスターキーを使用するには、マスターキーの ARN を指定し、そ
のキーを使用するためのアクセス権限を Amazon SES に付与するステートメントをキーのポリシーに
追加します。アクセス権限の付与の詳細については、「Amazon SES に対する E メール受信に関する
アクセス権限の付与 (p. 242)」を参照してください。
Amazon SES での AWS KMS の使用について詳しくは、『AWS Key Management Service Developer
Guide』を参照してください。コンソールまたは API でマスターキーを指定しない場合、Amazon SES
は E メールを暗号化しません。
Important
メールは、保存のために Amazon S3 に送信される前に、Amazon S3 暗号化クライアントを
使用して Amazon SES によって暗号化されます。Amazon S3 サーバー側での暗号化を使用
して暗号化されるわけではありません。つまり、サービスは復号のために AWS KMS キー
を使用するためのアクセス権限を持たないため、Amazon S3 から E メールを取得した後
で、Amazon S3 暗号化クライアントを使用して復号する必要があります。この暗号化クラ
イアントは、AWS Java SDK および AWS Java Ruby でのみ使用できます。AWS KMS マス
ターキーを使用したクライアント側での暗号化の詳細については、『Amazon Simple Storage
Service 開発者ガイド』を参照してください。
• SNS Topic - E メールが Amazon S3 バケットに保存されたときに通知するための Amazon
SNS トピックの名前または ARN。Amazon SNS トピックの ARN の例は、arn:aws:sns:uswest-2:123456789012:MyTopic となります。アクションを設定するときに [Create SNS Topic] を選択す
ることで、Amazon SNS トピックを作成することもできます。Amazon SNS トピックの詳細について
は、『Amazon Simple Notification Service 開発者ガイド』を参照してください。
Note
選択する Amazon SNS トピックは、E メールを受け取る Amazon SES エンドポイントと同じ
AWS リージョン内に存在する必要があります。
SNS アクション
SNS アクションは、Amazon SNS 通知を使用してメールを公開します。通知には、完全なメールコンテン
ツが含まれます。このアクションには以下のオプションがあります。
• SNS Topic - E メールを公開する Amazon SNS トピックの名前または ARN。Amazon SNS 通知には、
変更を加えていない raw E メールのコピーが含まれます。これは通常、多目的インターネットメール拡
張 (MIME) 形式です。MIME 形式の詳細については、RFC 2045 を参照してください。
Important
Amazon SNS を通じて E メールを受信する場合、E メールの最大サイズ (ヘッダーを含む) は
150 KB です。それよりも大きいメールはバウンスします。このサイズよりも大きい E メール
が予想される場合は、代わりに Amazon S3 バケットに E メールを保存してください。
Amazon SNS トピックの ARN の例は、arn:aws:sns:us-west-2:123456789012:MyTopic となります。ア
クションを設定するときに [Create SNS Topic] を選択することで、Amazon SNS トピックを作成するこ
ともできます。Amazon SNS トピックの詳細については、『Amazon Simple Notification Service 開発者
ガイド』を参照してください。
API Version 2010-12-01
255
Amazon Simple Email Service 開発者ガイド
受信ルールの作成
Note
選択する Amazon SNS トピックは、E メールを受け取る Amazon SES エンドポイントと同じ
AWS リージョン内に存在する必要があります。
• Encoding – Amazon SNS 通知内で E メールに使用するエンコーディング。UTF-8 は使用が容易です
が、別のエンコード形式でメッセージがエンコードされた場合にすべての特殊文字が保存されないこ
とがあります。Base64 ではすべての特殊文字が保存されます。UTF-8 および Base64 の詳細について
は、それぞれ RFC 3629 および RFC 4648 を参照してください。
停止アクション
停止アクションは、受信ルールセットの評価を終了し、オプションで、Amazon SNS を通じて通知しま
す。このアクションには以下のオプションがあります。
• SNS Topic - 停止アクションが実行されたときに通知するための Amazon SNS トピックの名前または
ARN。Amazon SNS トピックの ARN の例は、arn:aws:sns:us-west-2:123456789012:MyTopic となりま
す。アクションを設定するときに [Create SNS Topic] を選択することで、Amazon SNS トピックを作成
することもできます。Amazon SNS トピックの詳細については、『Amazon Simple Notification Service
開発者ガイド』を参照してください。
Note
選択する Amazon SNS トピックは、E メールを受け取る Amazon SES エンドポイントと同じ
AWS リージョン内に存在する必要があります。
WorkMail アクション
WorkMail アクションは、Amazon WorkMail と連携します。Amazon WorkMail ですべての E メール処理を
実行する場合は、Amazon WorkMail がこの設定を担当するため、通常このアクションを直接使用すること
はありません。このアクションには以下のオプションがあります。
• Organization ARN - Amazon WorkMail 組織の ARN。Amazon WorkMail 組織の ARN の形式は次のとお
りです。arn:aws:workmail:region:account_ID:organization/organization_ID
• region は、Amazon SES と Amazon WorkMail を使用しているリージョンです (これらは同じリー
ジョンから使用する必要があります)。例: 「us-west-2」。
• account_ID は、AWS アカウント ID です。AWS アカウント ID は、AWS マネジメントコンソールの
[Account] ページで確認できます。
• organization_ID は、組織を作成したときに Amazon WorkMail によって生成される一意の識別子で
す。組織 ID は、Amazon WorkMail コンソールで、組織の [Organization Settings] ページから確認でき
ます。
Amazon WorkMail 組織の完全な ARN の例は、arn:aws:workmail:us-west-2:123456789012:organization/
m-68755160c4cb4e29a2b2f8fb58f359d7 となります。Amazon WorkMail 組織については、『Amazon
WorkMail Administrator Guide』を参照してください。
• SNS Topic - Amazon WorkMail アクションが実行されたときに通知するための Amazon
SNS トピックの名前または ARN。Amazon SNS トピックの ARN の例は、arn:aws:sns:uswest-2:123456789012:MyTopic となります。アクションを設定するときに [Create SNS Topic] を選択す
ることで、Amazon SNS トピックを作成することもできます。Amazon SNS トピックの詳細について
は、『Amazon Simple Notification Service 開発者ガイド』を参照してください。
Note
選択する Amazon SNS トピックは、E メールを受け取る Amazon SES エンドポイントと同じ
AWS リージョン内に存在する必要があります。
API Version 2010-12-01
256
Amazon Simple Email Service 開発者ガイド
E メール受信の管理
Amazon SES による E メール受信の管理
受信ルールセット、受信ルール、IP アドレスフィルタを作成したら、Amazon SES コンソールまたは API
を使用して、編集、削除、その他の操作を実行できます。また、受け取った Amazon SNS 通知を確認する
ことや、Amazon CloudWatch を使用してエラーメトリクスを表示することもできます。
このセクションは、以下のトピックで構成されます。
• 受信ルールセットの管理 (p. 257)
• 受信ルールの管理 (p. 259)
• IP アドレスフィルタの管理 (p. 261)
• エラーメトリクスの表示 (p. 262)
• 通知の使用 (p. 263)
Amazon SES による E メール受信の受信ルールセッ
トの管理
「受信ルールセットの作成 (p. 245)」の説明に従って受信ルールセットを作成した後は、必要に応じて更
新することができます。受信ルールセットの編集では通常、「受信ルールの管理 (p. 259)」で説明するよ
うに個別の受信ルールを編集しますが、受信ルールセットの削除、有効化、無効化、コピーも行うことが
できます。さらに、受信ルールセット内の受信ルールの順序を変更することもできます。これらの操作に
ついて、これ以降のセクションで説明します。
受信ルールセットの削除
受信ルールセットを削除するには、Amazon SES コンソールまたは DeleteReceiptRuleSet API を使用で
きます。
Note
現在有効になっている受信ルールセットは削除できません。
受信ルールセットを削除するには (コンソール)
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
左側のナビゲーションペインで、[Email Receiving]、[Rule Sets] の順に選択します。
3.
[Inactive Rule Sets] リストで、削除する受信ルールセットを選択します。
4.
[Actions] メニューから [Delete] を選択し、受信ルールセットの削除を確認します。
DeleteReceiptRuleSet API を使用して受信ルールセットを削除する方法については、『Amazon Simple
Email Service API Reference』を参照してください。
受信ルールセットのアクティブ化および無効化
個々の受信ルールセットは、アクティブまたは無効のいずれかの状態です。アクティブにできる受信ルー
ルセットは常に 1 つだけです。受信ルールセットの無効化は、アクティブな受信ルールセットに変更を加
えたいが、変更内容が適切であることを確認できるまではそれらの変更をアクティブにしたくない場合に
有用です。その場合、アクティブな受信ルールセットをコピーし、コピーされた無効な受信ルールセット
に対して変更を加えます。変更内容を確認したら、コピーした受信ルールセットをアクティブにすること
API Version 2010-12-01
257
Amazon Simple Email Service 開発者ガイド
受信ルールセットの管理
ができます。1 つの受信ルールセットをアクティブにすると、それ以外のすべての受信ルールセットは自
動的に無効化されます。
Note
Amazon SES を使用した E メール受信を完全に無効にするには、すべての受信ルールセットを無
効にします。
Amazon SES コンソールまたは SetActiveReceiptRuleSet API を使用して、どのルールセットをアク
ティブにするかを制御できます。
無効な受信ルールセットをアクティブにするには (コンソール)
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
左側のナビゲーションペインで、[Email Receiving]、[Rule Sets] の順に選択します。
3.
[Inactive Rule Sets] リストで、アクティブにする受信ルールセットを選択します。
4.
[Set as Active Rule Set] を選択します。
アクティブな受信ルールセットを無効にするには (コンソール)
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
左側のナビゲーションペインで、[Email Receiving]、[Rule Sets] の順に選択します。
3.
[Active Rule Set]、[Disable Active Rule Set] の順に選択し、受信ルールセットを無効にすることを確
認します。
SetActiveReceiptRuleSet API を使用してルールセットをアクティブ化または無効化する方法について
は、『Amazon Simple Email Service API Reference』を参照してください。
受信ルールセットのコピー
受信ルールセットをコピーするには、Amazon SES コンソールまたは CloneReceiptRuleSet API を使用で
きます。Amazon SES コンソールを使用する場合、コピーする受信ルールセットがアクティブか無効かに
よって、手順が若干異なります。
アクティブな受信ルールセットをコピーするには (コンソール)
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
左側のナビゲーションペインで、[Email Receiving]、[Rule Sets] の順に選択します。
3.
コンテンツペインで、[Copy Active Rule Set] を選択します。
4.
[Copy Rule Set] ダイアログボックスで、コピーされた受信ルールセットに割り当てる名前を入力しま
す。
5.
[Copy Rule Set] を選択します。コピーされた受信ルールセットは [Inactive Rule Sets] リストに表示さ
れます。
無効な受信ルールセットをコピーするには (コンソール)
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
左側のナビゲーションペインで、[Email Receiving]、[Rule Sets] の順に選択します。
3.
[Inactive Rule Sets] リストで、コピーする受信ルールセットを選択します。
API Version 2010-12-01
258
Amazon Simple Email Service 開発者ガイド
受信ルールの管理
4.
[Actions] メニューから [Copy] を選択します。
5.
[Copy Rule Set] ダイアログボックスで、コピーされた受信ルールセットに割り当てる名前を入力しま
す。
6.
[Copy Rule Set] を選択します。コピーされた受信ルールセットは [Inactive Rule Sets] リストに表示さ
れます。
CloneReceiptRuleSet API を使用して受信ルールセットをコピーする方法については、『Amazon Simple
Email Service API Reference』を参照してください。
受信ルールセットの順序の変更
受信ルールセット内の受信ルールの順序を変更するには、Amazon SES コンソールまたは
ReorderReceiptRuleSet API を使用できます。Amazon SES コンソールを使用する場合、受信ルールセッ
トがアクティブか無効かによって、手順が若干異なります。
アクティブな受信ルールセット内の受信ルールの順序を変更するには (コンソール)
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
左側のナビゲーションペインで、[Email Receiving]、[Rule Sets] の順に選択します。
3.
コンテンツペインで、[View Active Rule Set] を選択します。
4.
[Reorder Rules] を選択します。
5.
受信ルールの名前の横にある上向き矢印と下向き矢印を使用して受信ルールの順序を変更し、[Save
Order] を選択します。
無効な受信ルールセット内の受信ルールの順序を変更するには (コンソール)
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
左側のナビゲーションペインで、[Email Receiving]、[Rule Sets] の順に選択します。
3.
[Inactive Rule Sets] リストで、受信ルールセットを選択します。
4.
[Reorder Rules] を選択します。
5.
受信ルールの名前の横にある上向き矢印と下向き矢印を使用して受信ルールの順序を変更し、[Save
Order] を選択します。
ReorderReceiptRuleSet API を使用して受信ルールセット内の受信ルールの順序を変更するには、
『Amazon Simple Email Service API Reference』を参照してください。
Amazon SES による E メール受信の受信ルールの管
理
「受信ルールの作成 (p. 245)」で説明する受信ルールの作成に加えて、以下のセクションで説明するよう
に、受信ルールの編集、削除、有効化、無効化、コピー、受信ルールセット内での受信ルールの位置の設
定を行うことができます。
Note
このセクションの手順では、受信ルールがアクティブな受信ルールセットに含まれていることを
前提としています。無効な受信ルールセット内の受信ルールを編集するには、[Inactive Rule Sets]
リストから受信ルールセットを選択します。それ以降の受信ルールの編集手順は、アクティブな
受信ルールセットの場合と同じです。
API Version 2010-12-01
259
Amazon Simple Email Service 開発者ガイド
受信ルールの管理
受信ルールの編集
受信ルールを編集するには、Amazon SES コンソールまたは Amazon SES API を使用できます。Amazon
SES コンソールを使用するほうが簡単です。
受信ルールを編集するには (コンソール)
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
左側のナビゲーションペインで、[Email Receiving]、[Rule Sets] の順に選択します。
3.
コンテンツペインで、[View Active Rule Set] を選択するか、[Inactive Rule Sets] リストから受信ルー
ルセットを選択します。
4.
詳細ペインで、編集する受信ルールを選択します。
5.
[Edit Rule] ペインで、ポリシーを編集して [Save Rule] を選択します。
コンソールではなく Amazon SES API を使用する場合は、DescribeReceiptRule API を使用してルー
ルを取得し、テキストエディターを使用してルールを編集してから、UpdateReceiptRule API を使用し
て旧バージョンのルールを上書きします。詳細情報については、『Amazon Simple Email Service API
Reference』を参照してください。
受信ルールの削除
受信ルールを削除するには、Amazon SES コンソールまたは DeleteReceiptRule API を使用できます。
受信ルールを削除するには (コンソール)
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
左側のナビゲーションペインで、[Email Receiving]、[Rule Sets] の順に選択します。
3.
コンテンツペインで、[View Active Rule Set] を選択するか、[Inactive Rule Sets] リストから受信ルー
ルセットを選択します。
4.
詳細ペインで、受信ルールを選択します。
5.
[Actions] メニューから [Delete] を選択し、受信ルールの削除を確認します。
DeleteReceiptRule API を使用してルールを削除する方法については、『Amazon Simple Email Service
API Reference』を参照してください。
受信ルールの有効化および無効化
受信ルールを有効化または無効化するには、Amazon SES コンソールまたは Amazon SES API を使用でき
ます。Amazon SES コンソールを使用するほうが簡単です。
受信ルールを有効化または無効化するには (コンソール)
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
左側のナビゲーションペインで、[Email Receiving]、[Rule Sets] の順に選択します。
3.
コンテンツペインで、[View Active Rule Set] を選択するか、[Inactive Rule Sets] リストから受信ルー
ルセットを選択します。
4.
詳細ペインで、編集する受信ルールを選択します。
5.
[Edit Rule] ペインで、[Enabled] を選択または選択解除して、[Save Rule] を選択します。
API Version 2010-12-01
260
Amazon Simple Email Service 開発者ガイド
IP アドレスフィルタの管理
コンソールではなく Amazon SES API を使用する場合は、DescribeReceiptRule API を使用して受
信ルールを取得し、テキストエディターを使用して受信ルールの [Enabled] フィールドを編集してか
ら、UpdateReceiptRule API を使用して受信ルールの旧バージョンを上書きします。詳細情報について
は、『Amazon Simple Email Service API Reference』を参照してください。
受信ルールのコピー
受信ルールをコピーするには、Amazon SES コンソールまたは Amazon SES API を使用できま
す。Amazon SES コンソールを使用するほうが簡単です。
受信ルールをコピーするには (コンソール)
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
左側のナビゲーションペインで、[Email Receiving]、[Rule Sets] の順に選択します。
3.
コンテンツペインで、[View Active Rule Set] を選択するか、[Inactive Rule Sets] リストから受信ルー
ルセットを選択します。
4.
詳細ペインで、受信ルールを選択します。
5.
[Actions] メニューから [Copy Rule] を選択します。
6.
[Copy Rule] ダイアログボックスで、新しい受信ルールの名前を入力し、追加先の受信ルールセットを
選択します。新しい受信ルールは受信ルールセットの冒頭に挿入され、初期状態では無効になってい
ます。
コンソールではなく Amazon SES API を使用する場合は、DescribeReceiptRule API を使用して受信ルー
ルを取得し、テキストエディターを使用して受信ルールの名前と (必要な場合は) 受信ルールセットを編
集してから、その受信ルールを CreateReceiptRule API に渡します。詳細情報については、『Amazon
Simple Email Service API Reference』を参照してください。
受信ルールの位置の設定
受信ルールセット内での受信ルールの位置を変更するには、Amazon SES コンソールまたは
SetReceiptRulePosition API を使用できます。
受信ルールの位置を設定するには (コンソール)
1.
2.
3.
4.
5.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
左側のナビゲーションペインで、[Email Receiving]、[Rule Sets] の順に選択します。
コンテンツペインで、[View Active Rule Set] を選択するか、[Inactive Rule Sets] リストから受信ルー
ルセットを選択します。
コンテンツペインで、[Reorder Rules] を選択します。
受信ルールの名前の横にある上向き矢印と下向き矢印を使用して受信ルールの順序を変更し、[Save
Order] を選択します。
SetReceiptRulePosition API を使用して受信ルールセット内の受信ルールの位置を変更する方法につい
ては、『Amazon Simple Email Service API Reference』を参照してください。
Amazon SES によるメール受信の IPアドレスフィル
タの管理
「IP アドレスフィルタの作成 (p. 244)」で説明する IP アドレスフィルタの作成に加えて、以下のセク
ションで説明するように、フィルタの表示と削除を行うことができます。
API Version 2010-12-01
261
Amazon Simple Email Service 開発者ガイド
エラーメトリクスの表示
IP アドレスフィルタの表示
IP アドレスフィルタのリストを取得するには、Amazon SES コンソールまたは ListReceiptFilters API
を使用できます。
IP アドレスフィルタを表示するには (コンソール)
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
左側のナビゲーションペインで、[Email Receiving]、[IP Address Filters] の順に選択します。IP アド
レスフィルタのリストが表示されます。
ListReceiptFilters API を使用して IP アドレスフィルタのリストを取得する方法については、
『Amazon Simple Email Service API Reference』を参照してください。
IP アドレスフィルタの削除
IP アドレスフィルタを削除するには、Amazon SES コンソールまたは DeleteReceiptFilter API を使用
できます。
IP アドレスフィルタを削除するには (コンソール)
1.
AWS マネジメントコンソールにサインインして、Amazon SES コンソール (https://
console.aws.amazon.com/ses/) を開きます。
2.
3.
4.
左側のナビゲーションペインで、[Email Receiving]、[IP Address Filters] の順に選択します。
詳細ペインで、IP アドレスフィルタを選択します。
[Delete] を選択し、IP アドレスフィルタを削除することを確認します。
DeleteReceiptFilter API を使用して IP アドレスフィルタを削除する方法については、『Amazon Simple
Email Service API Reference』を参照してください。
Amazon SES によるメール受信のメトリクスの表示
Amazon CloudWatch (CloudWatch) を使用して、受信ルールの失敗に関するメトリクスを表示できます。
メトリクスは [SES/Rule Metrics] で確認できます。
失敗に関するメトリクスは 2 つあります。
• PublishFailure - 構成されたアクションを Amazon SES が実行しようとしたときにエラーが発生しまし
た。
• PublishExpired - 構成されたアクションを Amazon SES が実行しようとしたときにエラーが発生
し、Amazon SES は当該 E メールの配信をそれ以上再試行しません。この失敗は、永続的な場合もあれ
ば一時的な場合もあります。8 時間以内にアクションが成功しなかったため、Amazon SES はそれ以上
再試行しません。
これらのエラーは、たとえば、いずれかの受信ルールのアクションで使用するよう設定されている
Amazon S3 バケット、Amazon SNS トピック、Lambda 関数に対するアクセス許可を削除したか取り消し
た場合に、発生することがあります。
Important
受信ルールセットを修正するために行う変更は、更新後に Amazon SES が受信する E メールに
のみ適用されます。E メールの評価は常に、その E メールが受信された時点で有効な受信ルール
セットに対して行われます。
次の図は、CloudWatch コンソールに表示されたメトリクスを示します。
API Version 2010-12-01
262
Amazon Simple Email Service 開発者ガイド
通知の使用
Amazon SES によるメール受信に関する通知の使用
Amazon SES を使用して E メールを受信するときに使用できる Amazon SNS 通知には 2 つのタイプがあ
ります。受信ルールのアクションが実行されたときにアラートを発行する通知と、E メールのコンテンツ
を含む SNS アクションからの通知です。
このセクションでは、通知の内容を説明し、それぞれの通知タイプの例を示します。
• 通知の内容 (p. 263)
• 通知の例 (p. 267)
Amazon SES の E メール受信通知の内容
E メール受信に関するすべての通知は、JavaScript Object Notation (JSON) 形式で Amazon Simple
Notification Service (Amazon SNS) トピックに公開されます。
トップレベル JSON オブジェクト
最上位の JSON オブジェクトには以下のフィールドが含まれます。
フィールド名
説明
notificationType
通知タイプを指定する文字列。この値は常に
Received になります。
receipt
E メール配信に関する情報を格納するオブジェク
ト。
mail
通知が関係する E メールについての情報を格納す
るオブジェクト。
content
通常は多目的インターネットメール拡張 (MIME)
形式の、変更を加えていない raw E メールを格納
する文字列。MIME 形式の詳細については、RFC
2045 を参照してください。
Note
このフィールドは、通知が SNS アクショ
ンによってトリガーされたときだけ使用
されます。その他のすべてのアクション
によってトリガーされる通知には、この
フィールドは含まれません。
receipt オブジェクト
receipt オブジェクトには以下のフィールドがあります。
フィールド名
説明
action
実行されたアクションに関する情報をカプセル化
するオブジェクト。
dkimVerdict
ドメインキーアイデンティファイドメール (DKIM)
のチェックに合格したどうかを示すオブジェク
ト。
API Version 2010-12-01
263
Amazon Simple Email Service 開発者ガイド
通知の使用
フィールド名
processingTimeMillis
recipients
説明
Amazon SES がメッセージを受信した時点からア
クションをトリガーした時点までの期間をミリ秒
で表す文字列。
この配信の受信者アドレスのリスト。このリスト
は、メールの宛先となっている受信者のサブセッ
トである場合があります。
spamVerdict
メッセージがスパムであるかどうかを示すオブ
ジェクト。
spfVerdict
Sender Policy Framework (SPF) のチェックに合格
したかどうかを示すオブジェクト。
timestamp
アクションがトリガーされた時間を ISO8601 形式
で示す文字列。
virusVerdict
メッセージにウイルスが含まれているかどうかを
示すオブジェクト。
action オブジェクト
action オブジェクトには以下のフィールドがあります。
フィールド名
type
topicArn
bucketName
objectKey
smtpReplyCode
statusCode
message
説明
実行されたアクションのタイ
プを示す文字列。使用できる値
は、S3、SNS、Bounce、Lambda、Stop、および
WorkMail です。
通知が公開された Amazon SNS トピックの
Amazon リソースネーム (ARN) を格納する文字
列。
メッセージが公開された Amazon S3 バケットの名
前を格納する文字列。S3 アクションタイプでのみ
使用されます。
Amazon S3 バケット内の E メールを一意に識別す
る名前を格納する文字列。これは、mail オブジェ
クトの messageId と同じです。S3 アクションタイ
プでのみ使用されます。
RFC 5321 で定義されている SMTP 応答コードを
格納する文字列。バウンスアクションタイプでの
み使用されます。
RFC 3463 で定義されている SMTP 拡張ステータ
スコードを格納する文字列。バウンスアクション
タイプでのみ使用されます。
バウンスメッセージに含める、人間が読み取れる
テキストを格納する文字列。バウンスアクション
タイプでのみ使用されます。
API Version 2010-12-01
264
Amazon Simple Email Service 開発者ガイド
通知の使用
フィールド名
sender
functionArn
invocationType
organizationArn
説明
バウンスした E メールの送信元 E メールアドレス
を格納する文字列。これは、バウンスメッセージ
の送信元のアドレスです。バウンスアクションタ
イプでのみ使用されます。
トリガーされた Lambda 関数の ARN を格納する文
字列。Lambda アクションタイプでのみ使用され
ます。
Lambda 関数の呼び出しタイプを格納する文字
列。指定できる値は RequestResponse および
Event です。Lambda アクションタイプでのみ使用
されます。
Amazon WorkMail 組織の ARN を格納する文字
列。WorkMail アクションタイプでのみ使用されま
す。
dkimVerdict オブジェクト
dkimVerdict オブジェクトには以下のフィールドがあります。
フィールド名
説明
status
DKIM 判定を格納する文字列。指定できる値は次の
とおりです。
• PASS - チェックに成功しました。
• FAIL - チェックに失敗しました。
• GRAY - メッセージが DKIM 署名されていませ
ん。
• PROCESSING_FAILED - Amazon SES が DKIM 署
名をチェックできない問題が存在します。たと
えば、DNS クエリに失敗しているか、DKIM 署
名ヘッダーが正しくフォーマットされていませ
ん。
spamVerdict オブジェクト
spamVerdict オブジェクトには以下のフィールドがあります。
フィールド名
説明
status
スパムスキャンの結果を格納する文字列。指定で
きる値は次のとおりです。
• PASS - チェックに成功しました。
• FAIL - チェックに失敗しました。
• GRAY - Amazon SES がメールをスキャンしま
したが、スパムかどうかを断定できませんでし
た。
• PROCESSING_FAILED - Amazon SES がメールの
コンテンツをスキャンできません。たとえば、
API Version 2010-12-01
265
Amazon Simple Email Service 開発者ガイド
通知の使用
フィールド名
説明
メールが有効な MIME メッセージではありませ
ん。
spfVerdict オブジェクト
spfVerdict オブジェクトには以下のフィールドがあります。
フィールド名
説明
status
SPF 判定を格納する文字列。指定できる値は次の
とおりです。
• PASS - チェックに成功しました。
• FAIL - チェックに失敗しました。
• GRAY - MAIL FROM コマンドで使用されているド
メインに SPF ポリシーがありません。
• PROCESSING_FAILED - Amazon SES が SPF レ
コードをチェックできない問題が存在します。
たとえば、DNS クエリに失敗しています。
virusVerdict オブジェクト
virusVerdict オブジェクトには以下のフィールドがあります。
フィールド名
説明
status
ウイルススキャンの結果を格納する文字列。指定
できる値は次のとおりです。
• PASS - チェックに成功しました。
• FAIL - チェックに失敗しました。
• GRAY - Amazon SES がメールをスキャンしまし
たが、ウイルスが含まれているかどうかを断定
できませんでした。
• PROCESSING_FAILED - Amazon SES がメールの
コンテンツをスキャンできません。たとえば、
メールが有効な MIME メッセージではありませ
ん。
mail オブジェクト
mail オブジェクトには以下のフィールドがあります。
フィールド名
説明
destination
E メールの受信者である E メールアドレスのリス
ト。
messageId
Amazon SES によって E メールに割り当てら
れる一意の ID を格納する文字列。E メールが
Amazon S3 に配信された場合、このメッセージ ID
は、Amazon S3 バケットにメッセージを書き込む
API Version 2010-12-01
266
Amazon Simple Email Service 開発者ガイド
通知の使用
フィールド名
説明
ために使用される Amazon S3 オブジェクトキーに
もなります。
source
E メールの送信元の E メールアドレス (エンベロー
プ MAIL FROM アドレス) を格納する文字列。
timestamp
E メールを受信した時刻を ISO8601 形式で格納す
る文字列。
headers
commonHeaders
headersTruncated
Amazon SES ヘッダーおよびカスタムヘッダーの
リスト。リスト内の各ヘッダーには、name フィー
ルドと value フィールドがあります。
すべての E 子メールに共通するヘッダーのリス
ト。リスト内の各ヘッダーは名前と値で構成され
ます。
通知でヘッダーが切り捨てられたかどうかを示す
文字列。切り捨ては、ヘッダーが 10 KB を超える
場合に発生します。指定できる値は true および
false です。
Amazon SES の E メール受信通知の例
このセクションでは、アクションが実行されたことについてアラートを発行する通知と、E メールのコン
テンツを含む SNS アクションからの通知の例を示します。
• アラート通知 (p. 267)
• SNS アクションの通知 (p. 269)
アラート通知
このセクションでは、S3 アクションによってトリガーできる Amazon SNS 通知の例を示しま
す。Lambda アクション、バウンスアクション、停止アクション、および Amazon WorkMail アクションに
よってトリガーされる通知は類似しています。通知には E メールに関する情報が含まれますが、E メール
のコンテンツそのものは含まれません。
{
"notificationType": "Received",
"receipt": {
"timestamp": "2015-09-11T20:32:33.936Z",
"processingTimeMillis": 406,
"recipients": [
"[email protected]"
],
"spamVerdict": {
"status": "PASS"
},
"virusVerdict": {
"status": "PASS"
},
"spfVerdict": {
"status": "PASS"
},
"dkimVerdict": {
"status": "PASS"
},
API Version 2010-12-01
267
Amazon Simple Email Service 開発者ガイド
通知の使用
"action": {
"type": "S3",
"topicArn": "arn:aws:sns:us-east-1:012345678912:example-topic",
"bucketName": "my-S3-bucket",
"objectKey": "\email"
}
},
"mail": {
"timestamp": "2015-09-11T20:32:33.936Z",
"source":
"[email protected]zonses.com",
"messageId": "d6iitobk75ur44p8kdnnp7g2n800",
"destination": [
"[email protected]"
],
"headersTruncated": false,
"headers": [
{
"name": "Return-Path",
"value":
"<[email protected]zonses.com>"
},
{
"name": "Received",
"value": "from a9-183.smtp-out.amazonses.com (a9-183.smtpout.amazonses.com [54.240.9.183]) by inbound-smtp.us-east-1.amazonaws.com with SMTP id
d6iitobk75ur44p8kdnnp7g2n800 for [email protected]; Fri, 11 Sep 2015 20:32:33 +0000
(UTC)"
},
{
"name": "DKIM-Signature",
"value": "v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple;
s=ug7nbtf4gccmlpwj322ax3p6ow6yfsug; d=amazonses.com; t=1442003552;
h=From:To:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Date:MessageID:Feedback-ID; bh=DWr3IOmYWoXCA9ARqGC/UaODfghffiwFNRIb2Mckyt4=;
b=p4ukUDSFqhqiub+zPR0DW1kp7oJZakrzupr6LBe6sUuvqpBkig56UzUwc29rFbJF
hlX3Ov7DeYVNoN38stqwsF8ivcajXpQsXRC1cW9z8x875J041rClAjV7EGbLmudVpPX
4hHst1XPyX5wmgdHIhmUuh8oZKpVqGi6bHGzzf7g="
},
{
"name": "From",
"value": "[email protected]"
},
{
"name": "To",
"value": "[email protected]"
},
{
"name": "Subject",
"value": "Example subject"
},
{
"name": "MIME-Version",
"value": "1.0"
},
{
"name": "Content-Type",
"value": "text/plain; charset=UTF-8"
},
{
"name": "Content-Transfer-Encoding",
"value": "7bit"
},
{
"name": "Date",
"value": "Fri, 11 Sep 2015 20:32:32 +0000"
API Version 2010-12-01
268
Amazon Simple Email Service 開発者ガイド
通知の使用
},
{
"name": "Message-ID",
"value": "<[email protected]>"
},
{
"name": "X-SES-Outgoing",
"value": "2015.09.11-54.240.9.183"
},
{
"name": "Feedback-ID",
"value": "1.us-east-1.Krv2FKpFdWV+KUYw3Qd6wcpPJ4Sv/
pOPpEPSHn2u2o4=:AmazonSES"
}
],
"commonHeaders": {
"returnPath":
"[email protected]zonses.com",
"from": [
"[email protected]"
],
"date": "Fri, 11 Sep 2015 20:32:32 +0000",
"to": [
"[email protected]"
],
"messageId": "<[email protected]>",
"subject": "Example subject"
}
}
}
SNS アクションの通知
このセクションでは、SNS アクションの通知の例を示します。前述のアラート通知とは異なり、E メー
ルを格納する content セクションが含まれています。これは通常、多目的インターネットメール拡張
(MIME) 形式です。
{
"notificationType": "Received",
"receipt": {
"timestamp": "2015-09-11T20:32:33.936Z",
"processingTimeMillis": 222,
"recipients": [
"[email protected]"
],
"spamVerdict": {
"status": "PASS"
},
"virusVerdict": {
"status": "PASS"
},
"spfVerdict": {
"status": "PASS"
},
"dkimVerdict": {
"status": "PASS"
},
"action": {
"type": "SNS",
"topicArn": "arn:aws:sns:us-east-1:012345678912:example-topic"
}
},
"mail": {
"timestamp": "2015-09-11T20:32:33.936Z",
API Version 2010-12-01
269
Amazon Simple Email Service 開発者ガイド
通知の使用
"source": "[email protected]",
"messageId": "d6iitobk75ur44p8kdnnp7g2n800",
"destination": [
"[email protected]"
],
"headersTruncated": false,
"headers": [
{
"name": "Return-Path",
"value":
"<[email protected]zonses.com>"
},
{
"name": "Received",
"value": "from a9-183.smtp-out.amazonses.com (a9-183.smtpout.amazonses.com [54.240.9.183]) by inbound-smtp.us-east-1.amazonaws.com with SMTP id
d6iitobk75ur44p8kdnnp7g2n800 for [email protected]; Fri, 11 Sep 2015 20:32:33 +0000
(UTC)"
},
{
"name": "DKIM-Signature",
"value": "v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple;
s=ug7nbtf4gccmlpwj322ax3p6ow6yfsug; d=amazonses.com; t=1442003552;
h=From:To:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Date:MessageID:Feedback-ID; bh=DWr3IOmYWoXCA9ARqGC/UaODfghffiwFNRIb2Mckyt4=;
b=p4ukUDSFqhqiub+zPR0DW1kp7oJZakrzupr6LBe6sUuvqpBkig56UzUwc29rFbJF
hlX3Ov7DeYVNoN38stqwsF8ivcajXpQsXRC1cW9z8x875J041rClAjV7EGbLmudVpPX
4hHst1XPyX5wmgdHIhmUuh8oZKpVqGi6bHGzzf7g="
},
{
"name": "From",
"value": "[email protected]"
},
{
"name": "To",
"value": "[email protected]"
},
{
"name": "Subject",
"value": "Example subject"
},
{
"name": "MIME-Version",
"value": "1.0"
},
{
"name": "Content-Type",
"value": "text/plain; charset=UTF-8"
},
{
"name": "Content-Transfer-Encoding",
"value": "7bit"
},
{
"name": "Date",
"value": "Fri, 11 Sep 2015 20:32:32 +0000"
},
{
"name": "Message-ID",
"value": "<[email protected]>"
},
{
"name": "X-SES-Outgoing",
"value": "2015.09.11-54.240.9.183"
},
{
API Version 2010-12-01
270
Amazon Simple Email Service 開発者ガイド
通知の使用
"name": "Feedback-ID",
"value": "1.us-east-1.Krv2FKpFdWV+KUYw3Qd6wcpPJ4Sv/
pOPpEPSHn2u2o4=:AmazonSES"
}
],
"commonHeaders": {
"returnPath":
"[email protected]zonses.com",
"from": [
"[email protected]"
],
"date": "Fri, 11 Sep 2015 20:32:32 +0000",
"to": [
"[email protected]"
],
"messageId": "<[email protected]>",
"subject": "Example subject"
}
},
"content": "Return-Path: <[email protected]>
\r\nReceived: from a9-183.smtp-out.amazonses.com (a9-183.smtp-out.amazonses.com
[54.240.9.183])\r\n by inbound-smtp.us-east-1.amazonaws.com with SMTP id
d6iitobk75ur44p8kdnnp7g2n800\r\n for [email protected];\r\n Fri, 11 Sep
2015 20:32:33 +0000 (UTC)\r\nDKIM-Signature: v=1; a=rsa-sha256; q=dns/txt;
c=relaxed/simple;\r\n\ts=ug7nbtf4gccmlpwj322ax3p6ow6yfsug; d=amazonses.com;
t=1442003552;\r\n\th=From:To:Subject:MIME-Version:Content-Type:Content-TransferEncoding:Date:Message-ID:Feedback-ID;\r\n\tbh=DWr3IOmYWoXCA9ARqGC/UaODfghffiwFNRIb2Mckyt4=;
\r\n\tb=p4ukUDSFqhqiub+zPR0DW1kp7oJZakrzupr6LBe6sUuvqpBkig56UzUwc29rFbJF\r
\n\thlX3Ov7DeYVNoN38stqwsF8ivcajXpQsXRC1cW9z8x875J041rClAjV7EGbLmudVpPX\r\n
\t4hHst1XPyX5wmgdHIhmUuh8oZKpVqGi6bHGzzf7g=\r\nFrom: [email protected]\r\nTo:
[email protected]\r\nSubject: Example subject\r\nMIME-Version: 1.0\r\nContent-Type:
text/plain; charset=UTF-8\r\nContent-Transfer-Encoding: 7bit\r\nDate: Fri, 11 Sep 2015
20:32:32 +0000\r\nMessage-ID: <[email protected]>\r\nX-SESOutgoing: 2015.09.11-54.240.9.183\r\nFeedback-ID: 1.us-east-1.Krv2FKpFdWV+KUYw3Qd6wcpPJ4Sv/
pOPpEPSHn2u2o4=:AmazonSES\r\n\r\nExample content\r\n"
}
API Version 2010-12-01
271
Amazon Simple Email Service 開発者ガイド
Amazon SES にアクセスするための IAM ポリシーの作成
Amazon SES へのアクセスの制御
AWS Identity and Access Management (IAM) と Amazon Simple Email Service (Amazon SES) を使用し
て、IAM ユーザー、グループ、またはロールが実行できる Amazon SES API アクションを指定できます。
(このトピックでは、これらのエンティティをまとめて「ユーザー」と呼びます)。ユーザーが "From"、
受信者、"Return-Path" の E メールアドレスに使用できる E メールアドレスをコントロールすることもで
きます。
たとえば、IAM ポリシーを作成して、組織内のユーザーはメールを送信できるが送信統計の確認などの管
理作業を実行できないようにすることができます。別の例として、ユーザーが特定の "From" アドレスを使
用している場合のみアカウントから Amazon SES を介して E メールを送信することを許可するポリシー
を作成できます。
IAM を使用するには、IAM ポリシー (明示的にアクセス権限を定義するドキュメント) を定義し、ユーザー
にポリシーをアタッチします。IAM ポリシーを作成する方法については、『IAM ユーザーガイド』を参照
してください。ポリシーで設定した制限が適用される以外に、ユーザーが Amazon SES を操作する方法
や、Amazon SES がリクエストを実行する方法に変更はありません。
Note
送信承認ポリシーを使用することで、Amazon SES へのアクセスを制御することもできま
す。IAM ポリシーは、個々の IAM ユーザーが実行できる操作を制限しますが、送信承認ポリシー
は個々の検証済みアイデンティティの使用方法を制限します。さらに、クロスアカウントアクセ
スを許可できるのは送信承認ポリシーのみです。送信承認の詳細については、「Amazon SES で
の送信承認の使用 (p. 171)」を参照してください。
既存の IAM ユーザーが使用する Amazon SES SMTP の認証情報を生成する方法については、「Amazon
SES SMTP 認証情報を取得する (p. 55)」を参照してください。
Amazon SES にアクセスするための IAM ポリシー
の作成
このセクションでは、特に Amazon SES で IAM ポリシーを使用する方法を説明します。IAM ポリシーを
作成する一般的な方法については、『IAM ユーザーガイド』を参照してください。
Amazon SES で IAM を使用する理由は次の 3 つです。
• E メール送信アクションを制限するため。
• ユーザーが送信する E メールの "From"、受信者、"Return-Path" のアドレスを制限するため。
API Version 2010-12-01
272
Amazon Simple Email Service 開発者ガイド
アクションの制限
• ユーザーが使用を承認された API の呼び出しを許可される期間など、API の使用の一般的な側面をコン
トロールするため。
アクションの制限
ユーザーが実行できる Amazon SES アクションをコントロールするには、IAM ポリシーの Action 要素を
使用します。API 名の先頭に小文字の文字列 ses: を付けることで、Action 要素をすべての Amazon SES
API アクションに設定できます。たとえば、Action を ses:SendEmail、ses:GetSendStatistics、または
ses:*(すべてのアクションの場合)に設定できます。
次に、Action に応じて、次のように Resource 要素を指定します。
Action 要素により E メール送信 API(つまり、ses:SendEmail や ses:SendRawEmail)へのアクセスのみ
許可されている場合、次のようにします。
• ユーザーが AWS アカウントの任意の ID から送信できるようにするには、Resource を * に設定しま
す。
• ユーザーの送信元の ID を制限するには、Resource を、ユーザーに使用を許可する ID の ARN に設定し
ます。
Action 要素によりすべての API へのアクセスが許可されている場合、次のようにします。
• ユーザーの送信元の ID を制限しない場合、Resource を * に設定します。
• ユーザーの送信元の ID を制限する場合、2 つのポリシー(または、1 つのポリシー内に 2 つのステート
メント)を作成する必要があります。
• Action が、許可される E メール送信以外の API の明示的なリストに設定され、Resource が * に設定
されているポリシー
• Action が E メール送信 API(ses:SendEmail や ses:SendRawEmail)のいずれかに設定さ
れ、Resource がユーザーに使用を許可する ID の ARN に設定されたポリシー
使用可能な Amazon SES アクションのリストについては、「Amazon Simple Email Service API
Reference」を参照してください。IAM ユーザーが SMTP インターフェイスを使用する場合、許可する
ses:SendRawEmail へのアクセスを最小限にする必要があります。
E メールアドレスの制限
ユーザーを特定の E メールアドレスに制限する場合、Condition ブロックを使用できます。Condition ブ
ロックでは、『IAM ユーザーガイド』で説明されている条件キーを使用して条件を指定します。条件キー
を使用して、次の E メールアドレスをコントロールできます。
Note
これらの E メールアドレス条件キーは、以下の表に記載された API にのみ適用されます。
条件キー
説明
API
受信者アドレスを制限しま
す。To:、"CC"、"BCC" アドレス
が含まれます。
SendEmail、SendRawEmail
ses:FromAddress
"From" アドレスを制限します。
SendEmail、SendRawEmail、SendBounce
ses:FromDisplayName
表示名として使用される "From"
アドレスを制限します。
SendEmail、SendRawEmail
ses:Recipients
API Version 2010-12-01
273
Amazon Simple Email Service 開発者ガイド
一般的な API の使用の制限
条件キー
ses:FeedbackAddress
説明
API
"Return-Path" アドレス(E メー
ルのフィードバック転送により
バウンスや苦情を送信できるア
ドレス)を制限します。E メー
ルのフィードバック転送の詳細
については、「Amazon SES E
メールでの通知 (p. 99)」を参照
してください。
SendEmail、SendRawEmail
一般的な API の使用の制限
条件で AWS 全体のキーを使用することで、ユーザーが API にアクセスを許可される日時のような側面に
基づいて Amazon SES へのアクセスを制限できます。Amazon SES が実装する AWS 全体のポリシーキー
は次のキーに限られます。
• aws:CurrentTime
• aws:EpochTime
• aws:SecureTransport
• aws:SourceIp
• aws:UserAgent
これらのキーの詳細については、『IAM ユーザーガイド』を参照してください。
Amazon SES の IAM ポリシーの例
このトピックでは、特定の条件下でのみ Amazon SES へのユーザーアクセスを許可するポリシーの例を示
します。
• すべての Amazon SES アクションへのフルアクセスを許可 (p. 274)
• E メール送信アクションへのアクセスのみを許可 (p. 275)
• 送信期間の制限 (p. 275)
• 受信者アドレスの制限 (p. 275)
• "From" アドレスの制限 (p. 276)
• E メール送信者の表示名の制限 (p. 276)
• バウンスや苦情のフィードバックの制限と送信先 (p. 277)
すべての Amazon SES アクションへのフルアクセス
を許可
次のポリシーでは、任意の Amazon SES アクションの呼び出しをユーザーに許可します。
{
"Version": "2012-10-17",
"Statement":[{
"Effect": "Allow",
"Action": ["ses:*"],
API Version 2010-12-01
274
Amazon Simple Email Service 開発者ガイド
E メール送信アクションへのアクセスのみを許可
"Resource":"*"
}
]
}
E メール送信アクションへのアクセスのみを許可
次のポリシーでは、Amazon SES を使用した E メールの送信をユーザーに許可しますが、Amazon SES
送信統計へのアクセスなどの管理作業を実行することは許可しません。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["ses:SendEmail", "ses:SendRawEmail"],
"Resource":"*"
}
]
}
送信期間の制限
次のポリシーでは、2015 年 9 月のみ、Amazon SES E メール送信 API の呼び出しをユーザーに許可しま
す。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["ses:SendEmail", "ses:SendRawEmail"],
"Resource":"*",
"Condition": {
"DateGreaterThan": {
"aws:CurrentTime":"2015-08-31T12:00Z"
},
"DateLessThan": {
"aws:CurrentTime":"2015-10-01T12:00Z"
}
}
}
]
}
受信者アドレスの制限
次のポリシーでは、ドメイン example.com の受信者アドレスに対してのみ、Amazon SES E メール送信
API への呼び出しをユーザーに許可します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["ses:SendEmail", "ses:SendRawEmail"],
"Resource":"*",
"Condition": {
API Version 2010-12-01
275
Amazon Simple Email Service 開発者ガイド
"From" アドレスの制限
"ForAllValues:StringLike": {
"ses:Recipients": ["*@example.com"]
}
}
}
]
}
"From" アドレスの制限
次のポリシーでは、"From" アドレスが [email protected] の場合のみ、Amazon SES E メール送信
API の呼び出しをユーザーに許可します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["ses:SendEmail", "ses:SendRawEmail"],
"Resource":"*",
"Condition": {
"StringEquals": {
"ses:FromAddress": "[email protected]"
}
}
}
]
}
次のポリシーでは、「From」アドレスが [email protected] の場合のみ、SendBounce API の呼び出
しをユーザーに許可します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["ses:SendBounce"],
"Resource":"*",
"Condition": {
"StringEquals": {
"ses:FromAddress": "[email protected]"
}
}
}
]
}
E メール送信者の表示名の制限
次のポリシーでは、"From" アドレスの表示名に "Marketing" が含まれている場合のみ、Amazon SES E
メール送信 API の呼び出しをユーザーに許可します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["ses:SendEmail", "ses:SendRawEmail"],
API Version 2010-12-01
276
Amazon Simple Email Service 開発者ガイド
バウンスや苦情のフィードバックの制限と送信先
"Resource":"*",
"Condition": {
"StringLike": {
"ses:FromDisplayName": "Marketing"
}
}
}
]
}
バウンスや苦情のフィードバックの制限と送信先
次のポリシーでは、E メールの "Return-Path" が [email protected] に設定されている場合の
み、Amazon SES E メール送信 API をユーザーに許可します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["ses:SendEmail", "ses:SendRawEmail"],
"Resource":"*",
"Condition": {
"StringEquals": {
"ses:FeedbackAddress": "[email protected]"
}
}
}
]
}
Amazon SES のさまざまなトピックに関する技術的な考察については、「Amazon SES ブログ」をご覧
ください。お問い合わせを参照あるいは発信するには「Amazon SES フォーラム」をご覧ください。
API Version 2010-12-01
277
Amazon Simple Email Service 開発者ガイド
CloudTrail での Amazon SES 情報
AWS CloudTrail を使用して Amazon
SES API 呼び出しのログを記録する
Amazon SES は、ご利用の AWS アカウントの Amazon SES により、またはこれらの代わりに行われ
る API 呼び出しをキャプチャし、指定した Amazon S3 バケットにログファイルを渡すサービスである
CloudTrail と統合されています。CloudTrail は、Amazon SES コンソールまたは Amazon SES API から
行われた API 呼び出しをキャプチャします。CloudTrail によって収集された情報を使用して、Amazon
SES に対してどのようなリクエストが行われたか(リクエストの実行元 IP アドレス、実行者、実行日時
など)を判断できます。CloudTrail を設定して有効にする方法など、CloudTrail の詳細については、AWS
CloudTrail User Guide を参照してください。
CloudTrail での Amazon SES 情報
AWS アカウントで CloudTrail のログ記録を有効にすると、Amazon SES アクションのサブセットに対す
る API 呼び出しがログファイルに記録されます。Amazon SES レコードは、他の AWS サービスレコード
と一緒にログファイルに記録されます。CloudTrail は、期間とファイルサイズに基づいて、新しいファイ
ルをいつ作成して書き込むかを決定します。
以下のアクションがサポートされています。
• CloneReceiptRuleSet
• CreateReceiptFilter
• CreateReceiptRule
• CreateReceiptRuleSet
• DeleteIdentity
• DeleteIdentityPolicy
• DeleteReceiptFilter
• DeleteReceiptRule
• DeleteReceiptRuleSet
• DeleteVerifiedEmailAddress
• DescribeActiveReceiptRuleSet
• DescribeReceiptRule
API Version 2010-12-01
278
Amazon Simple Email Service 開発者ガイド
Amazon SES ログファイルエントリの概要
• DescribeReceiptRuleSet
• GetIdentityDkimAttributes
• GetIdentityNotificationAttributes
• GetIdentityPolicies
• GetIdentityVerificationAttributes
• GetSendQuota
• GetSendStatistics
• ListIdentities
• ListIdentityPolicies
• ListReceiptFilters
• ListReceiptRuleSets
• ListVerifiedEmailAddresses
• PutIdentityPolicy
• ReorderReceiptRuleSet
• SetActiveReceiptRuleSet
• SetReceiptRulePosition
• SetIdentityDkimEnabled
• SetIdentityFeedbackForwardingEnabled
• SetIdentityHeadersInNotificationsEnabled
• SetIdentityNotificationTopic
• UpdateReceiptRule
• VerifyDomainDkim
• VerifyDomainIdentity
• VerifyEmailAddress
• VerifyEmailIdentity
各ログエントリには、誰がリクエストを生成したかに関する情報が含まれます。ログのユーザー ID 情報
は、リクエストが、ルートまたは IAM ユーザーの認証情報を使用して送信されたか、ロールまたはフェデ
レーションユーザーの一時的なセキュリティ認証情報を使用して送信されたか、あるいは別の AWS サー
ビスによって送信されたかを確認するのに役立ちます。詳細については、CloudTrail Event Reference の
userIdentity フィールドを参照してください。
必要な場合はログファイルを自身のバケットに保管できますが、ログファイルを自動的にアーカイブま
たは削除するにように Amazon S3 ライフサイクルルールを定義することもできます。デフォルトでは
Amazon S3 のサーバー側の暗号化 (SSE) を使用して、ログファイルが暗号化されます。
ログファイルの配信時にすぐにアクションを実行する場合、新しいログファイルの配信時に CloudTrail に
より Amazon SNS 通知を発行することを選択できます。詳細については、「Amazon SNS 通知の構成」
を参照してください。
また、複数の AWS リージョンと複数の AWS アカウントからの Amazon SES ログファイルを 1 つの
Amazon S3 バケットに集約することもできます。詳細については、「CloudTrail ログファイルの単一の
Amazon S3 バケットへの集約」を参照してください。
Amazon SES ログファイルエントリの概要
CloudTrail ログファイルには、複数の JSON 形式イベントで構成される 1 つ以上のログエントリを記録で
きます。ログエントリは任意の送信元からの単一のリクエストを表し、リクエストされたアクション、パ
ラメーター、アクションの日時などに関する情報を含みます。ログエントリは、特定の順序になるように
API Version 2010-12-01
279
Amazon Simple Email Service 開発者ガイド
Amazon SES ログファイルエントリの概要
生成されるわけではありません。つまり、パブリック API 呼び出しの順序付けられたスタックトレースで
はありません。
CloudTrail ログの例を次に示します。
{
"Records": [
{
"awsRegion": "us-west-2",
"eventID": "0ffa308d-1467-4259-8be3-c749753be325",
"eventName": "DeleteIdentity",
"eventSource": "ses.amazonaws.com",
"eventTime": "2015-02-02T21:34:50Z",
"eventType": "AwsApiCall",
"eventVersion": "1.02",
"recipientAccountId": "111122223333",
"requestID": "50b87bfe-ab23-11e4-9106-5b36376f9d12",
"requestParameters": {
"identity": "amazon.com"
},
"responseElements": null,
"sourceIPAddress": "192.0.2.0",
"userAgent": "aws-sdk-java/unknown-version",
"userIdentity": {
"accessKeyId": "AKIAIOSFODNN7EXAMPLE",
"accountId": "111122223333",
"arn": "arn:aws:iam::111122223333:root",
"principalId": "111122223333",
"type": "Root"
}
},
{
"awsRegion": "us-west-2",
"eventID": "17bb827a-dc8c-4156-90b1-c214e1d135c9",
"eventName": "DeleteVerifiedEmailAddress",
"eventSource": "ses.amazonaws.com",
"eventTime": "2015-02-04T00:57:15Z",
"eventType": "AwsApiCall",
"eventVersion": "1.02",
"recipientAccountId": "111122223333",
"requestID": "c29fb5c1-ac08-11e4-8ff5-a56a3119e253",
"requestParameters": {
"emailAddress": "[email protected]"
},
"responseElements": null,
"sourceIPAddress": "192.0.2.0",
"userAgent": "aws-sdk-java/unknown-version",
"userIdentity": {
"accessKeyId": "AKIAIOSFODNN7EXAMPLE",
"accountId": "111122223333",
"arn": "arn:aws:iam::111122223333:root",
"principalId": "111122223333",
"type": "Root"
}
},
{
"awsRegion": "us-west-2",
"eventID": "0b311e38-b5c6-43b3-9a39-5fbf0c2d0d99",
"eventName": "GetIdentityDkimAttributes",
"eventSource": "ses.amazonaws.com",
"eventTime": "2015-02-02T21:34:50Z",
"eventType": "AwsApiCall",
"eventVersion": "1.02",
"recipientAccountId": "111122223333",
"requestID": "50f92e80-ab23-11e4-9106-5b36376f9d12",
API Version 2010-12-01
280
Amazon Simple Email Service 開発者ガイド
Amazon SES ログファイルエントリの概要
"requestParameters": {
"identities": [
"example.com"
]
},
"responseElements": null,
"sourceIPAddress": "192.0.2.0",
"userAgent": "aws-sdk-java/unknown-version",
"userIdentity": {
"accessKeyId": "AKIAIOSFODNN7EXAMPLE",
"accountId": "111122223333",
"arn": "arn:aws:iam::111122223333:root",
"principalId": "111122223333",
"type": "Root"
}
},
{
"awsRegion": "us-west-2",
"eventID": "bf695be8-1c67-45b0-8f10-fd56afee09dd",
"eventName": "GetIdentityNotificationAttributes",
"eventSource": "ses.amazonaws.com",
"eventTime": "2015-02-02T21:34:50Z",
"eventType": "AwsApiCall",
"eventVersion": "1.02",
"recipientAccountId": "111122223333",
"requestID": "5133ed92-ab23-11e4-9106-5b36376f9d12",
"requestParameters": {
"identities": [
"example.com"
]
},
"responseElements": null,
"sourceIPAddress": "192.0.2.0",
"userAgent": "aws-sdk-java/unknown-version",
"userIdentity": {
"accessKeyId": "AKIAIOSFODNN7EXAMPLE",
"accountId": "111122223333",
"arn": "arn:aws:iam::111122223333:root",
"principalId": "111122223333",
"type": "Root"
}
},
{
"awsRegion": "us-west-2",
"eventID": "8f9aed63-b03a-4d30-a880-33ae0c6b7786",
"eventName": "GetIdentityVerificationAttributes",
"eventSource": "ses.amazonaws.com",
"eventTime": "2015-02-04T00:57:16Z",
"eventType": "AwsApiCall",
"eventVersion": "1.02",
"recipientAccountId": "111122223333",
"requestID": "c2d23773-ac08-11e4-8ff5-a56a3119e253",
"requestParameters": {
"identities": [
"example.com"
]
},
"responseElements": null,
"sourceIPAddress": "192.0.2.0",
"userAgent": "aws-sdk-java/unknown-version",
"userIdentity": {
"accessKeyId": "AKIAIOSFODNN7EXAMPLE",
"accountId": "111122223333",
"arn": "arn:aws:iam::111122223333:root",
"principalId": "111122223333",
"type": "Root"
API Version 2010-12-01
281
Amazon Simple Email Service 開発者ガイド
Amazon SES ログファイルエントリの概要
}
},
{
"awsRegion": "us-west-2",
"eventID": "60ef4f01-9826-4fb4-828e-8c36dda81f40",
"eventName": "GetSendQuota",
"eventSource": "ses.amazonaws.com",
"eventTime": "2015-02-04T01:03:27Z",
"eventType": "AwsApiCall",
"eventVersion": "1.02",
"recipientAccountId": "111122223333",
"requestID": "a0760648-ac09-11e4-8ff5-a56a3119e253",
"requestParameters": null,
"responseElements": null,
"sourceIPAddress": "192.0.2.0",
"userAgent": "aws-sdk-java/unknown-version",
"userIdentity": {
"accessKeyId": "AKIAIOSFODNN7EXAMPLE",
"accountId": "111122223333",
"arn": "arn:aws:iam::111122223333:root",
"principalId": "111122223333",
"type": "Root"
}
},
{
"awsRegion": "us-west-2",
"eventID": "0fe5eef3-0c28-4480-808e-307b21404a78",
"eventName": "GetSendStatistics",
"eventSource": "ses.amazonaws.com",
"eventTime": "2015-02-02T21:34:51Z",
"eventType": "AwsApiCall",
"eventVersion": "1.02",
"recipientAccountId": "111122223333",
"requestID": "51644c64-ab23-11e4-9106-5b36376f9d12",
"requestParameters": null,
"responseElements": null,
"sourceIPAddress": "192.0.2.0",
"userAgent": "aws-sdk-java/unknown-version",
"userIdentity": {
"accessKeyId": "AKIAIOSFODNN7EXAMPLE",
"accountId": "111122223333",
"arn": "arn:aws:iam::111122223333:root",
"principalId": "111122223333",
"type": "Root"
}
},
{
"awsRegion": "us-west-2",
"eventID": "6eb8178e-69c3-4a93-8af0-2a5a0f5f209e",
"eventName": "ListIdentities",
"eventSource": "ses.amazonaws.com",
"eventTime": "2015-02-04T01:03:27Z",
"eventType": "AwsApiCall",
"eventVersion": "1.02",
"recipientAccountId": "111122223333",
"requestID": "a0a4de7a-ac09-11e4-8ff5-a56a3119e253",
"requestParameters": {
"identityType": "Domain",
"maxItems": 10
},
"responseElements": null,
"sourceIPAddress": "192.0.2.0",
"userAgent": "aws-sdk-java/unknown-version",
"userIdentity": {
"accessKeyId": "AKIAIOSFODNN7EXAMPLE",
"accountId": "111122223333",
API Version 2010-12-01
282
Amazon Simple Email Service 開発者ガイド
Amazon SES ログファイルエントリの概要
"arn": "arn:aws:iam::111122223333:root",
"principalId": "111122223333",
"type": "Root"
}
},
{
"awsRegion": "us-west-2",
"eventID": "a18a9745-d06a-43e9-aad0-8eee4de50f48",
"eventName": "ListVerifiedEmailAddresses",
"eventSource": "ses.amazonaws.com",
"eventTime": "2015-02-02T21:34:51Z",
"eventType": "AwsApiCall",
"eventVersion": "1.02",
"recipientAccountId": "111122223333",
"requestID": "51ad8a66-ab23-11e4-9106-5b36376f9d12",
"requestParameters": null,
"responseElements": null,
"sourceIPAddress": "192.0.2.0",
"userAgent": "aws-sdk-java/unknown-version",
"userIdentity": {
"accessKeyId": "AKIAIOSFODNN7EXAMPLE",
"accountId": "111122223333",
"arn": "arn:aws:iam::111122223333:root",
"principalId": "111122223333",
"type": "Root"
}
},
{
"awsRegion": "us-west-2",
"eventID": "da975f45-e68b-4499-8e3f-31a89140e0c9",
"eventName": "SetIdentityDkimEnabled",
"eventSource": "ses.amazonaws.com",
"eventTime": "2015-02-04T01:01:24Z",
"eventType": "AwsApiCall",
"eventVersion": &quo