Wie versende ich E-Mails mit Lambda und Amazon SES?

Zuletzt aktualisiert: 15.09.2021

Ich möchte AWS Lambda verwenden, um E-Mails mit Amazon Simple Email Service (Amazon SES) zu senden. Wie konfiguriere ich das?

Kurzbeschreibung

Gehen Sie wie folgt vor, um E-Mails von einer Lambda-Funktion mit Amazon SES zu senden:

1.    Erstellen Sie eine AWS Identity and Access Management (IAM)-Richtlinie und Ausführungsrolle für Lambda, um den API-Aufruf auszuführen.

2.    Verifizieren Sie die Amazon-SES-Identität (Domäne oder E-Mail-Adresse).

3.    Erstellen oder aktualisieren Sie eine Lambda-Funktion, die eine Logik für das Senden von E-Mails über Amazon SES enthält.

Hinweis: Um einen PDF-Anhang in Ihre E-Mails einzufügen, müssen Sie die API-Operation Amazon SES SendRawEmail verwenden. Weitere Informationen finden Sie unter Senden von unbearbeiteten E-Mails mithilfe der Amazon SES-API.

Auflösung

Hinweis: Der Beispiel-Lambda-Funktionscode in Node.js in diesem Artikel wird unverändert bereitgestellt. Passen Sie das Beispiel an Ihren Anwendungsfall an oder entwerfen Sie Ihr eigenes in Ihrer bevorzugten Programmiersprache.

Eine IAM-Richtlinie und Ausführungsrolle für Lambda zum Auszuführen des API-Aufrufs erstellen

1.    Erstellen einer IAM-Richtlinie mit dem JSON-Richtlinieneditor. Wenn Sie die Richtlinie erstellen, fügen Sie das folgende JSON-Richtliniendokument in den Richtlinieneditor ein:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ses:SendEmail",
                "ses:SendRawEmail"
            ],
            "Resource": "*"
        }
    ]
}

Hinweis: Weitere Informationen und Beispiele zum Einschränken des Zugriffs auf diese IAM-Richtlinie, finden Sie unter Beispiel-IAM-Richtlinien für Amazon SES.

2.    Weisen Sie die IAM-Richtlinie zu einer IAM-Rolle hinzu. Anweisungen finden Sie im Abschnitt So verwenden Sie eine verwaltete Richtlinie als Berechtigungsrichtlinie für eine Identität (Konsole) unter Hinzufügen von IAM-Identitätsberechtigungen (Konsole).

Hinweis: In den folgenden Schritten weisen Sie diese IAM-Rolle der Lambda-Funktion zu.

Amazon-SES-Identität (Domäne oder E-Mail-Adresse) verifizieren

Informationen zur Überprüfung einer Domäne finden Sie unter Verifizieren von Domänen in Amazon SES.

Informationen zur Überprüfung einer E-Mail-Adresse finden Sie unter Verifizieren von E-Mail-Adressen in Amazon SES.

Eine Lambda-Funktion, die eine Logik für das Senden von E-Mails über Amazon SES enthält, erstellen oder aktualisieren

1.    Wenn Sie es noch nicht getan haben, dann erstellen Sie eine Lambda-Funktion.

Hinweis: Sie können eine Lambda-Funktion mithilfe der Lambda-Konsole oder durch Erstellen und Hochladen eines Bereitstellungspakets erstellen.

2.    Wählen Sie in der Lambda-Konsole im linken Navigationsbereich Funktionen aus.

3.    Wählen Sie den Namen Ihrer Funktion.

4.    Sehen Sie sich auf der Registerkarte Konfiguration im Bereich Berechtigungen die Ausführungsrolle der Funktion an. Überprüfen Sie, ob die IAM-Rolle mit den zuvor erstellten Amazon SES-Berechtigungen aufgeführt ist. Wenn die richtige IAM-Rolle nicht aufgeführt ist, weisen Sie der Funktion die richtige Rolle zu.

5.    Fügen Sie unter Funktionscode im Bearbeitungsbereich den folgenden Beispielfunktionscode ein:

Hinweis: Ersetzen Sie usa-west-2 durch die AWS-Region, in der sich die verifizierte Amazon-SES-Identität befindet. Ersetzen Sie "RecipientEmailAddress" durch die E-Mail-Adresse(n), an die Sie die E-Mail senden möchten. Ersetzen Sie SourceEmailAddress durch Ihre von Amazon SES verifizierte Absender-E-Mail-Adresse oder eine beliebige E-Mail-Adresse einer von Amazon SES verifizierten Domäne. Bearbeiten Sie optional den Nachrichtentext („Test“) und die Betreffzeile („Test-E-Mail“).

// Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

var aws = require("aws-sdk");
var ses = new aws.SES({ region: "us-west-2" });
exports.handler = async function (event) {
  var params = {
    Destination: {
      ToAddresses: ["RecipientEmailAddress", ...],
    },
    Message: {
      Body: {
        Text: { Data: "Test" },
      },

      Subject: { Data: "Test Email" },
    },
    Source: "SourceEmailAddress",
  };
 
  return ses.sendEmail(params).promise()
};

Weitere Informationen zur Verwendung der sendEmail-API finden Sie in der AWS-SDK-for-JavaScript-Dokumentation.

5.    Wählen Sie Bereitstellen.

(Optional) Test-E-Mail senden

1.    Konfigurieren Sie in der Lambda-Konsole ein Testereignis für Ihre Funktion.

Hinweis: Die Testnutzlast ist erforderlich, wird aber für dieses Codebeispiel nicht verwendet.

2.    Wählen Sie Testen aus. Lambda verwendet Amazon SES, um die Test-E-Mail an Ihren Empfänger zu senden.


War dieser Artikel hilfreich?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?