SMTP-Probleme bei Amazon SES - Amazon Simple Email Service

SMTP-Probleme bei Amazon SES

Dieser Abschnitt enthält Lösungen für mehrere häufig auftretende Probleme im Zusammenhang mit dem Senden von E-Mail-Nachrichten über die Amazon-SES-SMTP-Schnittstelle (Simple Mail Transfer Protocol). Er enthält auch eine Liste von SMTP-Antwortcodes, die von Amazon SES zurückgegeben werden.

Weitere Informationen zum Senden von E-Mail-Nachrichten über die Amazon-SES-SMTP-Schnittstelle finden Sie unter Verwenden der Amazon-SES-SMTP-Schnittstelle zum Senden von E-Mails.

  • Sie können keine Verbindung zum Amazon-SES-SMTP-Endpunkt herstellen.

    Probleme beim Herstellen einer Verbindung mit dem Amazon-SES-SMTP-Endpunkt stehen meist mit folgenden Problemen im Zusammenhang:

    • Falsche Anmeldeinformationen – Die Anmeldeinformationen, die Sie verwenden, um eine Verbindung mit dem SMTP-Endpunkt herzustellen, unterscheiden sich von Ihren AWS-Anmeldeinformationen. Informationen zum Abrufen Ihrer SMTP-Anmeldeinformationen finden Sie unter Abrufen Ihrer Amazon-SES-SMTP-Anmeldeinformationen. Weitere Informationen zu Anmeldeinformationen finden Sie unter Arten von Amazon-SES-Anmeldeinformationen.

    • Netzwerk- oder Firewall-Probleme – Möglicherweise blockiert Ihr Netzwerk ausgehende Verbindungen über den Port, über den Sie E-Mails senden möchten. Um festzustellen, ob ein Problem in Ihrem lokalen Netzwerk die Verbindungsprobleme verursacht, geben Sie in der Befehlszeile den folgenden Befehl ein, wobei Sie port durch den Port ersetzen, den Sie zu verwenden versuchen (normalerweise 465, 587, 2465 oder 2587): telnet email-smtp.us-west-2.amazonaws.com port

      Wenn Sie mit diesem Befehl eine Verbindung mit dem SMTP-Server herstellen können und Sie versuchen, mithilfe von TLS Wrapper oder STARTTLS eine Verbindung mit Amazon SES herzustellen, führen Sie die in Testen der Verbindung zur Amazon-SES-SMTP-Schnittstelle über die Befehlszeile gezeigten Verfahren durch.

      Wenn Sie keine Verbindung mit dem Amazon-SES-SMTP-Endpunkt über telnet oder openssl herstellen können, ist dies ein Hinweis darauf, dass etwas in Ihrem Netzwerk (wie etwa eine Firewall) ausgehende Verbindungen über den von Ihnen verwendeten Port blockiert. Versuchen Sie gemeinsam mit Ihrem Netzwerkadministrator, das Problem zu diagnostizieren und zu beheben.

  • Sie senden von einer Amazon-EC2-Instance über Port 25 an Amazon SES, und Sie erhalten Timeout-Fehler.

    Amazon EC2 schränkt Port 25 standardmäßig ein. Um diese Beschränkungen aufzuheben, senden Sie eine Amazon EC2 Anforderung zum Entfernen von E-Mail-Sendebeschränkungen ab. Sie können auch eine Verbindung mit Amazon SES über Port 465 oder Port 587 herstellen. Beide sind nicht eingeschränkt.

  • E-Mails gehen durch Netzwerkfehler verloren.

    Stellen Sie sicher, dass Ihre Anwendung eine Logik für Wiederholversuche verwendet, wenn sie eine Verbindung mit dem Amazon-SES-SMTP-Endpunkt herstellt. Außerdem muss die Anwendung die Übertragung von Nachrichten erkennen und im Fall eines Netzwerkfehlers wiederholen können. SMTP ist ein Verbose-Protokoll. Das Senden von E-Mails mit diesem Protokoll erfordert mehrere Netzläufe. Aufgrund der Beschaffenheit von SMTP nimmt die Möglichkeit von Netzwerkfehlern zu.

  • Die Verbindung mit dem SMTP-Endpunkt geht verloren.

    Verlorene Verbindungen werden am häufigsten durch die folgenden Probleme verursacht:

    • MTU-Größe – Wenn Sie eine Timeout-Fehlermeldung erhalten, ist möglicherweise die maximale Größe für Übertragungseinheiten (Maximum Transmission Unit, MTU) der Netzwerkschnittstelle für den Computer, mit dem Sie eine Verbindung mit der Amazon-SES-SMTP-Schnittstelle herstellen, zu hoch. Legen Sie, um dieses Problem zu lösen, die MTU-Größe auf diesem Computer auf 1500 Byte fest.

      Weitere Informationen über das Festlegen der MTU-Größe auf Microsoft Windows-, Linux- und macOS-Betriebssystemen finden Sie unter Abfragen scheinen zu hängen und erreichen den Cluster nicht im Amazon Redshift Verwaltungsleitfaden.

      Weitere Informationen zum Festlegen der MTU-Größe für eine Amazon-EC2-Instance finden Sie unter Netzwerk-MTU (Maximum Transmission Unit) für Ihre EC2-Instance im Amazon-EC2-Benutzerhandbuch für Linux-Instances.

    • Langlebige Verbindungen – Der Amazon-SES-SMTP-Endpunkt wird auf einer Flotte von Amazon-EC2-Instances hinter einem Elastic Load Balancer (ELB) ausgeführt. Um sicherzustellen, dass das System aktuell und fehlertolerant ist, werden aktive Amazon-EC2-Instances regelmäßig beendet und durch neue Instances ersetzt. Da Ihre Anwendung eine Verbindung mit einer Amazon-EC2-Instance über die ELB herstellt, ist die Verbindung nicht mehr gültig, wenn die Amazon-EC2-Instance beendet wird. Sie sollten eine neue SMTP-Verbindung einrichten, nachdem Sie eine feste Anzahl von Nachrichten über eine einzelne SMTP-Verbindung gesendet haben, oder wenn die SMTP-Verbindung für einen bestimmten Zeitraum aktiv war. Sie werden etwas experimentieren müssen, um geeignete Schwellenwerte basierend darauf zu ermitteln, wo Ihre Anwendung gehostet wird und wie diese E-Mails an Amazon SES sendet.

  • Sie möchten die IP-Adressen der Amazon-SES-SMTP-E-Mail-Server wissen, damit Sie die IP-Adressen in eine Whitelist für Ihr Netzwerk eintragen können.

    Die IP-Adressen für die Amazon-SES-SMTP-Endpunkte befinden sich hinter der Lastenverteilung. Infolgedessen ändern sich diese IP-Adressen häufig. Es ist nicht möglich, eine endgültige Liste aller IP-Adressen für die Amazon-SES-Endpunkte bereitzustellen. Es wird empfohlen, die amazonses.com-Domäne auf die Whitelist zu setzen, anstatt einzelne IP-Adressen auf die Whitelist zu setzen.

