Come faccio a bloccare le e-mail provenienti da domini o indirizzi e-mail specifici in Amazon SES?

5 minuti di lettura
0

Non voglio che la mia identità Amazon Simple Email Service (Amazon SES) riceva e-mail da un dominio o un indirizzo e-mail specifico.

Risoluzione

Per bloccare domini o indirizzi e-mail specifici in modo che non inviino e-mail alla tua identità Amazon SES, completa i seguenti passaggi:

  1. Apri la console Lambda.
    Nota: la funzione Lambda deve trovarsi nella stessa Regione AWS utilizzata con Amazon SES. 

  2. Scegli Crea funzione.

  3. Seleziona Crea da zero.

  4. In Nome funzione, inserisci un nome per la funzione. Ad esempio, puoi inserire SESReceiptRule.

  5. Per Runtime, scegli Node.js 20.x.

  6. In Modifica del ruolo di esecuzione predefinito, per Ruolo di esecuzione, scegli Crea un nuovo ruolo con autorizzazioni Lambda di base.

  7. Scegli Crea funzione.

  8. In Origine del codice, inserisci il codice seguente:

    // 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. In Variabili di ambiente, per Chiave, inserisci blockingList.
    Nota: è possibile creare un numero illimitato di variabili di ambiente. Tuttavia, la dimensione totale dell'insieme non può superare i 4 KB. Per ulteriori informazioni, consulta Create Lambda environment variables (Creazione delle variabili di ambiente Lambda).

  10. Per il valore blockingList, inserisci un elenco separato da virgole degli indirizzi e-mail e dei domini che vuoi bloccare. Ad esempio, inserisci "example.com, JohnDoe@example.com".
    Nota: non è necessario modificare il codice della funzione Lambda per modificare l'elenco di indirizzi e-mail e domini.

  11. Scegli Salva.

Creazione di una regola di ricezione Amazon SES

Completa i seguenti passaggi:

  1. Apri la console Amazon SES.
  2. Nel pannello di navigazione, scegli Ricezione di e-mail.
  3. Scegli Crea un set di regole, inserisci un nome per il set di regole, quindi scegli Crea un set di regole. Oppure, scegli un set di regole attivo esistente.
    Nota: se crei un nuovo set di regole, seleziona il set di regole e scegli Imposta come set di regole attivo.
  4. Scegli Visualizza set di regole attivo.
  5. Scegli Crea regola.
    Nota: puoi anche scegliere di aggiornare una regola esistente.
  6. Per Nome regola, inserisci un nome per la regola. Quindi, completa i seguenti campi:
    Per Stato, seleziona Abilitato.
    (Facoltativo) Configura Transport Layer Security (TLS) o Scansione di spam e virus.
  7. Scegli Avanti.
  8. Per Condizioni del destinatario, scegli Aggiungi nuova condizione del destinatario. Inserisci gli indirizzi e-mail o i domini associati alla tua identità Amazon SES.
    Importante: inserisci l'indirizzo email o il dominio con cui non desideri ricevere le email. Non inserire l'indirizzo e-mail o il dominio da cui vuoi bloccare le e-mail. Ad esempio, se la tua identità Amazon SES utilizza l'indirizzo e-mail "JaneRoe@example.net" e vuoi bloccare le e-mail da "example.com", inserisci "JaneRoe@example.net".
  9. Scegli Avanti.
  10. Nella schermata Aggiungi azioni, in Aggiungi nuova azione, seleziona Invoca funzione AWS Lambda. Quindi, completa questi campi:
    Per Funzione Lambda, seleziona la tua funzione.
    Per Tipo di invocazione, seleziona Invocazione RequestResponse.
    (Facoltativo) Configura il topic SNS.
  11. Scegli Passaggio successivo.
  12. Scegli Crea regola.
    Nota: se viene visualizzata una finestra di dialogo Autorizzazioni mancanti con il messaggio "impossibile accedere alla funzione Lambda", Amazon SES richiede le autorizzazioni per la funzione. Scegli Aggiungi autorizzazioni per configurare le autorizzazioni richieste.

Controllo dei log CloudWatch della funzione

Per verificare che l'e-mail sia bloccata, completa i passaggi seguenti:

  1. Apri la console Amazon CloudWatch.
  2. Nel pannello di navigazione, scegli Log.
  3. Dall'elenco dei gruppi di log, scegli il gruppo di log della funzione Lambda. Ad esempio, scegli /aws/lambda/name_of_your_function.
  4. Scegli il flusso di log che desideri controllare. Il flusso di log mostra i messaggi di posta elettronica e i domini elaborati dalla funzione Lambda.
    Esempio di flusso di log:
    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

Informazioni correlate

Amazon SES email receiving concepts and use cases (Concetti e casi d'uso di Amazon SES per la ricezione di e-mail)

Invoke Lambda function action (Invocare l'azione della funzione Lambda)

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 mesi fa