Invio di e-mail tramite Amazon SES - AWS SDK for JavaScript

Abbiamo annunciato l'imminente uscita end-of-support per la AWS SDK for JavaScript v2. Ti consigliamo di migrare alla AWS SDK for JavaScript v3. Per date, dettagli aggiuntivi e informazioni su come effettuare la migrazione, consulta l'annuncio collegato.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Invio di e-mail tramite Amazon SES

JavaScript code example that applies to Node.js execution

Questo esempio di codice di Node.js illustra:

  • Come inviare un'e-mail di testo o in formato HTML.

  • Come inviare e-mail in base a un modello di e-mail.

  • Come inviare e-mail in blocco in base a un modello di e-mail.

L'API Amazon SES offre due modi diversi per inviare un'e-mail, a seconda del livello di controllo che desideri sulla composizione del messaggio e-mail: formattato e non elaborato. Per i dettagli, consulta Invio di e-mail formattate utilizzando l'API Amazon SES e Invio di e-mail non elaborate utilizzando l'API Amazon SES.

Lo scenario

In questo esempio, utilizzi una serie di moduli Node.js per inviare e-mail in diversi modi. I moduli Node.js utilizzano l'SDK per JavaScript creare e utilizzare modelli di e-mail utilizzando questi metodi della classe AWS.SES client:

Attività prerequisite

Requisiti per l'invio di messaggi e-mail

Amazon SES compone un messaggio e-mail e lo mette immediatamente in coda per l'invio. Per inviare e-mail utilizzando il metodo SES.sendEmail, il messaggio deve soddisfare i seguenti requisiti:

  • Devi inviare il messaggio da un dominio o da un indirizzo e-mail verificato. Se tenti di inviare e-mail utilizzando un dominio o un indirizzo non verificato, l'operazione genera un errore "Email address not verified".

  • Se il tuo account si trova ancora nella sandbox di Amazon SES, puoi inviare messaggi solo a domini o indirizzi verificati oppure a indirizzi e-mail associati al simulatore di mailbox di Amazon SES. Per ulteriori informazioni, consulta Verifying Email Addresses and Domains nella Amazon Simple Email Service Developer Guide.

  • La dimensione totale del messaggio, inclusi gli allegati, deve essere inferiore a 10 MB.

  • Il messaggio deve includere almeno l'indirizzo e-mail di un destinatario. L'indirizzo del destinatario può essere un indirizzo "To:" ("A:"), "CC:" ("Cc:") o "BCC:" ("Ccn:"). Se l'indirizzo e-mail di un destinatario non è valido (ovvero non è nel formato UserName@[SubDomain.]Domain.TopLevelDomain), l'intero messaggio viene rifiutato, anche se contiene altri destinatari validi.

  • Il messaggio non può includere più di 50 destinatari, nei campi "To:" ("A:"), "CC:" ("Cc:") e "BCC:" ("Ccn:"). Se devi inviare un messaggio e-mail a un pubblico più ampio, puoi dividere l'elenco dei destinatari in gruppi di massimo 50 persone e quindi chiamare il metodo sendEmail più volte per inviare il messaggio a ciascun gruppo.

Invio di un'e-mail

In questo esempio, utilizza un modulo Node.js per inviare e-mail con Amazon SES. Crea un modulo Node.js con il nome del file ses_sendemail.js. Configura l'SDK come mostrato in precedenza.

Crea un oggetto per trasferire i valori dei parametri che definiscono l'e-mail da inviare, inclusi gli indirizzi dei mittenti e dei destinatari, l'oggetto, il corpo dell'e-mail in testo normale e in formato HTML, al metodo sendEmail della classe client AWS.SES. Per chiamare il metodo sendEmail, crea una promessa per chiamare un oggetto del servizio Amazon SES, trasferendo i parametri. Quindi gestisci l'oggetto response nel callback della 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); });

Digita la seguente riga di comando per eseguire l'esempio. L'e-mail viene messa in coda per l'invio da parte di Amazon SES.

node ses_sendemail.js

Questo codice di esempio può essere trovato qui. GitHub

Invio di un'e-mail in base a un modello

In questo esempio, utilizza un modulo Node.js per inviare e-mail con Amazon SES. Crea un modulo Node.js con il nome del file ses_sendtemplatedemail.js. Configura l'SDK come mostrato in precedenza.

Crea un oggetto per trasferire i valori dei parametri che definiscono l'e-mail da inviare, inclusi gli indirizzi dei mittenti e dei destinatari, l'oggetto, il corpo dell'e-mail in testo normale e in formato HTML, al metodo sendTemplatedEmail della classe client AWS.SES. Per chiamare il metodo sendTemplatedEmail, crea una promessa per chiamare un oggetto del servizio Amazon SES, trasferendo i parametri. Quindi gestisci l'oggetto response nel callback della 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); });

Digita la seguente riga di comando per eseguire l'esempio. L'e-mail viene messa in coda per l'invio da parte di Amazon SES.

node ses_sendtemplatedemail.js

Questo codice di esempio può essere trovato qui. GitHub

Invio di e-mail in blocco in base a un modello

In questo esempio, utilizza un modulo Node.js per inviare e-mail con Amazon SES. Crea un modulo Node.js con il nome del file ses_sendbulktemplatedemail.js. Configura l'SDK come mostrato in precedenza.

Crea un oggetto per trasferire i valori dei parametri che definiscono l'e-mail da inviare, inclusi gli indirizzi dei mittenti e dei destinatari, l'oggetto, il corpo dell'e-mail in testo normale e in formato HTML, al metodo sendBulkTemplatedEmail della classe client AWS.SES. Per chiamare il metodo sendBulkTemplatedEmail, crea una promessa per chiamare un oggetto del servizio Amazon SES, trasferendo i parametri. Quindi gestisci l'oggetto response nel callback della 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); });

Digita la seguente riga di comando per eseguire l'esempio. L'e-mail viene messa in coda per l'invio da parte di Amazon SES.

node ses_sendbulktemplatedemail.js

Questo codice di esempio può essere trovato qui. GitHub