Como posso bloquear e-mails de domínios ou endereços de e-mail específicos no Amazon SES?

5 minuto de leitura
0

Não quero que minha identidade do Amazon Simple Email Service (Amazon SES) receba e-mails de um domínio ou endereço de e-mail específico.

Resolução

Para bloquear domínios ou endereços de e-mail específicos para que eles não enviem e-mails para sua identidade do Amazon SES, conclua as seguintes etapas:

  1. Abra o console do Lambda.
    Observação: A função do Lambda deve estar na mesma região da AWS usada para o Amazon SES.

  2. Escolha Criar função.

  3. Selecione Criar do zero.

  4. Em Nome da função, insira um nome para sua função. Por exemplo, você pode inserir SESReceiptRule.

  5. Em Runtime, escolha Node.js 20.x.

  6. Em Alterar o perfil de execução padrão, para Perfil de execução, selecione Criar um novo perfil com permissões básicas do Lambda.

  7. Escolha Criar função.

  8. Em Fonte do código, insira o seguinte código:

    // 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. Em Variáveis de ambiente, para Chave, insira blockingList.
    Observação: Você pode criar um número ilimitado de variáveis de ambiente. No entanto, o tamanho total do conjunto não pode exceder 4 KB. Para obter mais informações, consulte Criar variáveis de ambiente no Lambda.

  10. Para o valor de blockingList, insira uma lista separada por vírgula dos endereços de e-mail e domínios que você deseja bloquear. Por exemplo, digite “exemplo.com, JohnDoe@exemplo.com”.
    Observação: você não precisa alterar o código da função do Lambda para editar a lista de endereços de e-mail e domínios.

  11. Escolha Salvar.

Crie uma regra de recebimento do Amazon SES

Conclua as seguintes etapas:

  1. Abra o console do Amazon SES.
  2. No painel de navegação, selecione Recebimento de e-mail.
  3. Escolha Criar um conjunto de regras, insira o nome do conjunto de regras e escolha Criar um conjunto de regras. Ou escolha um conjunto de regras ativo existente.
    Observação: se você criar um novo conjunto de regras, selecione o conjunto de regras e escolha Definir como conjunto de regras ativo.
  4. Selecione Exibir conjunto de regras ativo.
  5. Escolha Criar regra.
    Observação: Você também pode optar por atualizar uma regra existente.
  6. Em Nome da regra, insira um nome para a regra. Em seguida, preencha os seguintes campos:
    Em Status, selecione Ativado.
    (Opcional) Configure o Transport Layer Security (TLS) ou a verificação de spam e vírus.
  7. Escolha Avançar.
  8. Em Condições de destinatários, escolha Adicionar nova condição de destinatário. Insira os endereços de e-mail ou domínios associados à sua identidade do Amazon SES.
    Importante: Insira o endereço de e-mail ou domínio para o qual você não deseja receber os e-mails. Não insira o endereço de e-mail ou domínio do qual você deseja bloquear e-mails. Por exemplo, se sua identidade do Amazon SES usa o endereço de e-mail “JaneRoe@exemplo.net” e você deseja bloquear e-mails de “exemplo.com”, digite “JaneRoe@exemplo.net”.
  9. Escolha Avançar.
  10. Em Adicionar ações, para Adicionar nova ação, selecione Invocar função do AWS Lambda. Em seguida, preencha estes campos:
    Para a função do Lambda, selecione sua função.
    Em Tipo de invocação, escolha Invocação RequestResponse.
    (Opcional) Configure o tópico do SNS.
  11. Escolha Próxima etapa.
  12. Escolha Criar regra.
    Observação: se você receber uma caixa de diálogo de Permissões ausentes com a mensagem “impossível acessar a função do Lambda”, o Amazon SES exige permissões para a função. Selecione Adicionar permissões para configurar as permissões necessárias.

Verifique os logs do CloudWatch Logs da função

Para verificar se o e-mail está bloqueado, conclua as seguintes etapas:

  1. Abra o console do Amazon CloudWatch.
  2. No painel de navegação, escolha Logs.
  3. Na lista de grupos de logs, selecione o grupo de logs da sua função do Lambda. Por exemplo, escolha /aws/lambda/name_of_your_function.
  4. Selecione o stream de logs que você deseja analisar. O stream de logs mostra as mensagens de e-mail e os domínios que a função do Lambda processou.
    Exemplo de stream de logs:
    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

Informações relacionadas

Conceitos e casos de uso de recebimento de e-mails do Amazon SES

Invocar ação da função do Lambda

AWS OFICIAL
AWS OFICIALAtualizada há 3 meses