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

Helfen Sie uns, dasAWS SDK for JavaScriptVersion 3 (V3) -Dokumentation durch Feedback unter Verwendung derFeedbackLink oder erstellen Sie ein Problem oder ziehen Sie eine Anfrage anGitHubaus.

DieAWS SDK for JavaScriptReferenzhandbuch zur V3-API-Referenzbeschreibt ausführlich alle API-Operationen für dieAWS SDK for JavaScriptVersion 3 (V3).

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 API bietet zwei verschiedene Möglichkeiten zum Senden einer E-Mail, je nachdem, wie viel Kontrolle Sie über die Zusammensetzung der E-Mail-Nachricht möchten: formatiert und Raw-Version. Details dazu finden Sie unter .Senden einer formatierten E-Mail mithilfe der Amazon SES APIundSenden von Raw-E-Mails mithilfe der Amazon SES APIaus.

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 für JavaScript zum Erstellen und Verwenden von E-Mail-Vorlagen mit diesen Methoden desSES-Klasse:

Erforderliche Aufgaben

Zum Einrichten und Ausführen dieses Beispiels müssen Sie zunächst diese Aufgaben abschließen:

  • Richten Sie die Projektumgebung so ein, dass diese Node TypeScript Beispiele ausgeführt werden, und installieren Sie die erforderlicheAWS SDK for JavaScriptDrittanbieter-Module. Folgen Sie den Anweisungen aufGitHubaus.

Wichtig

In diesen Beispielen wird gezeigt, wie Client-Service-Objekte und Befehle mithilfe von ECMAScript6 (ES6) importiert/exportiert werden.

Anforderungen an das Senden von E-Mail-Nachrichten

Amazon SES erstellt eine E-Mail-Nachricht und stellt sie sofort in die Sendewarteschlange ein. Damit Sie mithilfe der SendEmailCommand-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 unterVerifizieren von E-Mail-Adressen und -Domänenim Amazon Simple Email Service-Entwicklerhandbuch.

  • 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 aufweist)UserName@[SubDomain.]Domain.TopLevelDomain), wird die gesamte Nachricht abgelehnt, selbst wenn die Nachricht Empfänger umfasst, die gültig sind.

  • Die Nachricht darf 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 einer E-Mail

In diesem Beispiel verwenden Sie ein Node.js-Modul zum Senden von E-Mail mit Amazon SES.

Erstellen eineslibsVerzeichnis und erstellen Sie ein Modul Node.js mit dem DateinamensesClient.jsaus. Kopieren Sie den folgenden Code, und fügen Sie ihn ein, wodurch das Amazon SES Client-Objekt erstellt wird. ErsetzenREGIONmit IhrerAWSRegion :

import { SESClient } from "@aws-sdk/client-ses"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SES service object. const sesClient = new SESClient({ region: REGION }); export { sesClient };

Den Beispielcode finden Sie unterauf GitHubaus.

Erstellen Sie ein Node.js-Modul mit dem Dateinamen ses_sendemail.js. Konfigurieren Sie das SDK wie zuvor gezeigt, einschließlich der Installation der erforderlichen Clients und Pakete.

Erstellen Sie ein Objekt, um die Parameterwerte, die die zu sendende E-Mail definieren, z. B. die Sender- und Empfängeradressen, Betreff und E-Mail-Text im Klartext- und HTML-Format, an dasSendEmailCommand-Methode desSES-Client-Klasse. Um auf derSendEmailCommand-Methode ein Amazon SES Objekts aufzurufen und übergeben die Parameter.

Anmerkung

In diesem Beispiel werden die erforderlichenAWSService V3 Paketclients, V3-Befehle und verwendet diesend-Methode in einem async/await-Muster. Sie können dieses Beispiel stattdessen mithilfe von V2-Befehlen erstellen, indem Sie einige kleinere Änderungen vornehmen. Details hierzu finden Sie unter Verwenden von V3-Befehlen.

Anmerkung

ErsetzenRECEIVER_ADDRESSmit der Adresse, an die die E-Mail gesendet werden soll undABSENDER_ADRESSEdie E-Mail-Adresse, von der die E-Mail gesendet werden soll.

// Create the promise and SES service object // Import required AWS SDK clients and commands for Node.js import { SendEmailCommand } from "@aws-sdk/client-ses"; import { sesClient } from "./libs/sesClient.js"; // Set the parameters const params = { Destination: { /* required */ CcAddresses: [ /* more items */ ], ToAddresses: [ "RECEIVER_ADDRESS", //RECEIVER_ADDRESS /* more To-email addresses */ ], }, 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: "EMAIL_SUBJECT", }, }, Source: "SENDER_ADDRESS", // SENDER_ADDRESS ReplyToAddresses: [ /* more items */ ], }; const run = async () => { try { const data = await sesClient.send(new SendEmailCommand(params)); console.log("Success", data); return data; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

Geben Sie an der Eingabeaufforderung Folgendes ein, damit Sie das Beispiel ausführen können. Die E-Mail wird in die Warteschlange zum Senden mithilfe von Amazon SES platziert.

node ses_sendemail.js

Den Beispielcode finden Sie untergefunden hier auf GitHubaus.

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 gezeigt, einschließlich der Installation der erforderlichen Clients und Pakete.

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 SendTemplatedEmailCommand-Methode der SES-Client-Klasse zu übergeben. Um auf derSendTemplatedEmailCommand-Methode ein Amazon SES Client-Serviceobjekt aufzurufen und übergeben die Parameter.

