AWS re:Postを使用することにより、以下に同意したことになります AWS re:Post 利用規約

Amazon SES で特定のドメインまたはメールアドレスからのメールをブロックする方法を教えてください。

所要時間3分
0

Amazon Simple Email Service (Amazon SES) の ID で特定のドメインまたはメールアドレスからのメールを受信しないようにしたいです。

解決策

特定のドメインまたはメールアドレスをブロックして Amazon SES ID にメールが送信されないようにするには、次の手順を実行します。

  1. Lambda コンソールを開きます。
    注: Lambda 関数は、Amazon SES で使用するのと同じ AWS リージョンにある必要があります。

  2. [関数の作成] を選択します。

  3. [最初から作成] を選択します。

  4. [関数名] に、関数の名前を入力します。(SESReceiptRule など。)

  5. [ランタイム][Node.js 20.x] を選択します。

  6. [デフォルトの実行ロールの変更][実行ロール][基本的な Lambda アクセス許可で新しいロールを作成する] を選択します。

  7. [関数の作成] を選択します。

  8. [コードソース] に次のコードを入力します。

    // Copyright 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
    // SPDX-License-Identifier: MIT-0
    'use strict';
    
    export const handler = async (event) => {
        console.log('Blocking email filter starting');
        const sesNotification = event.Records[0].ses;
        const messageId = sesNotification.mail.messageId;
        const receipt = sesNotification.receipt;
        const mail = sesNotification.mail;
    
        // Convert the environment variable into array. Clean spaces from it.
        const blockingListString = process.env.blockingList;
        const blockingListArray = blockingListString.replace(/\s/g, '').split(",");
    
        // Check if the mail source matches with any of the email addresses or domains defined in the environment variable
        const isListed = () => {
            return blockingListArray.some(item => mail.source.endsWith(item));
        };
    
        console.log('Processing message:', messageId);
    
        // Processing the message
        if (isListed()) {
            console.log('Rejecting messageId: ', messageId, ' - Source: ', mail.source, ' - Recipients: ', receipt.recipients, ' - Subject: ', mail.commonHeaders['subject']);
            return { disposition: 'STOP_RULE_SET' };
        } else {
            console.log('Accepting messageId:', messageId, ' - Source: ', mail.source, ' - Recipients: ', receipt.recipients, ' - Subject: ', mail.commonHeaders['subject']);
            return { disposition: 'CONTINUE' };
        }
    };
  9. [環境変数][キー]blockingList と入力します。
    注: 環境変数の作成数に制限はありません。ただし、セットの合計サイズは 4 KB を超えることはできません。詳細については、「Lambda 環境変数を作成する」を参照してください。

  10. blockingList 値には、ブロックするメールアドレスとドメインをカンマ区切りのリストで入力します。入力例: "example.com, JohnDoe@example.com"
    注: メールアドレスとドメインのリストを編集するために Lambda 関数コードを変更する必要はありません。

  11. [保存] を選択します。

Amazon SES 受信ルールを作成する

次の手順を実行します。

  1. Amazon SES コンソールを開きます。
  2. ナビゲーションペインで、[E メール受信] を選択します。
  3. [ルールセットの作成] を選択し、ルールセット名を入力した後、[ルールセットを作成] を選択します。または、既存のアクティブなルールセットを選択します。
    注: 新しいルールセットを作成する場合は、ルールセットを選択し、[アクティブなルールセットとして設定] を選択します。
  4. [アクティブなルールセットを表示] を選択します。
  5. [ルールの作成] を選択します。
    注: 既存のルールを更新することもできます。
  6. [ルール名] に、ルールの名前を入力します。次に、下記のフィールドに入力します。
    [ステータス][有効] を選択します。
    (オプション) Transport Layer Security (TLS) や、スパムとウイルスのスキャンを設定します。
  7. [次へ] を選択します。
  8. [受信者条件][新しい受信者条件を追加] を選択します。Amazon SES の ID に関連付けられているメールアドレスまたはドメインを入力します。
    重要: メールを受信しないメールアドレスまたはドメインを入力します。ブロックするメールアドレスやドメインは入力しないでください。例えば、Amazon SES の ID で "JaneRoe@example.net" というメールアドレスを使用していて、"example.com" からのメールをブロックする場合は、"JaneRoe@example.net" と入力します。
  9. [次へ] を選択します。
  10. [アクションの追加][新しいアクションを追加] で、[AWS Lambda 関数を呼び出す] を選択します。次に、以下のフィールドに入力します。
    [Lambda 関数] でお使いの関数を選択します。
    呼び出しタイプに [RequestResponse の呼び出し] を選択します。
    (オプション) SNS トピックを設定します。
  11. [次のステップ] を選択します。
  12. [ルールの作成] を選択します。
    注:アクセス許可がありません」というダイアログボックスが表示され、「Lambda 関数にアクセスできません」というメッセージが記載されている場合は、Amazon SES に関数へのアクセス許可が必要です。[アクセス許可を追加] を選択して、必要なアクセス許可を設定します。

関数の CloudWatch Logs を確認する

メールがブロックされていることを確認するには、次の手順を実行します。

  1. Amazon CloudWatch コンソールを開きます。
  2. ナビゲーションペインで、[ログ] を選択します。
  3. ロググループのリストから、該当する Lambda 関数のロググループを選択します。たとえば、/aws/lambda/name_of_your_function を選択します。
  4. 確認するログストリームを選択します。ログストリームには、Lambda 関数が処理したメールのメッセージとドメインが表示されます。
    ログストリームの例:
    14:08:25 START RequestId: aa939984-1b9b-11e7-83d2-efc6877bdc9b Version: $LATEST
    14:08:25 2017-04-07T14:08:25.957Z aa939984-1b9b-11e7-83d2-efc6877bdc9b Blocking email filter starting
    14:08:25 2017-04-07T14:08:25.958Z aa939984-1b9b-11e7-83d2-efc6877bdc9b Processing message: jc0iurgrtkrsrs7f5pk0rsmf4r3q0poikdjfdi01
    14:08:25 2017-04-07T14:08:25.959Z aa939984-1b9b-11e7-83d2-efc6877bdc9b Rejecting messageId: jc0iurgrtkrsrs7f5pk0rsmf4r3q0poikdjfdi01 - Source:
    user@example.com - Recipients: [ 'user@domain.com' ] - Subject: This is an unwanted message
    14:08:25 END RequestId: aa939984-1b9b-11e7-83d2-efc6877bdc9b

関連情報

Amazon SES でのメール受信の概念とユースケース

Lambda 関数アクションを呼び出す

AWS公式
AWS公式更新しました 1ヶ月前
コメントはありません