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.    S3 バケットにインバウンド E メールを送信する Amazon SES 受信ルールを作成します。

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

解決方法

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

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

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

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

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

3.    [ ] タブを選択します。

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

5.    バケットポリシーエディタで、次のポリシーを入力します。

注意: 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.    [保存] をクリックします。

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

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

2.    ナビゲーションペインの [E メール受信] で、 [ルールセット] を選択します。

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

注意: 新しいルールセットを作成する場合は、必ずルールセットを選択し、アクティブなルールセットの表示を選択します。どの時点でも、1 つの受信ルールセットのみをアクティブなルールセットにすることができます。 

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

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

注意: 次のステップで説明しているのと同じ値で既存のルールを更新することも選択できます。

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

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

8.    その後、[次のステップ] をクリックします。

9.    [ルールの詳細] で、以下のフィールドに入力します。
[ルール名] に、ルールの名前を入力します。
[有効] で、ルールがアクティブルールとして作成されるように、このチェックボックスがオンになっていることを確認します。
(オプション) ユースケースで必要な場合は、[TLS を要求する] または [スパムとウイルススキャンの有効化] を選択します。
[ルールセット] で、アクティブなルールセットが選択されていることを確認します。アクティブなルールセットには、名前に (Active) が含まれています。
ルールの後に挿入 で、ルールセット内でのルールの位置を選択します。

10.    その後、[次のステップ] をクリックします。

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

Amazon SES ルールをテストする

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

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

3.    [テストメール送信] を選択します。次に、以下のフィールドに入力します。
[差出人] に、テスト E メールの送信元の E メールアドレスを入力します。
[宛先] に、テストするドメインの E メールアドレスを入力します。
[件名] と [本文] に、E メールテキストの例を入力します。

4.    [テストメールの送信] を選択します。

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

6.    Amazon SES メールを保存するように設定したバケットを開きます。

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