Anmerkung

In diesem Beispiel werden die erforderlichenAWSService V3 Paketclients, V3-Befehle und verwendet diesend-Methode in einem async/await-Muster. Sie können dieses Beispiel stattdessen mithilfe von V2-Befehlen erstellen, indem Sie einige kleinere Änderungen vornehmen. Details hierzu finden Sie unter Verwenden von V3-Befehlen.

Anmerkung

ErsetzenREGIONmit IhrerAWSRegion,RECEIVER_ADDRESSMit der Adresse, an die die E-Mail gesendet werden soll,ABSENDER_ADRESSEdie E-Mail-Adresse, von der die E-Mail gesendet werden soll undVORLAGENNAMETemplate mit dem Namen der Vorlage.

// Import required AWS SDK clients and commands for Node.js import { SendTemplatedEmailCommand } from "@aws-sdk/client-ses"; import { sesClient } from "./libs/sesClient.js"; // Set the parameters const params = { Destination: { /* required */ CcAddresses: [ /* more CC email addresses */ ], ToAddresses: [ "RECEIVER_ADDRESS", // RECEIVER_ADDRESS /* more To-email addresses */ ], }, Source: "SENDER_ADDRESS", //SENDER_ADDRESS Template: "TEMPLATE_NAME", // TEMPLATE_NAME TemplateData: '{ "REPLACEMENT_TAG_NAME":"REPLACEMENT_VALUE" }' /* required */, ReplyToAddresses: [], }; const run = async () => { try { const data = await sesClient.send(new SendTemplatedEmailCommand(params)); console.log("Success.", data); return data; // For unit tests. } catch (err) { console.log("Error", err.stack); } }; run();

Geben Sie an der Eingabeaufforderung Folgendes ein, damit Sie das Beispiel ausführen können. Die E-Mail wird in die Warteschlange zum Senden mithilfe von Amazon SES platziert.

node ses_sendtemplatedemail.js

Den Beispielcode finden Sie unterauf GitHubaus.

Senden von Massen-E-Mails mithilfe einer Vorlage

In diesem Beispiel verwenden Sie ein Node.js-Modul zum Senden von E-Mail mit Amazon SES.

Erstellen eineslibsVerzeichnis und erstellen Sie ein Modul Node.js mit dem DateinamensesClient.jsaus. Kopieren Sie den folgenden Code, und fügen Sie ihn ein, wodurch das Amazon SES Client-Objekt erstellt wird. ErsetzenREGIONmit IhrerAWSRegion :

import { SESClient } from "@aws-sdk/client-ses"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SES service object. const sesClient = new SESClient({ region: REGION }); export { sesClient };

Den Beispielcode finden Sie unterauf GitHubaus.

Erstellen Sie ein Node.js-Modul mit dem Dateinamen ses_sendbulktemplatedemail.js. Konfigurieren Sie das SDK wie zuvor gezeigt, einschließlich der Installation der erforderlichen Clients und Pakete.

Erstellen Sie ein Objekt, um die Parameterwerte, die die zu sendende E-Mail definieren, z. B. die Sender- und Empfängeradressen, Betreff und E-Mail-Text im Klartext- und HTML-Format, an dasSendBulkTemplatedEmailCommand-Methode desSES-Client-Klasse. Um auf derSendBulkTemplatedEmailCommand-Methode ein Amazon SES Objekts aufzurufen und übergeben die Parameter.

Anmerkung

In diesem Beispiel werden die erforderlichenAWSService V3 Paketclients, V3-Befehle und verwendet diesend-Methode in einem async/await-Muster. Sie können dieses Beispiel stattdessen mithilfe von V2-Befehlen erstellen, indem Sie einige kleinere Änderungen vornehmen. Details hierzu finden Sie unter Verwenden von V3-Befehlen.

Anmerkung

ErsetzenRECEIVER_ADDRESSmit der Adresse, an die die E-Mail gesendet werden soll undABSENDER_ADRESSEdie E-Mail-Adresse, von der die E-Mail gesendet werden soll.

// Import required AWS SDK clients and commands for Node.js import { SendBulkTemplatedEmailCommand } from "@aws-sdk/client-ses"; import { sesClient } from "./libs/sesClient.js"; // Set the parameters var params = { Destinations: [ /* required */ { Destination: { /* required */ CcAddresses: [ "RECEIVER_ADDRESSES", //RECEIVER_ADDRESS /* more items */ ], ToAddresses: [ /* more items */ ], }, ReplacementTemplateData: '{ "REPLACEMENT_TAG_NAME":"REPLACEMENT_VALUE" }', }, ], Source: "SENDER_ADDRESS", // SENDER_ADDRESS Template: "TEMPLATE", //TEMPLATE DefaultTemplateData: '{ "REPLACEMENT_TAG_NAME":"REPLACEMENT_VALUE" }', ReplyToAddresses: [], }; const run = async () => { try { const data = await sesClient.send(new SendBulkTemplatedEmailCommand(params)); console.log("Success.", data); return data; // For unit tests. } catch (err) { console.log("Error", err.stack); } }; run();

Geben Sie an der Eingabeaufforderung Folgendes ein, damit Sie das Beispiel ausführen können. Die E-Mail wird in die Warteschlange zum Senden mithilfe von Amazon SES platziert.

node ses_sendbulktemplatedemail.js

Den Beispielcode finden Sie unterauf GitHubaus.