Durch die Nutzung von AWS re:Post stimmt du den AWS re:Post Nutzungsbedingungen

Wie kann ich E-Mails von bestimmten Domains oder E-Mail-Adressen in Amazon SES blockieren?

Lesedauer: 4 Minute
0

Ich möchte nicht, dass meine Amazon Simple Email Service (Amazon SES)-Identität E-Mails von einer bestimmten Domain oder E-Mail-Adresse empfängt.

Lösung

Gehe wie folgt vor, um bestimmte Domains oder E-Mail-Adressen zu blockieren, sodass diese keine E-Mails an deine Amazon SES-Identität senden:

  1. Öffne die Lambda-Konsole.
    Hinweis: Die Lambda-Funktion muss sich in der Region befinden, die du bei Amazon SES verwendest. 

  2. Wähle Funktion erstellen aus.

  3. Wähle Ohne Vorgabe erstellen.

  4. Gib unter Funktionsname den Namen deiner Funktion ein. Du kannst beispielsweise SESReceiptRule eingeben.

  5. Wähle für Laufzeit****Node.js 20.x.

  6. Wähle unter Standard-Ausführungsrolle ändern für Ausführungsrolle die Option Create a new role with basic Lambda permissions (Neue Rolle mit grundlegenden Lambda-Berechtigungen erstellen) aus.

  7. Wähle Funktion erstellen aus.

  8. Gib unter Codequelle den folgenden Code ein:

    // 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. Gib unter Umgebungsvariablen für Schlüssel die blockingList ein.
    Hinweis: Du kannst eine unbegrenzte Anzahl von Umgebungsvariablen erstellen. Die Gesamtgröße des Satzes darf jedoch 4 KB nicht überschreiten. Weitere Informationen findest du unter Create Lambda environment variables (Lambda-Umgebungsvariablen erstellen).

  10. Gib für den Wert blockingList eine durch Komma getrennte Liste der E-Mail-Adressen und Domains ein, die du blockieren möchtest. Gib beispielsweise „example.com, JohnDoe@example.com“ ein.
    Hinweis: Du musst den Lambda-Funktionscode nicht ändern, um die Liste der E-Mail-Adressen und Domains zu bearbeiten.

  11. Wähle Speichern aus.

Erstellen einer Amazon-SES-Empfangsregel

Führe die folgenden Schritte aus:

  1. Öffne die Amazon SES-Konsole.
  2. Wähle im Navigationsbereich E-Mail-Empfang aus.
  3. Wähle Regelsatz erstellen, gib einen Namen für den Regelsatz ein, und wähle dann Regelsatz erstellen aus. Oder wähle einen vorhandenen aktiven Regelsatz aus.
    Hinweis: Wenn du einen neuen Regelsatz erstellst, wähle den Regelsatz aus und wähle Als aktiven Regelsatz festlegen.
  4. Wähle Aktiven Regelsatz anzeigen.
  5. Wähle Regel erstellen aus.
    Hinweis: Du kannst dich auch dafür entscheiden, eine bestehende Regel zu aktualisieren.
  6. Gib unter Regelname einen Namen für die Regel ein. Fülle dann die folgenden Felder aus:
    Wähle für Status die Option Aktiviert aus.
    (Optional) Konfiguriere Transport Layer Security (TLS) oder Spam- und Virensuche.
  7. Wähle Weiter aus.
  8. Wähle unter Empfängerbedingungen die Option Neue Empfängerbedingung hinzufügen aus. Gib die E-Mail-Adressen oder Domains ein, die deiner Amazon SES-Identität zugeordnet sind.
    Wichtig: Gib die E-Mail-Adresse oder Domain ein, die keine E-Mail erhalten soll. Gib nicht die E-Mail-Adresse oder Domain ein, bei denen du E-Mails blockieren möchtest. Wenn deine Amazon-SES-Identität also beispielsweise die E-Mail-Adresse „JaneRoe@example.net“ verwendet und du E-Mails von „example.com“ blockieren möchtest, gib „JaneRoe@example.net“ ein.
  9. Wähle Weiter aus.
  10. Wähle unter Aktionen hinzufügen für Neue Aktion hinzufügen die Option AWS Lambda-Funktion aufrufen aus. Fülle dann die folgenden Felder aus:
    Wähle als **Lambda-Funktion ** deine Funktion aus.
    Wähle als Aufruftyp die Option RequestResponse-Aufruf.
    (Optional) Konfiguriere das SNS-Thema.
  11. Wähle Nächster Schritt.
  12. Wähle Regel erstellen aus.
    Hinweis: Wenn im Dialogfeld Missing Permissions (Fehlende Berechtigungen) mit der Meldung „unable to access the Lambda function“ angezeigt wird, benötigt Amazon SES Berechtigungen für die Funktion. Du kannst Berechtigungen hinzufügen auswählen, um die erforderlichen Berechtigungen zu konfigurieren.

CloudWatch-Protokolle der Funktion überprüfen

Gehe wie folgt vor, um zu überprüfen, ob die E-Mail blockiert ist:

  1. Öffne die Amazon CloudWatch-Konsole.
  2. Wähle im Navigationsbereich Protokolle aus.
  3. Wähle aus der Liste der Protokollgruppen die Protokollgruppe deiner Lambda-Funktion aus. Wähle beispielsweise /aws/lambda/name_of_your_function.
  4. Wähle den Protokollstream aus, den du überprüfen möchtest. Der Protokollstream zeigt die E-Mail-Nachrichten und Domains an, die die Lambda-Funktion verarbeitet hat.
    Beispiel für einen Protokollstream:
    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

Ähnliche Informationen

Konzepte und Anwendungsfälle für den E-Mail-Empfang von Amazon SES

Aktion der Lambda-Funktion aufrufen

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Monat