Comment puis-je bloquer les e-mails provenant de domaines ou d'adresses e-mail spécifiques dans Amazon SES ?

Lecture de 5 minute(s)
0

Je ne veux pas que mon identité Amazon Simple Email Service (Amazon SES) reçoive des e-mails provenant d'un domaine ou d'une adresse e-mail spécifique.

Résolution

Pour bloquer des domaines ou des adresses e-mail spécifiques afin qu'ils n'envoient pas d'e-mails à votre identité Amazon SES, procédez comme suit :

  1. Ouvrez la console Lambda.
    Remarque : La fonction Lambda doit se trouver dans la même région AWS que celle que vous utilisez avec Amazon SES.

  2. Sélectionnez Créer une fonction.

  3. Sélectionnez Créer à partir de zéro.

  4. Dans le champ Nom de la fonction, saisissez le nom de votre fonction. Par exemple, vous pouvez saisir SESReceiptRule.

  5. Pour Exécution, sélectionnez Node.js 20.x.

  6. Sous Modifier le rôle d'exécution par défaut, pour Rôle d’exécution, sélectionnez Créer un nouveau rôle avec des autorisations Lambda de base.

  7. Sélectionnez Créer une fonction.

  8. Sous Source du code, saisissez le code suivant :

    // 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. Sous Variables d'environnement, pour Clé, saisissez blockingList.
    Remarque : Vous pouvez créer un nombre illimité de variables d'environnement. Cependant, la taille totale de l'ensemble ne peut pas dépasser 4 Ko. Pour plus d'informations, consultez la section Créer des variables d'environnement Lambda.

  10. Pour la valeur de blockingList, saisissez une liste des adresses e-mail et des domaines, séparés par une virgule, que vous souhaitez bloquer. Par exemple, saisissez « exemple.com, JohnDoe@example.com ».
    Remarque : Il n'est pas nécessaire de modifier le code de fonction Lambda pour modifier la liste des adresses e-mail et des domaines.

  11. Sélectionnez Enregistrer.

Créer une règle de réception Amazon SES

Effectuez les opérations suivantes :

  1. Ouvrez la console Amazon SES.
  2. Dans le volet de navigation, sélectionnez Réception d'e-mails.
  3. Sélectionnez Créer un ensemble de règles, saisissez un nom d’ensemble de règles, puis sélectionnez Créer un ensemble de règles. Vous pouvez également choisir un ensemble de règles actif existant.
    Remarque : Si vous créez un nouvel ensemble de règles, sélectionnez-le, puis choisissez Définir en tant que jeu de règles actif.
  4. Sélectionnez Afficher l'ensemble de règles actif.
  5. Sélectionnez Créer une règle.
    Remarque : Vous pouvez également mettre à jour une règle existante.
  6. Dans le champ Nom de la règle, saisissez le nom de la règle. Procédez comme suit :
    Pour Statut, sélectionnez Activé.
    (Facultatif) Configurez le protocole TLS (Transport Layer Security) ou l'analyse des courriers indésirables et des virus.
  7. Sélectionnez Suivant.
  8. Dans le champ Conditions de destinataire, sélectionnez Ajouter une nouvelle condition de destinataire. Saisissez les adresses e-mail ou les domaines associés à votre identité Amazon SES.
    Important : Saisissez l'adresse e-mail ou le domaine dont vous ne souhaitez pas recevoir les e-mails. Ne saisissez pas l'adresse e-mail ou le domaine dont vous souhaitez bloquer les e-mails. Par exemple, si votre identité Amazon SES utilise l'adresse e-mail « JaneRoe@exemple.net » et que vous souhaitez bloquer les e-mails provenant de « exemple.com », saisissez « JaneRoe@exemple.net ».
  9. Sélectionnez Suivant.
  10. Dans le champ Ajouter des actions, pour Ajouter une nouvelle action, sélectionnez Invoquer la fonction AWS Lambda. Puis, complétez les champs suivants :
    Pour Fonction Lambda, sélectionnez votre fonction.
    Pour le type d’invocation, sélectionnez RequestResponse invocation.
    (Facultatif) Configurez la rubrique SNS.
  11. Sélectionnez Étape suivante.
  12. Sélectionnez Créer une règle.
    Remarque : Si une boîte de dialogue Autorisations manquantes s'affiche avec le message « unable to access the Lambda function », Amazon SES nécessite des autorisations pour cette fonction. Sélectionnez Ajouter des autorisations pour configurer les autorisations requises.

Vérifier les journaux CloudWatch de la fonction

Pour vérifier que l'e-mail est bloqué, procédez comme suit :

  1. Ouvrez la console Amazon CloudWatch.
  2. Dans le volet de navigation, sélectionnez Journaux.
  3. Dans la liste des groupes de journaux, sélectionnez le groupe de journaux de votre fonction Lambda. Par exemple, sélectionnez /aws/lambda/name_of_your_function.
  4. Choisissez le flux de journaux que vous souhaitez consulter. Le flux de journaux affiche les messages électroniques et les domaines traités par la fonction Lambda.
    Exemple de flux de journaux :
    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

Informations connexes

Concepts et cas d'utilisation de la réception d'e-mails Amazon SES

Invoquer l'action de la fonction Lambda

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 3 mois