Envío de correo electrónico mediante Amazon SES - AWS SDK for JavaScript

LaAWS SDK for JavaScript versión 3 (v3) es una reescritura de la versión 2 con algunas funciones nuevas y excelentes, incluida la arquitectura modular. Para obtener más información, consulte la Guía para desarrolladores de la versiónAWS SDK for JavaScript 3.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Envío de correo electrónico mediante Amazon SES

JavaScript code example that applies to Node.js execution

Este ejemplo de código de Node.js muestra:

  • Enviar un correo electrónico en HTML o de texto.

  • Enviar mensajes de correo electrónico basados en una plantilla de correo electrónico.

  • Enviar mensajes de correo electrónico masivos basados en una plantilla de correo electrónico.

La API de Amazon SES ofrece dos formas distintas de enviar los correos electrónicos, según el nivel de control que desee tener sobre la composición del mensaje de correo electrónico: con o sin formato. Para obtener más información, consulte .Envío de correo electrónico con formato utilizando la API de Amazon SESyEnvío de correo electrónico sin procesar mediante el API de Amazon SES.

El escenario

En este ejemplo, va a utilizar una serie de módulos de Node.js para enviar correos electrónicos de distintas maneras. Los módulos de Node.js utilizan el SDK para JavaScript para crear y usar plantillas de correo electrónico mediante los métodos siguientes deAWS.SESclase de cliente:

Tareas previas necesarias

Requisitos para enviar un mensaje de correo electrónico

Amazon SES crea un mensaje de correo electrónico y lo pone en cola inmediatamente para su envío. Para enviar correo electrónico por medio del método SES.sendEmail, el mensaje debe cumplir los requisitos siguientes:

  • Tiene que enviar el mensaje desde un dominio o una dirección de correo electrónico que se haya verificado. Si intenta enviar un correo electrónico mediante una dirección o un dominio que no se haya verificado, la operación generará un error "Email address not verified".

  • Si su cuenta está todavía en el entorno de pruebas de Amazon SES, solo podrá realizar envíos a direcciones o dominios verificados, o a direcciones de correo electrónico que estén asociadas al simulador de bandeja de correo de Amazon SES. Para obtener más información, consulteVerificación de direcciones de correo electrónico y dominiosen la guía para desarrolladores de Amazon Simple Email Service.

  • El tamaño total del mensaje, los archivos adjuntos incluidos, debe ser inferior a 10 MB.

  • El mensaje tiene que incluir al menos una dirección de correo electrónico de destinatario. La dirección del destinatario puede ser una dirección A:, una dirección CC: o una dirección CCO. Si la dirección de correo electrónico de un destinatario no es válida (es decir, no sigue el formato UserName@[SubDomain.]Domain.TopLevelDomain), se rechazará todo el mensaje, aunque este contenga otros destinatarios que sí son válidos.

  • El mensaje no puede incluir más de 50 destinatarios entre los campos A:, CC: y CCO: en total. Si necesita enviar un mensaje de correo electrónico a más destinatarios, puede dividir la lista de destinatarios en grupos de 50 o menos y luego llamar al método sendEmail varias veces para enviar el mensaje a cada grupo.

Envío de un correo electrónico

En este ejemplo, utilice un módulo de Node.js para enviar un correo electrónico con Amazon SES. Cree un módulo de Node.js con el nombre de archivo ses_sendemail.js. Configure el SDK como le hemos mostrado anteriormente.

Cree un objeto para transferir los valores de parámetros que definen el correo electrónico que se va a enviar, como las direcciones del remitente y el receptor, el cuerpo del correo electrónico en formatos de texto y HTML, al método sendEmail de la clase de cliente AWS.SES. Para llamar al método sendEmail, cree una promesa para invocar un objeto de servicio de Amazon SES transfiriendo los parámetros. Luego gestione la response en la devolución de llamada de la promesa.

// 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 ejecutar el ejemplo, escriba lo siguiente en la línea de comandos. Amazon SES pone en cola el correo electrónico para que lo envíe.

node ses_sendemail.js

Este código de muestra se puede encontrar aquí en GitHub.

Envío de un correo electrónico mediante una plantilla

En este ejemplo, utilice un módulo de Node.js para enviar un correo electrónico con Amazon SES. Cree un módulo de Node.js con el nombre de archivo ses_sendtemplatedemail.js. Configure el SDK como le hemos mostrado anteriormente.

Cree un objeto para transferir los valores de parámetros que definen el correo electrónico que se va a enviar, como las direcciones del remitente y el receptor, el cuerpo del correo electrónico en formatos de texto y HTML, al método sendTemplatedEmail de la clase de cliente AWS.SES. Para llamar al método sendTemplatedEmail, cree una promesa para invocar un objeto de servicio de Amazon SES transfiriendo los parámetros. Luego gestione la response en la devolución de llamada de la promesa.

// 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 ejecutar el ejemplo, escriba lo siguiente en la línea de comandos. Amazon SES pone en cola el correo electrónico para que lo envíe.

node ses_sendtemplatedemail.js

Este código de muestra se puede encontrar aquí en GitHub.

Envío masivo de correos electrónicos mediante una plantilla

En este ejemplo, utilice un módulo de Node.js para enviar un correo electrónico con Amazon SES. Cree un módulo de Node.js con el nombre de archivo ses_sendbulktemplatedemail.js. Configure el SDK como le hemos mostrado anteriormente.

Cree un objeto para transferir los valores de parámetros que definen el correo electrónico que se va a enviar, como las direcciones del remitente y el receptor, el cuerpo del correo electrónico en formatos de texto y HTML, al método sendBulkTemplatedEmail de la clase de cliente AWS.SES. Para llamar al método sendBulkTemplatedEmail, cree una promesa para invocar un objeto de servicio de Amazon SES transfiriendo los parámetros. Luego gestione la response en la devolución de llamada de la promesa.

// 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 ejecutar el ejemplo, escriba lo siguiente en la línea de comandos. Amazon SES pone en cola el correo electrónico para que lo envíe.

node ses_sendbulktemplatedemail.js

Este código de muestra se puede encontrar aquí en GitHub.