Von Amazon SES zurückgegebene SMTP-Antwortcodes

Dieser Abschnitt enthält eine Liste der von der Amazon-SES-SMTP-Schnittstelle zurückgegebenen Antwortcodes.

SMTP-Anforderungen, die 400-Fehler erhalten, sollten Sie wiederholen. Wir empfehlen, dass Sie ein System implementieren, das Anforderungen mit progressiv verlängerten Wartezeiten wiederholt (z. B. 5 Sekunden warten bis zur Wiederholung, dann 10 Sekunden und dann 30 Sekunden warten). Wenn die dritte Wiederholung nicht erfolgreich war, 20 Minuten warten und anschließend den Vorgang wiederholen. Ein Beispiel für eine Implementierung, die eine exponentielle Wiederholungsrichtlinie verwendet, finden Sie im Artikel Umgang mit dem Fehler „Drosselung- Maximale Senderate überschritten“ im AWS zu Messaging und Targeting.

Anmerkung

AWS-SDKs implementieren automatisch eine Logik für Wiederholversuche, die aber anstelle von SMTP die HTTPS-Schnittstelle verwenden.

Wenn Sie einen 500-Fehler erhalten, müssen Sie Ihre Anforderung überarbeiten ein Problem beheben, bevor Sie die Anforderung erneut senden. Wenn beispielsweise Ihre Anmeldeinformationen für die AWS-Authentifizierung ungültig sind, müssen Sie Ihre Anwendung dahingehend aktualisieren, dass die richtigen Anmeldeinformationen verwendet werden, bevor Sie die Anforderung erneut senden.

Beschreibung Antwortcode Weitere Informationen

Authentifizierung erfolgreich

235 Authentication successful

Ihr SMTP-Client hat erfolgreich eine Verbindung mit dem SMTP-Server hergestellt und sich angemeldet.

Erfolgreiche Zustellung

250 Ok MessageID

MessageID ist eine eindeutige Zeichenfolge, die Amazon SES zur eindeutigen Identifizierung einer Nachricht verwendet.

Service nicht verfügbar

421 Too many concurrent SMTP connections

Amazon SES kann die Anforderung nicht verarbeiten, weil zurzeit zu viele Verbindungen mit dem SMTP-Server hergestellt sind.

Lokaler Verarbeitungsfehler

451 Temporary service failure

Amazon SES konnte die Anforderung nicht verarbeiten. Mit der Anforderung gibt es möglicherweise Probleme, die die Verarbeitung verhindern.

Zeitüberschreitung

451 Timeout waiting for data from client

Es ist zu viel Zeit zwischen den Anfragen verstrichen, sodass der SMTP-Server die Verbindung beendet hat.

Sendequote pro Tag überschritten

454 Throttling failure: Daily message quota exceeded

Die in Amazon SES zulässige maximale Anzahl von E-Mails, die Sie in einem Zeitraum von 24 Stunden senden können, wurde überschritten. Weitere Informationen finden Sie unter Verwalten Ihrer Amazon SES Versandkontingente.

