Amazon Simple Email Service (Amazon SES) を使用してインバウンド E メールを受信し、アーカイブまたは今後の処理のためにその E メールを保存したいと考えています。
解決方法
注: 開始する前に、エンドポイントが E メールの受信に対応している AWS リージョンにあることを確認してください。Amazon S3 バケットを除き、Amazon SES で E メールを受信するために使用するすべての AWS リソースは、Amazon SES エンドポイントと同じ AWS リージョンにある必要があります。
Amazon SES でメールドメインを検証する
E メールの受信に使用するドメインを確認します。
Amazon SES が E メールを受信できるように MX レコードを公開する
Amazon SES がドメインのインバウンド E メールを受信するには、メールエクスチェンジャーレコード (MX レコード) を公開します。Amazon SES インバウンドの受信エンドポイントをドメインの DNS 設定に含めます。
Amazon SES からの E メールを保存する権限を持つ Amazon S3 バケットを設定する
1. Amazon S3 コンソールを開きます。
2. Amazon S3 バケットを作成します。
3. バケットリストからバケット名を選択します。
4. [権限] タブを選択します。
5. [バケットポリシー] を選択します。
6. バケットポリシーエディタで、次のポリシーを入力します。
AWSDOC-EXAMPLE-BUCKET は書き込み先の S3 バケットの名前に置き換えます。
111122223333 は自身の AWS アカウント ID に置き換えます。region は受信ルールを作成する AWS リージョンに置き換えます。rule_set_name は受信ルールを含むルールセットの名前に置き換えます。receipt_rule_name は受信ルールの名前に置き換えます。Amazon SES に rule_set_name と receipt_rule_name が設定されていない場合は、任意の値を使用してバケットポリシーを設定できます。次のセクションのルールセットとルールを作成するときは、同じ値を使用してください。
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"AllowSESPuts",
"Effect":"Allow",
"Principal":{
"Service":"ses.amazonaws.com"
},
"Action":"s3:PutObject",
"Resource":"arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET/*",
"Condition":{
"StringEquals":{
"AWS:SourceAccount":"111122223333",
"AWS:SourceArn": "arn:aws:ses:region:111122223333:receipt-rule-set/rule_set_name:receipt-rule/receipt_rule_name"
}
}
}
]
}
- [保存] を選択します。
注: このポリシーの詳細については、「Amazon S3 バケットへの書き込み権限を Amazon SES に付与する」を参照してください。
S3 バケットにインバウンド E メールを送信する Amazon SES 受信ルールを作成する
- Amazon SES コンソールを開きます。
- ナビゲーションペインの [すべてのルールセット] で、[E メール受信] を選択します。
- ルールを有効なルールセットに追加するには、ステップ 4 に進みます。新しいルールセットを作成するには、[ルールセットの作成] を選択し、ルールセット名を入力して、[ルールセットの作成] を選択します。
注: 新しいルールセットを作成する場合は、ルールセットを選択してから [アクティブなルールセットとして設定] を選択します。アクティブなルールセットにできるのは、一度に 1 つの受信ルールセットだけです。
- [アクティブなルールセット] を選択します。
- [ルールの作成] を選択します。
注: 既存のルールを、次に説明する手順と同じ値で更新することもできます。
- 一意のルール名を入力します。ユースケースで TLS またはスパムとウイルスのスキャンが必要な場合は、[TLS が必要] または [スパムとウイルスのスキャンの実行] を選択します。このルールをアクティブルールにするには、[有効] チェックボックスを選択します。
- [次へ] を選択します。
- Amazon SES が特定の検証済みドメインに送信する E メールのみを保存するには、[受信者の条件の追加] を選択し、受信者として E メールアドレスを入力します。Amazon SES がすべての検証済みドメインに送信するすべての E メールを保存するには、E メールアドレスを入力しないでください。次に、[次へ] を選択します。
- [新しいアクションを追加] を選択し、[S3 バケットに配信] を選択します。次の手順を実行します。
S3 バケットの場合は、メールを保存するために作成したバケットを選択します。
[オブジェクトキープレフィックス] に、メールを保存する S3 プレフィックスを入力します。このフィールドを空白のままにすると、Amazon SES はバケットのルートに E メールを保存します。
(オプション) AWS キー管理サーバー (AWS KMS) キーを使用して E メールを暗号化するには、Amazon SES のメッセージの暗号化を選択します。
**注:**デフォルトのルートキー以外のキーを使用している場合は、AWS KMS キーを使用するための Amazon SES アクセス権限を付与する必要があります。Amazon SES は、Amazon S3 暗号化クライアントを使用して E メールを暗号化してから、E メールを S3 バケットに送信して保存します。Amazon SES では、Amazon S3 のサーバー側の暗号化を使用してメールを暗号化することはありません。
- (オプション) **[SNS トピック]**で Amazon Simple Notification Service (Amazon SNS) トピックを選択すると、Amazon SES が S3 バケットに E メールを配信したときに通知されます 。
- [次へ] を選択します。
- [ルールの作成] を選択します。
Amazon SES ルールをテストする
- Amazon SES コンソールを開きます。
- ナビゲーションペインで、[検証済み ID] を選択します。
- 検証済みドメインを選択します。
- [テスト E メールを送信] を選択します。次に、以下のフィールドに入力します。
[メール形式] で [フォーマット済み] を選択します。
[From-address] に、テストメールの送信元のメールアドレスを入力します。
[シナリオ] で [カスタム] を選択します。
[カスタム受信者] に、テストするドメインのメールアドレスを入力します。
[件名] と [本文] に、E メールのテキスト例を入力します。
- [テスト E メールを送信] を選択します。
- Amazon S3 コンソールを開きます。
- Amazon SES E メールを保存するように設定したバケットを開きます。
- 送信したテストメールがバケットに含まれていることを確認します。テストメールが表示されるまでに数分かかることがあります。
関連情報
Amazon SES の受信メールが Amazon S3 バケットに届かないか、または保存されないのはなぜですか?
Amazon SES E メール受信の設定