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

所要時間2分
0

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_namereceipt_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"
        }
      }
    }
  ]
}
  1. [保存] を選択します。
    注: このポリシーの詳細については、「Amazon S3 バケットへの書き込み権限を Amazon SES に付与する」を参照してください。

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

  1. Amazon SES コンソールを開きます。
  2. ナビゲーションペインの [すべてのルールセット] で、[E メール受信] を選択します。
  3. ルールを有効なルールセットに追加するには、ステップ 4 に進みます。新しいルールセットを作成するには、[ルールセットの作成] を選択し、ルールセット名を入力して、[ルールセットの作成] を選択します。
    注: 新しいルールセットを作成する場合は、ルールセットを選択してから [アクティブなルールセットとして設定] を選択します。アクティブなルールセットにできるのは、一度に 1 つの受信ルールセットだけです。
  4. [アクティブなルールセット] を選択します。
  5. [ルールの作成] を選択します。
    注: 既存のルールを、次に説明する手順と同じ値で更新することもできます。
  6. 一意のルール名を入力します。ユースケースで TLS またはスパムとウイルスのスキャンが必要な場合は、[TLS が必要] または [スパムとウイルスのスキャンの実行] を選択します。このルールをアクティブルールにするには、[有効] チェックボックスを選択します。
  7. [次へ] を選択します。
  8. Amazon SES が特定の検証済みドメインに送信する E メールのみを保存するには、[受信者の条件の追加] を選択し、受信者として E メールアドレスを入力します。Amazon SES がすべての検証済みドメインに送信するすべての E メールを保存するには、E メールアドレスを入力しないでください。次に、[次へ] を選択します。
  9. [新しいアクションを追加] を選択し、[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 のサーバー側の暗号化を使用してメールを暗号化することはありません。
  10. (オプション) **[SNS トピック]**で Amazon Simple Notification Service (Amazon SNS) トピックを選択すると、Amazon SES が S3 バケットに E メールを配信したときに通知されます 。
  11. [次へ] を選択します。
  12. [ルールの作成] を選択します。

Amazon SES ルールをテストする

  1. Amazon SES コンソールを開きます。
  2. ナビゲーションペインで、[検証済み ID] を選択します。
  3. 検証済みドメインを選択します。
  4. [テスト E メールを送信] を選択します。次に、以下のフィールドに入力します。
    [メール形式][フォーマット済み] を選択します。
    [From-address] に、テストメールの送信元のメールアドレスを入力します。
    [シナリオ][カスタム] を選択します。
    [カスタム受信者] に、テストするドメインのメールアドレスを入力します。
    [件名][本文] に、E メールのテキスト例を入力します。
  5. [テスト E メールを送信] を選択します。
  6. Amazon S3 コンソールを開きます。
  7. Amazon SES E メールを保存するように設定したバケットを開きます。
  8. 送信したテストメールがバケットに含まれていることを確認します。テストメールが表示されるまでに数分かかることがあります。

関連情報

Amazon SES の受信メールが Amazon S3 バケットに届かないか、または保存されないのはなぜですか?

Amazon SES E メール受信の設定

コメントはありません