Maximale Senderate überschritten

454 Throttling failure: Maximum sending rate exceeded

Die in Amazon SES zulässige maximale Anzahl von E-Mails, die Sie pro Sekunde senden können, wurde überschritten. Weitere Informationen finden Sie unter Verwalten Ihrer Amazon SES Versandkontingente.

Amazon-SES-Problem bei der Validierung von SMTP-Anmeldeinformationen

454 Temporary authentication failure

Zu den Problemen, die dazu führen, dass dieses Problem auftritt, gehören unter anderem:

  • Es liegt ein Problem mit der Verschlüsselung zwischen Ihrer E-Mail-Anwendung und Amazon SES vor. Beachten Sie, dass Sie eine verschlüsselte Verbindung verwenden müssen, wenn Sie eine Verbindung mit Amazon SES herstellen. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit dem Amazon-SES-SMTP-Endpunkt.

  • In Amazon SES könnte ein Problem aufgetreten sein. Überprüfen Sie das AWS Service Health Dashboard auf Aktualisierungen.

Probleme mit dem Eingang der Anforderung

454 Temporary service failure

Amazon SES konnte die Anforderung nicht erfolgreich empfangen. Demzufolge wurde die Nachricht nicht gesendet.

Falsche Anmeldeinformationen

530 Authentication required

Die Anwendung, die Sie zum Senden von E-Mails verwenden, hat beim Verbindungsaufbau keine Authentifizierung bei der Amazon-SES-SMTP-Schnittstelle durchgeführt.

Ungültige Anmeldeinformationen für die Authentifizierung

535 Authentication Credentials Invalid

Die Anwendung, die Sie zum Senden von E-Mails verwenden, hat für Amazon SES keine gültigen SMTP-Anmeldeinformationen bereitgestellt. Beachten Sie, dass Ihre Anmeldeinformationen für SMTP und AWS nicht identisch sind. Weitere Informationen finden Sie unter Abrufen Ihrer Amazon-SES-SMTP-Anmeldeinformationen.

Konto hat Amazon SES nicht abonniert

535 Account not subscribed to SES

Das AWS-Konto, dem die SMTP-Anmeldeinformationen gehören, ist für Amazon SES nicht registriert.

Nachricht ist zu lang

552 Message is too long.

Die Nachricht, die Sie senden möchten, ist größer als die Maximalgröße für Nachrichten.

Konto hat Amazon SES nicht abonniert

535 Account not subscribed to SES

Das AWS-Konto, dem die SMTP-Anmeldeinformationen gehören, ist für Amazon SES nicht registriert.

„MAIL FROM“-Syntaxfehler

553 <email-address> Invalid email address

Es gibt einen Syntaxfehler im „MAIL FROM“-Teil der SMTP-Nachricht. Bitte vergewissern Sie sich, dass Sie das richtige Format befolgen und vergessen Sie nicht, die E-Mail-Adresse in „<>“ einzuschließen.

„RCPT TO“-Syntaxfehler

553 <email-address> address unknown

Es gibt einen Syntaxfehler im „RCPT TO“-Teil der SMTP-Nachricht. Bitte vergewissern Sie sich, dass Sie das richtige Format befolgen und vergessen Sie nicht, die E-Mail-Adresse in „<>“ einschließen.

Benutzer zum Aufrufen des Amazon-SES-SMTP-Endpunkts nicht autorisiert

554 Access denied: User UserARN is not authorized to perform ses:SendRawEmail on resource IdentityARN

Die AWS Identity and Access Management-(IAM)-Richtlinie oder die Amazon-SES-Richtlinie für die Sendeautorisierung des Benutzers, der Eigentümer der SMTP-Anmeldeinformationen ist, hat keine Erlaubnis, den Amazon-SES-SMTP-Endpunkt aufzurufen.

Nicht verifizierte E-Mail-Adresse

554 Message rejected: Email address is not verified. The following identities failed the check in region region: identity0, identity1, identity2

Sie versuchen, eine E-Mail von einer E-Mail-Adresse oder Domäne zu senden, die nicht für das Senden von E-Mails von Ihrem Amazon-SES-Konto verifiziert wurde. Dieser Fehler kann für folgende Adressen gelten: „From“, „Source“, „Sender“ oder „Return-Path“. Wenn sich Ihr Konto noch in der Sandbox befindet, müssen Sie alle E-Mail-Adressen aller Empfänger verifizieren. (Dies gilt nicht für Empfänger, die vom Amazon-SES-Postfachsimulator bereitgestellt werden.) Sofern Amazon SES nicht alle bei der Verifizierungsüberprüfung fehlgeschlagenen Identitäten anzeigen kann, endet die Fehlermeldung mit drei Punkten (...).

Anmerkung

Amazon SES verfügt über Endpunkte in mehreren AWS-Regionen. Die Verifizierung des Status von E-Mail-Adressen erfolgt für jede AWS-Region separat. Sie müssen den Verifizierungsprozess für jeden Sender in der AWS-Regionen-Region durchführen, die Sie verwenden möchten.