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

Hilf uns, das zu verbessernAWS SDK for JavaScriptVersion 3 (V3) -Dokumentation, indem Sie Feedback mithilfe derFeedbackverlinken, oder erstellen Sie ein Issue oder Pull Request aufGitHub.

DieAWS SDK for JavaScriptReferenzhandbuch zur V3-APIbeschreibt ausführlich alle API-Operationen für denAWS 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 SES--API bietet zwei verschiedene Möglichkeiten zum Senden einer E-Mail, je nachdem, wie viel Kontrolle Sie über das Verfassen der E-Mail-Nachricht möchten: in formatierter oder Raw-Version. Details dazu finden Sie unter .Senden einer formatierten E-Mail mit der Amazon-SES-APIundSenden von Raw-E-Mails mit 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 mithilfe dieser Methoden desSES-Client-Klasse:

Erforderliche Aufgaben

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

  • Richten Sie die Projektumgebung ein, um diese Node TypeScript-Beispiele auszuführen, und installieren Sie die erforderlichenAWS SDK for JavaScriptund Drittanbieter-Module. Folgen Sie den Anweisungen aufGitHubaus.

Wichtig

Diese Beispiele zeigen, wie Client-Serviceobjekte importiert/exportiert und mit ECMASCRIPT6 (ES6) befehligt werden.

  • Dies erfordert Node.js Version 13.x oder höher. Informationen zum Herunterladen der neuesten Version von Node.js finden Sie unterNode.js Downloads.aus.

  • Wenn Sie die CommonJS-Syntax verwenden möchten, finden Sie unterJavaScript ES6/CommonJS-Syntaxaus.

Anforderungen an das Senden von E-Mail-Nachrichten

Amazon SES verfasst eine E-Mail-Nachricht und stellt sie sofort in die Sendewarteschlange. 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 Domainsim 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 aufweistUserName@[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 von E-Mails

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

Erstellen eineslibsErstellen Sie ein Modul Node.js mit dem DateinamensesClient.jsaus. Kopieren Sie den unten stehenden Code und fügen Sie ihn ein, wodurch das Amazon SES SES-Clientobjekt 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 };

Dieser Beispielcode finden Siehier auf 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 dieSendEmailCommand-Methode desSESclient-Klasse. rufen aufSendEmailCommand-Methode aufrufen Sie ein Amazon SES SES-Serviceobjekt und übergeben die Parameter.

Anmerkung

In diesem Beispiel wird das erforderliche importiert und verwendetAWSService V3-Paket-Clients, V3-Befehle und verwendetsend-Methode in einem async/await-Muster. Sie können dieses Beispiel stattdessen mit V2-Befehlen erstellen, indem Sie einige kleinere Änderungen vornehmen. Details hierzu finden Sie unter Verwenden von V3-Befehlen.

Anmerkung

ErsetzenEMPFÄNGER_ADRESSEmit der Adresse, an die die E-Mail gesendet werden soll, undSENDER_ADDRESSmit der E-Mail-Adresse an die E-Mail senden von.

// 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, um das Beispiel auszuführen. Die E-Mail wird in die Warteschlange zum Senden durch Amazon SES platziert.

node ses_sendemail.js

Dieser Beispielcode finden Siehier auf GitHub gefundenaus.

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. rufen aufSendTemplatedEmailCommand-Methode aufrufen Sie ein Amazon SES SES-Client-Serviceobjekt und übergeben die Parameter.

Anmerkung

In diesem Beispiel wird das erforderliche importiert und verwendetAWSService V3-Paket-Clients, V3-Befehle und verwendetsend-Methode in einem async/await-Muster. Sie können dieses Beispiel stattdessen mit V2-Befehlen erstellen, indem Sie einige kleinere Änderungen vornehmen. Details hierzu finden Sie unter Verwenden von V3-Befehlen.

Anmerkung

ErsetzenREGIONmit IhrerAWSRegion,EMPFÄNGER_ADRESSEmit der Adresse, an die die E-Mail gesendet werden soll,SENDER_ADDRESSmit der E-Mail-Adresse an das Senden der E-Mail von und undTEMPLATE_NAMEmit 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, um das Beispiel auszuführen. Die E-Mail wird in die Warteschlange zum Senden durch Amazon SES platziert.

node ses_sendtemplatedemail.js

Diesen Beispielcode finden Siehier auf GitHubaus.

Senden von Massen-E-Mails mit einer Vorlage

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

Erstellen eineslibsErstellen Sie ein Modul Node.js mit dem DateinamensesClient.jsaus. Kopieren Sie den unten stehenden Code und fügen Sie ihn ein, wodurch das Amazon SES SES-Clientobjekt 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 };

Diesen Beispielcode finden Siehier auf 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 dieSendBulkTemplatedEmailCommand-Methode desSESclient-Klasse. rufen aufSendBulkTemplatedEmailCommand-Methode aufrufen Sie ein Amazon SES SES-Serviceobjekt und übergeben die Parameter.

Anmerkung

In diesem Beispiel wird das erforderliche importiert und verwendetAWSService V3-Paket-Clients, V3-Befehle und verwendetsend-Methode in einem async/await-Muster. Sie können dieses Beispiel stattdessen mit V2-Befehlen erstellen, indem Sie einige kleinere Änderungen vornehmen. Details hierzu finden Sie unter Verwenden von V3-Befehlen.

Anmerkung

ErsetzenEMPFÄNGER_ADRESSENmit der Adresse, an die die E-Mail gesendet werden soll, undSENDER_ADDRESSmit der E-Mail-Adresse an die E-Mail senden von.

// 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, um das Beispiel auszuführen. Die E-Mail wird in die Warteschlange zum Senden durch Amazon SES platziert.

node ses_sendbulktemplatedemail.js

Diesen Beispielcode finden Siehier auf GitHubaus.