Senden von E-Mails mit Amazon SES - AWS SDK for JavaScript

Wir haben das Kommende end-of-support für AWS SDK for JavaScript v2 angekündigt. Wir empfehlen Ihnen, auf AWS SDK for JavaScript Version 3 zu migrieren. Termine, weitere Details und Informationen zur Migration finden Sie in der verlinkten Ankündigung.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Senden von E-Mails mit Amazon SES

JavaScript code example that applies to Node.js execution

Dieses Node.js-Codebeispiel zeigt:

  • das Senden einer Text- oder HTML-E-Mail.

  • das Senden von E-Mails, die auf einer E-Mail-Vorlage basieren.

  • das Senden von Massen-E-Mails, die auf einer E-Mail-Vorlage basieren.

Die Amazon SES SES-API bietet Ihnen zwei verschiedene Möglichkeiten, eine E-Mail zu senden, je nachdem, wie viel Kontrolle Sie über die Zusammensetzung der E-Mail-Nachricht haben möchten: formatiert und roh. Einzelheiten finden Sie unter Senden formatierter E-Mails mit der Amazon SES SES-API und Senden von Roh-E-Mails mit der Amazon SES SES-API.

Das Szenario

In diesem Beispiel verwenden Sie mehrere Node.js-Module, um E-Mails auf verschiedene Weisen zu senden. Die Module Node.js verwenden das SDK JavaScript , um E-Mail-Vorlagen mit den folgenden Methoden der AWS.SES Client-Klasse zu erstellen und zu verwenden:

Erforderliche Aufgaben

Voraussetzungen zum Senden von E-Mail-Nachrichten

Amazon SES verfasst eine E-Mail-Nachricht und stellt sie sofort in die Warteschlange für den Versand. Damit Sie mithilfe der SES.sendEmail-Methode E-Mails senden können, muss Ihre Nachricht die folgenden Anforderungen erfüllen:

  • Sie müssen die Nachricht von einer verifizierten E-Mail-Adresse oder Domäne senden. Wenn Sie versuchen, E-Mails über eine nicht verifizierte Adresse oder Domäne zu senden, führt die Operation zu einem "Email address not verified"-Fehler.

  • Wenn sich Ihr Konto noch in der Amazon SES Sandbox befindet, können Sie die E-Mails nur an verifizierte Adressen oder Domänen oder E-Mail-Adressen des Amazon SES-Postfachsimulators senden. Weitere Informationen finden Sie unter Verifizieren von E-Mail-Adressen und Domains im Amazon Simple Email Service Developer Guide.

  • Die Gesamtgröße der Nachricht, einschließlich Anlagen, muss kleiner als 10 MB sein.

  • Die Nachricht muss mindestens eine E-Mail-Adresse für einen Empfänger enthalten. Bei der Empfänger-Adresse kann es sich um eine Empfängeradresse, eine CC: Adresse oder BCC: Adresse handeln. Wenn eine Empfänger-E-Mail-Adresse ungültig ist (d. h., wenn sie nicht das Format UserName@[SubDomain.]Domain.TopLevelDomain aufweist), wird die gesamte Nachricht abgelehnt, selbst wenn die Nachricht Empfänger umfasst, die gültig sind.

  • Die Nachricht kann nicht mehr als 50 Empfänger in den Feldern „An:“, „CC:“ und „BCC:“ umfassen. Wenn Sie eine E-Mail an eine größere Zielgruppe senden möchten, können Sie Ihre Empfängerliste in Gruppen von höchstens 50 unterteilen und dann die sendEmail-Methode aufrufen, um die Nachricht mehrmals an die einzelnen Gruppen zu senden.

Senden von E-Mails

In diesem Beispiel verwenden Sie ein Node.js-Modul zum Senden von E-Mail mit Amazon SES. Erstellen Sie ein Node.js-Modul mit dem Dateinamen ses_sendemail.js. Konfigurieren Sie das SDK wie zuvor dargestellt.

Erstellen Sie ein Objekt, um die Parameterwerte, die die zu sendende E-Mail definieren, z. B. die Sender- und Empfängeradressen, Betreff, E-Mail-Text im Klartext- und HTML-Format, an die sendEmail-Methode der AWS.SES-Client-Klasse zu übergeben. Um die sendEmail-Methode aufzurufen, erstellen Sie ein Promise für den Aufruf eines Amazon SES-Serviceobjekts und übergeben die Parameter. Verarbeiten Sie anschließend die response im Promise-Callback.

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

Um das Beispiel auszuführen, geben Sie Folgendes in der Befehlszeile ein. Die E-Mail befindet sich in der Warteschlange für den Versand durch Amazon SES.

node ses_sendemail.js

Diesen Beispielcode finden Sie hier auf GitHub.

Senden einer E-Mail mit einer Vorlage

In diesem Beispiel verwenden Sie ein Node.js-Modul zum Senden von E-Mail mit Amazon SES. Erstellen Sie ein Node.js-Modul mit dem Dateinamen ses_sendtemplatedemail.js. Konfigurieren Sie das SDK wie zuvor dargestellt.

Erstellen Sie ein Objekt, um die Parameterwerte, die die zu sendende E-Mail definieren, z. B. die Sender- und Empfängeradressen, Betreff, E-Mail-Text im Klartext- und HTML-Format, an die sendTemplatedEmail-Methode der AWS.SES-Client-Klasse zu übergeben. Um die sendTemplatedEmail-Methode aufzurufen, erstellen Sie ein Promise für den Aufruf eines Amazon SES-Serviceobjekts und übergeben die Parameter. Verarbeiten Sie anschließend die response im Promise-Callback.

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

Um das Beispiel auszuführen, geben Sie Folgendes in der Befehlszeile ein. Die E-Mail befindet sich in der Warteschlange für den Versand durch Amazon SES.

node ses_sendtemplatedemail.js

Diesen Beispielcode finden Sie hier auf GitHub.

Senden einer Massen-E-Mail mithilfe einer Vorlage

In diesem Beispiel verwenden Sie ein Node.js-Modul zum Senden von E-Mail mit Amazon SES. Erstellen Sie ein Node.js-Modul mit dem Dateinamen ses_sendbulktemplatedemail.js. Konfigurieren Sie das SDK wie zuvor dargestellt.

Erstellen Sie ein Objekt, um die Parameterwerte, die die zu sendende E-Mail definieren, z. B. die Sender- und Empfängeradressen, Betreff, E-Mail-Text im Klartext- und HTML-Format, an die sendBulkTemplatedEmail-Methode der AWS.SES-Client-Klasse zu übergeben. Um die sendBulkTemplatedEmail-Methode aufzurufen, erstellen Sie ein Promise für den Aufruf eines Amazon SES-Serviceobjekts und übergeben die Parameter. Verarbeiten Sie anschließend die response im Promise-Callback.

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

Um das Beispiel auszuführen, geben Sie Folgendes in der Befehlszeile ein. Die E-Mail befindet sich in der Warteschlange für den Versand durch Amazon SES.

node ses_sendbulktemplatedemail.js

Diesen Beispielcode finden Sie hier auf GitHub.