Anunciamos
Envio de e-mail usando o Amazon SES
Este exemplo de código Node.js mostra:
Envie uma e-mail de texto ou HTML.
Envie e-mails usando um modelo de e-mail.
Envie e-mails em massa usando um modelo de e-mail.
A API do Amazon SES fornece duas maneiras diferentes para você enviar um e-mail, dependendo de quanto controle você deseja ter sobre a composição da mensagem de e-mail: formatada e bruta. Para obter detalhes, consulte Enviar e-mail formatado usando a API do Amazon SES e Enviar e-mail bruto usando a API do Amazon SES.
O cenário
Neste exemplo, você usa uma série de módulos do Node.js para enviar e-mails de várias maneiras. Os módulos do Node.js usam o SDK para JavaScript para criar e usar modelos de e-mail com estes métodos da classe de cliente do AWS.SES
:
Tarefas de pré-requisito
Instale o Node.js. Para obter mais informações sobre como instalar Node.js, consulte o website de Node.js
. Crie um arquivo de configurações compartilhado com as credenciais de usuário. Para obter mais informações sobre como fornecer um arquivo de credenciais do JSON, consulte Carregar credenciais em Node.js do arquivo de credenciais compartilhado.
Requisitos de envio de mensagens de e-mail
O Amazon SES compõe uma mensagem de e-mail e imediatamente a coloca na fila para envio. Para enviar e-mail usando o método SES.sendEmail
, sua mensagem deve atender aos seguintes requisitos:
Você deve enviar a mensagem a partir de um domínio ou endereço de e-mail verificado. Se você tentar enviar um e-mail usando um domínio ou endereço não verificados, a operação resultará no erro
"Email address not verified"
.Se sua conta ainda estiver na sandbox do Amazon SES, você só poderá enviar para endereços ou domínios verificados ou para endereços de e-mail associados simulador de caixa postal do Amazon SES. Para obter mais informações, consulte Verificar endereços de e-mail e domínios no Amazon SES no Guia do desenvolvedor do Amazon Simple Email Service.
O tamanho total da mensagem, incluindo anexos, deve ser menor que 10 MB.
A mensagem deve incluir pelo menos um endereço de e-mail de destinatário. O endereço do destinatário pode ser um endereço Para:, um endereço CC: ou um endereço CCO:. Se o endereço de e-mail do destinatário for inválido (ou seja, não estiver no formato
UserName@[SubDomain.]Domain.TopLevelDomain
), a mensagem inteira será rejeitada, mesmo se a mensagem contiver outros destinatários válidos.A mensagem não pode incluir mais de 50 destinatários nos campos Para:, CC: e CCO:. Se você precisar enviar uma mensagem de e-mail para um público maior, pode dividir a lista de destinatários em grupos de 50 ou menos e chamar o método
sendEmail
várias vezes para enviar a mensagem para cada grupo.
Enviar um e-mail
Neste exemplo, use um módulo do Node.js para enviar e-mail com o Amazon SES. Crie um módulo do Node.js com o nome de arquivo ses_sendemail.js
. Configure o SDK como mostrado anteriormente.
Crie um objeto para transmitir os valores de parâmetro que definem o e-mail a ser enviado, incluindo endereços do remetente e do destinatário, assunto, corpo do e-mail em texto sem formatação e formato HTML, para o método sendEmail
da classe de cliente AWS.SES
. Para chamar o método sendEmail
, crie uma promessa para invocar um objeto de serviço do Amazon SES passando os parâmetros. Depois, lide com response
no retorno de chamada da promessa.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create sendEmail params var params = { Destination: { /* required */ CcAddresses: [ "EMAIL_ADDRESS", /* more items */ ], ToAddresses: [ "EMAIL_ADDRESS", /* more items */ ], }, Message: { /* required */ Body: { /* required */ Html: { Charset: "UTF-8", Data: "HTML_FORMAT_BODY", }, Text: { Charset: "UTF-8", Data: "TEXT_FORMAT_BODY", }, }, Subject: { Charset: "UTF-8", Data: "Test email", }, }, Source: "SENDER_EMAIL_ADDRESS" /* required */, ReplyToAddresses: [ "EMAIL_ADDRESS", /* more items */ ], }; // Create the promise and SES service object var sendPromise = new AWS.SES({ apiVersion: "2010-12-01" }) .sendEmail(params) .promise(); // Handle promise's fulfilled/rejected states sendPromise .then(function (data) { console.log(data.MessageId); }) .catch(function (err) { console.error(err, err.stack); });
Para executar o exemplo, digite o seguinte na linha de comando. O e-mail é colocado na fila para ser enviado pelo Amazon SES.
node ses_sendemail.js
Este código de exemplo pode ser encontrado aqui no GitHub
Enviar um e-mail usando um modelo
Neste exemplo, use um módulo do Node.js para enviar e-mail com o Amazon SES. Crie um módulo do Node.js com o nome de arquivo ses_sendtemplatedemail.js
. Configure o SDK como mostrado anteriormente.
Crie um objeto para transmitir os valores de parâmetro que definem o e-mail a ser enviado, incluindo endereços do remetente e do destinatário, assunto, corpo do e-mail em texto sem formatação e formato HTML, para o método sendTemplatedEmail
da classe de cliente AWS.SES
. Para chamar o método sendTemplatedEmail
, crie uma promessa para invocar um objeto de serviço do Amazon SES passando os parâmetros. Depois, lide com response
no retorno de chamada da promessa.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create sendTemplatedEmail params var params = { Destination: { /* required */ CcAddresses: [ "EMAIL_ADDRESS", /* more CC email addresses */ ], ToAddresses: [ "EMAIL_ADDRESS", /* more To email addresses */ ], }, Source: "EMAIL_ADDRESS" /* required */, Template: "TEMPLATE_NAME" /* required */, TemplateData: '{ "REPLACEMENT_TAG_NAME":"REPLACEMENT_VALUE" }' /* required */, ReplyToAddresses: ["EMAIL_ADDRESS"], }; // Create the promise and SES service object var sendPromise = new AWS.SES({ apiVersion: "2010-12-01" }) .sendTemplatedEmail(params) .promise(); // Handle promise's fulfilled/rejected states sendPromise .then(function (data) { console.log(data); }) .catch(function (err) { console.error(err, err.stack); });
Para executar o exemplo, digite o seguinte na linha de comando. O e-mail é colocado na fila para ser enviado pelo Amazon SES.
node ses_sendtemplatedemail.js
Este código de exemplo pode ser encontrado aqui no GitHub
Enviar um e-mail em massa usando um modelo
Neste exemplo, use um módulo do Node.js para enviar e-mail com o Amazon SES. Crie um módulo do Node.js com o nome de arquivo ses_sendbulktemplatedemail.js
. Configure o SDK como mostrado anteriormente.
Crie um objeto para transmitir os valores de parâmetro que definem o e-mail a ser enviado, incluindo endereços do remetente e do destinatário, assunto, corpo do e-mail em texto sem formatação e formato HTML, para o método sendBulkTemplatedEmail
da classe de cliente AWS.SES
. Para chamar o método sendBulkTemplatedEmail
, crie uma promessa para invocar um objeto de serviço do Amazon SES passando os parâmetros. Depois, lide com response
no retorno de chamada da promessa.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create sendBulkTemplatedEmail params var params = { Destinations: [ /* required */ { Destination: { /* required */ CcAddresses: [ "EMAIL_ADDRESS", /* more items */ ], ToAddresses: [ "EMAIL_ADDRESS", "EMAIL_ADDRESS", /* more items */ ], }, ReplacementTemplateData: '{ "REPLACEMENT_TAG_NAME":"REPLACEMENT_VALUE" }', }, ], Source: "EMAIL_ADDRESS" /* required */, Template: "TEMPLATE_NAME" /* required */, DefaultTemplateData: '{ "REPLACEMENT_TAG_NAME":"REPLACEMENT_VALUE" }', ReplyToAddresses: ["EMAIL_ADDRESS"], }; // Create the promise and SES service object var sendPromise = new AWS.SES({ apiVersion: "2010-12-01" }) .sendBulkTemplatedEmail(params) .promise(); // Handle promise's fulfilled/rejected states sendPromise .then(function (data) { console.log(data); }) .catch(function (err) { console.log(err, err.stack); });
Para executar o exemplo, digite o seguinte na linha de comando. O e-mail é colocado na fila para ser enviado pelo Amazon SES.
node ses_sendbulktemplatedemail.js
Este código de exemplo pode ser encontrado aqui no GitHub