Envoyer un e-mail à l'aide d'Amazon SES - AWS SDK for JavaScript

Nous avons annoncé la sortie end-of-support de la AWS SDK for JavaScript v2. Nous vous recommandons de migrer vers la AWS SDK for JavaScript version 3. Pour les dates, les détails supplémentaires et les informations sur la façon de migrer, reportez-vous à l'annonce associée.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Envoyer un e-mail à l'aide d'Amazon SES

JavaScript code example that applies to Node.js execution

Cet exemple de code Node.js présente :

  • L'envoi d'un texte ou d'un e-mail au format HTML.

  • L'envoi d'e-mails basés sur un modèle d'e-mail.

  • L'envoi d'e-mails en bloc basés sur un modèle d'e-mail.

L'API Amazon SES vous permet d'envoyer un e-mail de deux manières différentes, en fonction du niveau de contrôle que vous souhaitez obtenir sur la composition de l'e-mail : formaté et brut. Pour plus de détails, consultez les sections Envoi d'e-mails formatés à l'aide de l'API Amazon SES et Envoi d'e-mails bruts à l'aide de l'API Amazon SES.

Scénario

Dans cet exemple, vous utilisez une série de modules Node.js pour envoyer un e-mail de plusieurs façons. Les modules Node.js utilisent le SDK pour JavaScript créer et utiliser des modèles de courrier électronique en utilisant les méthodes suivantes de la classe AWS.SES client :

Tâches prérequises

Exigences d'envoi d'un e-mail

Amazon SES rédige un e-mail et le met immédiatement en file d'attente pour envoi. Pour envoyer un e-mail à l'aide de la méthode SES.sendEmail, votre message doit répondre aux exigences suivantes :

  • Vous devez envoyer le message à partir d'une adresse e-mail ou d'un domaine vérifié(e). Si vous essayez d'envoyer un e-mail à l'aide d'une adresse ou d'un domaine non vérifié(e), cela engendre une erreur "Email address not verified".

  • Si votre compte est encore dans l'environnement de test (sandbox) Amazon SES, vous pouvez uniquement envoyer un e-mail à des adresses ou des domaines vérifiés, ou à des adresses e-mail associées au simulateur de boîte de réception Amazon SES. Pour plus d'informations, consultez la section Vérification des adresses e-mail et des domaines dans le manuel Amazon Simple Email Service Developer Guide.

  • La taille totale du message, pièces jointes comprises, doit être inférieure à 10 Mo.

  • Le message doit inclure au moins un destinataire. L'adresse e-mail du destinataire peut se trouver dans le champ À :, Cc : ou Cci :. Si l'adresse e-mail du destinataire n'est pas valide (c'est-à-dire, pas au format UserName@[SubDomain.]Domain.TopLevelDomain), le message est rejeté, même si ce dernier contient d'autres destinataires valides.

  • Le message ne peut pas comporter plus de 50 destinataires répartis dans les champs À :, Cc : et Cci :. Si vous avez besoin d'envoyer un e-mail à davantage de personnes, vous pouvez diviser votre liste de destinataires en groupes de 50 ou moins, puis appeler la méthode sendEmail plusieurs fois pour envoyer le message à chaque groupe.

Envoi d'un e-mail

Dans cet exemple, utilisez un module Node.js pour envoyer un e-mail avec Amazon SES. Créez un module Node.js nommé ses_sendemail.js. Configurez le kit SDK comme illustré précédemment.

Créez un objet pour transmettre les valeurs de paramètre qui définissent l'e-mail à envoyer, y compris l'expéditeur et le destinataire, l'objet, le corps du message en texte brut ou au format HTML, à la méthode sendEmail de la classe client AWS.SES. Pour appeler la méthode sendEmail, créez une promesse pour appeler un objet de service Amazon SES, en transmettant les paramètres. Traitez ensuite l'élément response dans le rappel de promesse.

// 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); });

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande. L'e-mail est mis en file d'attente pour être envoyé par Amazon SES.

node ses_sendemail.js

Cet exemple de code se trouve ici sur GitHub.

Envoi d'un e-mail à l'aide d'un modèle

Dans cet exemple, utilisez un module Node.js pour envoyer un e-mail avec Amazon SES. Créez un module Node.js nommé ses_sendtemplatedemail.js. Configurez le kit SDK comme illustré précédemment.

Créez un objet pour transmettre les valeurs de paramètre qui définissent l'e-mail à envoyer, y compris l'expéditeur et le destinataire, l'objet, le corps du message en texte brut ou au format HTML, à la méthode sendTemplatedEmail de la classe client AWS.SES. Pour appeler la méthode sendTemplatedEmail, créez une promesse pour appeler un objet de service Amazon SES, en transmettant les paramètres. Traitez ensuite l'élément response dans le rappel de promesse.

// 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); });

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande. L'e-mail est mis en file d'attente pour être envoyé par Amazon SES.

node ses_sendtemplatedemail.js

Cet exemple de code se trouve ici sur GitHub.

Envoi d'un e-mail en bloc à l'aide d'un modèle

Dans cet exemple, utilisez un module Node.js pour envoyer un e-mail avec Amazon SES. Créez un module Node.js nommé ses_sendbulktemplatedemail.js. Configurez le kit SDK comme illustré précédemment.

Créez un objet pour transmettre les valeurs de paramètre qui définissent l'e-mail à envoyer, y compris l'expéditeur et le destinataire, l'objet, le corps du message en texte brut ou au format HTML, à la méthode sendBulkTemplatedEmail de la classe client AWS.SES. Pour appeler la méthode sendBulkTemplatedEmail, créez une promesse pour appeler un objet de service Amazon SES, en transmettant les paramètres. Traitez ensuite l'élément response dans le rappel de promesse.

// 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); });

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande. L'e-mail est mis en file d'attente pour être envoyé par Amazon SES.

node ses_sendbulktemplatedemail.js

Cet exemple de code se trouve ici sur GitHub.