Direkt zum Inhalt

Warum kann ich keine SES-E-Mail von einer EC2- oder Lambda-Instance senden, die sich in einer privaten Amazon VPC befindet?

Lesedauer: 2 Minute
0

Ich möchte Amazon Simple Email Service (SES) verwenden, um E-Mails von einer Amazon Elastic Compute Cloud (Amazon EC2)-Instance oder einer AWS Lambda-Funktion zu senden, die sich in einer Amazon Virtual Private Cloud (VPC) befindet.

Kurzbeschreibung

Standardmäßig haben Amazon EC2-Instances und Lambda-Funktionen, die du in einer Amazon VPC bereitstellst, keinen direkten Internetzugang. Zum Senden von E-Mails benötigt die Amazon SES API eine ausgehende Internetverbindung, um mit dem Amazon SES-Service zu kommunizieren.

Lösung

Verwende die Amazon SES-SMTP-Schnittstelle mit einem Amazon VPC-Endpunkt

Gehe wie folgt vor, um die Amazon SES Simple Mail Transfer Protocol (SMTP)-Schnittstelle zum Senden von E-Mails zu verwenden:

  1. Erstelle einen neuen Amazon VPC-Endpunkt für den Amazon SES SMTP-Service in deiner Amazon VPC.
    Hinweis: Amazon VPC-Endpunkte unterstützen keine Anfragen in AWS-Regionen. Erstelle deinen Endpunkt in derselben Region, aus der du API-Aufrufe tätigen möchtest.
  2. Stelle sicher, dass die Zugriffssteuerungslisten (ACLs) deiner Instance oder Lambda-Funktion ausgehenden Datenverkehr zum Amazon SES-SMTP-Endpunkt zulassen. Wenn du eine Lambda-Funktion verwendest, stelle sicher, dass du den Amazon SES-SMTP-Endpunkt denselben Subnetzen wie deine Lambda-Funktion zugeordnet haben.
  3. Aktualisiere deine Anwendung, um das SMTP-Protokoll zu verwenden, und stelle eine Verbindung zum Amazon SES-SMTP-Endpunkt her.

Verbinde die Amazon SES-API mit dem Internet

Voraussetzungen: Vergewissere dich, dass die Instance-Rolle oder die Lambda-Ausführungsrolle über die Berechtigungen ses:SendEmail und ses:SendRawEmail verfügt. Überprüfe außerdem deine E-Mail-Adressidentität oder Domain-Identität.

Um die Amazon SES API zu verwenden, richte ein NAT-Gateway in einem öffentlichen Subnetz ein, um den Internetzugang von deinen privaten Subnetzen aus zu ermöglichen. Du kannst auch einen Proxyserver in einem öffentlichen Subnetz bereitstellen und konfigurieren, um den Internetverkehr aus deinen privaten Subnetzen weiterzuleiten.

Teste anschließend deine Verbindung zu den Amazon SES-SMTP-Endpunkten.

Hinweis: Standardmäßig schränkt Amazon EC2 den ausgehenden Verkehr auf SMTO-Port 25 auf allen Instances ein.

Ähnliche Informationen

Verwenden der Amazon SES-SMTP-Schnittstelle zum Senden von E-Mails

Lambda-Funktionen Zugriff auf Ressourcen in einer Amazon VPC gewähren

Wie behebe ich Probleme mit der SMTP-Verbindung oder einem Timeout mit Amazon SES?