

La AWS SDK pour JavaScript v2 est arrivée end-of-support. Nous vous recommandons de migrer vers la [AWS SDK pour JavaScript version 3](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/). Pour plus de détails et d'informations sur la façon de migrer, veuillez consulter cette [annonce](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/).

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
<a name="ses-examples-sending-email"></a>

![JavaScript code example that applies to Node.js execution](https://docs.aws.amazon.com/fr_fr/sdk-for-javascript/v2/developer-guide/images/nodeicon.png)

**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](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-formatted.html) et [Envoi d'e-mails bruts à l'aide de l'API Amazon SES](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-raw.html).

## Scénario
<a name="ses-examples-sending-email-scenario"></a>

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 :
+ [`sendEmail`](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#sendEmail-property)
+ [`sendTemplatedEmail`](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#sendTemplatedEmail-property)
+ [`sendBulkTemplatedEmail`](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#sendBulkTemplatedEmail-property)

## Tâches prérequises
<a name="ses-examples-sending-emails-prerequisites"></a>
+ Installez Node.js. Pour plus d'informations sur l'installation de Node.js, consultez le [site web de Node.js](https://nodejs.org).
+ Créez un fichier de configurations partagé avec vos informations d'identification utilisateur. Pour plus d'informations sur le fichier JSON d'informations d'identification, consultez [Chargement des informations d'identification dans Node.js à partir du fichier d'informations d'identification partagé](loading-node-credentials-shared.md).

## Exigences d'envoi d'un e-mail
<a name="ses-examples-sending-msail-reqs"></a>

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](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html) 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
<a name="ses-examples-sendmail"></a>

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](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_sendemail.js). 

## Envoi d'un e-mail à l'aide d'un modèle
<a name="ses-examples-sendtemplatedemail"></a>

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](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_sendtemplatedemail.js).

## Envoi d'un e-mail en bloc à l'aide d'un modèle
<a name="ses-examples-sendbulktemplatedemail"></a>

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](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_sendbulktemplatedemail.js). 