Amazon SES を使用してインバウンド E メールを受信し、それらの E メールを Amazon S3 に保存する方法を教えてください。

最終更新日: 2020 年 6 月 11 日

Amazon Simple Email Service (Amazon SES) を使用してインバウンド E メールを受信したいと考えています。これらの E メールを、アーカイブ、またはさらなる処理のために保存することも考えています。これらはどのように実行できますか?

簡単な説明

インバウンド E メールを受信し、それらの E メールを保存するように Amazon SES を設定するには、次のステップに従います。

1.    Amazon SES でメールドメインを検証します。

2.    Amazon SES からの E メールを保存するためのアクセス許可を使用して、Amazon Simple Storage Service (Amazon S3) バケットを設定します。

3.    インバウンド E メールを S3 バケットに送信する Amazon SES の受信ルールを作成します。

4.    Amazon SES ルールをテストします。

解決方法

Amazon SES で E メールドメインを検証する

E メールの受信に使用するドメインを検証する必要があります。

Amazon SES からの E メールを保存するためにアクセス許可を持つ Amazon S3 バケットをセットアップする

1.    Amazon S3 バケットを作成します

2.    バケットを作成したら、Amazon S3 コンソールのバケットリストから名前を選択します。

3.    [Permissions] (アクセス権限) タブを選択します。

4.    [バケットポリシー] を選択します。

5.    [Bucket policy editor] (バケットポリシーエディター) に、以下のポリシーを入力します。

注意: AWSDOC-EXAMPLE-BUCKET をお使いのバケットの名前に置き換えてください。その後、111122223333 をお使いの AWS アカウント ID に置き換えます。

{
    "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:Referer": "111122223333"
                }
            }
        }
    ]
}

注意: このポリシーの詳細については、「Amazon S3 バケットへの書き込みができる Amazon SES への許可」を参照してください。

6.    [Save] を選択します。

インバウンド E メールを S3 バケットに送信する Amazon SES の受信ルールを作成する

1.    Amazon SES コンソールを開きます。

2.    ナビゲーションペインで、[Email Receiving]、[Rule Sets] の順に選択します。

3.    既存のアクティブなルールセットにルールを追加する場合は、ステップ 4 に進みます。新しいルールセットを作成するには、[Create a Rule Set (ルールセットの作成)] を選択し、ルールセットの名前を入力して、[Create a Rule Set (ルールセットの作成)] を選択します。

注意: 新しいルールセットを作成する場合は、ルールセットを選択してから、[Set as Active Rule Set] (アクティブなルールセットとして設定する) を選択するようにしてください。どのような場合でも、アクティブなルールセットに設定できるのは 1 つの受信ルールセットだけです。<span style="font-size:11.0pt;line-height:107%; font-family:"Calibri",sans-serif;mso-ascii-theme-font:minor-latin;mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi; mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA">

4.    [アクティブなルールセットを表示する] を選択します。

5.    [Create Rule] (ルールの作成) をクリックします。

注意: 以下のステップで説明されているとおり、同じ値を使用して既存ルールを更新することも選択できます。

6.    検証済みのドメインを持つ特定のメールアドレスのみに送信された E メールを保存する場合は、[Recipients] (受信者) で、それらの E メールアドレスを受信者として入力します。すべての検証済みドメインに送信されたすべての E メールを保存する場合は、受信者を入力せずに、[Next Step] (次のステップ) をクリックします。

7.    [Actions (アクション)] の、[Add action (アクションの追加)] で、[S3] を選択します。次に、以下のフィールドに入力します。
S3 bucket の場合、E メールを保存するために作成したバケットを選択します。
(オプション) [オブジェクトのキープレフィックス] に、E メールを保存する S3 プレフィックスを入力できます。このフィールドを空白のままにすると、E メールはバケットのルートに保存されます。
(オプション) [Encrypt Message] (メッセージを暗号化する) については、AWS Key Management Service (AWS KMS) キーを使用して E メールを暗号化するように Amazon SES を設定する場合にチェックボックスをオンにします。
注意: デフォルトのルートキー (aws/ses) 以外のキーを使用する場合は、AWS KMS キーを使用するための許可を Amazon SES に付与する必要があります。Amazon SES は、ストレージ用の S3 バケットに E メールを送信する前に、Amazon S3 暗号化クライアントを使用して E メールを暗号化します。E メールの暗号化に Amazon S3 のサーバー側の暗号化は使用されません。
(オプション) [SNS topic] (SNS トピック) には、E メールが S3 バケットに配信されたときに通知する Amazon Simple Notification Service (Amazon SNS) トピックを選択します。

8.    [Next Step] を選択します。

9.    [Rule Details (ルールの詳細)] で、これらのフィールドに入力します。
[ルール名] に、ルールの名前を入力します。
[Enabled] (有効) については、ルールがアクティブなルールとして作成されるように、チェックボックスをオンにするようにしてください。
(オプション) ユースケースに必要な場合は、[Require TLS] (TLS を必須にする) または [Enable spam and virus scanning] (スパムとウイルスのスキャンを有効にする) を選択します。
[Rule set (ルールセット)] で、アクティブなルールセットが選択されていることを確認します。アクティブなルールセットは、名前に (Active) が含まれています。
[Insert after rule (次のルールの後に挿入)] リストで、ルールセット内でルールに使用する位置を選択します。

10.    [Next Step] を選択します。

11.    [Create Rule] (ルールの作成) をクリックします。

Amazon SES ルールをテストする

1.    ナビゲーションペインの [Amazon SES console (Amazon SES コンソール)] から、[Domains (ドメイン)] を選択します。

2.    検証済みドメインを選択します。

3.    [Send a Test Email (テスト E メールを送信)] を選択します。次に、以下のフィールドに入力します。
[From (送信元)] で、テスト E メールの送信元の E メールアドレスを入力します。
[To (宛先)] で、テストするドメインの E メールアドレスを入力します。
[Subject (件名)] と Body (本文) にサンプルの E メールテキストを入力します。

4.    [Send Test Email (テスト E メールの送信)] を選択します。

5.    数分後に、Amazon S3 コンソールが開きます。

6.    設定したバケットを開いて、Amazon SES E メールを保存します。

7.    送信したテストメールがバケットに保存されていることを確認します。