Como faço para enviar e-mail usando o Lambda e o Amazon SES?
Última atualização: 15-09-2021
Quero usar o AWS Lambda para enviar e-mail usando o Amazon Simple Email Service (Amazon SES). Como faço para configurar isso?
Breve descrição
Para enviar e-mails de uma função do Lambda usando o Amazon SES, faça o seguinte:
1. Crie uma política e uma função de execução do AWS Identity and Access Management (IAM) para que o Lambda execute a chamada de API.
2. Confirme sua identidade verificada do Amazon SES (domínio ou endereço de e-mail).
3. Crie ou atualize uma função do Lambda que inclua lógica para enviar e-mail pelo Amazon SES.
Observação: para incluir um anexo PDF em seus e-mails, você deve usar a operação de API Amazon SES SendRawEmail. Para obter mais informações, consulte Envio de e-mail bruto usando a API do Amazon SES.
Resolução
Observação: o exemplo de código de função do Lambda Node.js neste artigo é fornecido no estado em que se encontra. Adapte o exemplo ao seu caso de uso ou crie o seu próprio código na sua linguagem de programação preferida.
Crie uma política do IAM e uma função de execução para o Lambda executar a chamada de API
1. Crie uma política do IAM usando o editor de políticas JSON. Copie e cole o seguinte documento da política JSON no editor:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ses:SendEmail",
"ses:SendRawEmail"
],
"Resource": "*"
}
]
}
Observação: para obter mais informações e exemplos de como restringir o acesso a essa política, consulte Exemplo de políticas do IAM para o Amazon SES.
2. Anexe a política do IAM a uma função do IAM. Para obter instruções, consulte a seção Usar uma política gerenciada como política de permissões para uma identidade (console) em Adição de permissões de identidade do IAM (console).
Observação: você atribuirá essa função do IAM à função do Lambda nas etapas a seguir.
Confirme sua identidade verificada do Amazon SES (domínio ou endereço de e-mail)
Para verificar um domínio, consulte Verificação de domínios no Amazon SES.
Para verificar um endereço de e-mail, consulte Verificação de endereços de e-mail no Amazon SES.
Crie ou atualize uma função do Lambda que incluia lógica para enviar e-mail pelo Amazon SES
1. Se você ainda não o fez, crie uma função do Lambda.
Observação: você pode criar uma função do Lambda usando o console do Lambda ou criando e carregando um pacote de implantação.
2. No console do Lambda, no painel de navegação esquerdo, escolha Functions (Funções).
3. Escolha o nome da sua função.
4. Na guia Configuration (Configuração), no painel Permissions (Permissões), observe a função de execução da função. Verifique se a função do IAM com permissões do Amazon SES que você criou anteriormente está listada. Se a função do IAM correta não estiver listada, atribua a função correta à função.
5. Em Function code (Código de função), no painel do editor, cole o seguinte exemplo de código de função:
Observação: substitua us-west-2 pela região da AWS da sua identidade verificada do Amazon SES. Substitua "RecipientEmailAddress", ... pelo endereço de e-mail para o qual você deseja enviar o e-mail. Substitua SourceEmailAddress pelo seu endereço de e-mail de remetente verificado pelo Amazon SES ou por qualquer endereço de e-mail de um domínio verificado pelo Amazon SES. Opcionalmente, edite o corpo da mensagem ("Test") e a linha de assunto ("Test Email") de acordo com suas preferências.
// Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
var aws = require("aws-sdk");
var ses = new aws.SES({ region: "us-west-2" });
exports.handler = async function (event) {
var params = {
Destination: {
ToAddresses: ["RecipientEmailAddress", ...],
},
Message: {
Body: {
Text: { Data: "Test" },
},
Subject: { Data: "Test Email" },
},
Source: "SourceEmailAddress",
};
return ses.sendEmail(params).promise()
};
Para obter mais informações sobre como usar a API sendEmail, consulte a documentação do AWS SDK for JavaScript.
5. Escolha Deploy (Implantar).
(Opcional) Envie um e-mail de teste
1. No console do Lambda, configure um evento de teste para a sua função.
Observação: a carga útil do teste é necessária, mas não é usada para este exemplo de código.
2. Escolha Test (Testar). O Lambda usa o Amazon SES para enviar o e-mail de teste ao destinatário.
Informações relacionadas
Enviar e-mails com o Amazon SES
Controlling access to Amazon SES (Controlar o acesso ao Amazon SES)
Este artigo ajudou?
Precisa de ajuda com faturamento ou suporte técnico?