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

Lesedauer: 4 Minute
0

Mein Amazon Simple Email Service (Amazon SES) SMTP-Protocol (Simple Mail Transfer) läuft ab. Wie behebe ich SMTP-Verbindungs- oder Timeout-Fehler mit Amazon SES?

Kurzbeschreibung

Timeout-Verbindungen deuten in der Regel darauf hin, dass Ihr Client keine TCP-Verbindung zum öffentlichen Amazon SES-Endpunkt herstellen kann. Um SMTP-Verbindungs- oder Timeout-Fehler mit Amazon SES zu lösen, beheben Sie zunächst die TCP-Verbindungsprobleme der Anwendung. Wenn die TCP-Verbindung erfolgreich ist, beheben Sie die Probleme mit den SSL-/TLS-Verhandlungen.

Wichtig: Standardmäßig schränkt Amazon Elastic Compute Cloud (Amazon EC2) den ausgehenden Datenverkehr von Amazon Virtual Private Cloud (Amazon VPC) auf Port 25 für alle Amazon EC2-Instances ein. Für Anwendungen, die Datenverkehr auf dem SMTP-Port 25 benötigen, können Sie beantragen, dass diese Einschränkung aufgehoben wird.

Behebung

Beheben Sie Probleme mit der TCP-Verbindung der Anwendung

1.Führen Sie die folgenden Befehle telnet, netcat (nc) oder Test-NetConnection aus. Ersetzen Sie email-smtp.us-east-1.amazonaws.com durch den Amazon SES-SMTP-Endpunkt, den Sie verwenden:

telnet email-smtp.us-east-1.amazonaws.com 587
telnet email-smtp.us-east-1.amazonaws.com 25
telnet email-smtp.us-east-1.amazonaws.com 465

nc -vz email-smtp.us-east-1.amazonaws.com 587
nc -vz email-smtp.us-east-1.amazonaws.com 25
nc -vz email-smtp.us-east-1.amazonaws.com 465

-oder-

Führen Sie in PowerShell den folgenden Befehl aus, um eine Verbindung zum Amazon SES-SMTP-Server herzustellen:

Test-NetConnection -Port 587 -ComputerName email-smtp.us-west-2.amazonaws.com

2.Notieren Sie sich die Ausgabe. Wenn die Verbindung erfolgreich ist, fahren Sie mit dem Abschnitt zur Fehlerbehebung bei SSL/TLS-Verhandlungen fort. Wenn die Verbindung nicht erfolgreich ist, fahren Sie mit Schritt 3 fort.

Erfolgreiche Verbindung

Der Telnet-Befehl gibt eine Ausgabe zurück, die Folgendem ähnelt:

Trying 35.170.126.22...
Connected to email-smtp.us-east-1.amazonaws.com.
Escape character is '^]'.
220 email-smtp.amazonaws.com ESMTP SimpleEmailService-d-A12BCD3EF example0mJncW410pSau

Der PowerShell-Befehl gibt eine Ausgabe zurück, die Folgendem ähnelt:

ComputerName     : email-smtp.us-west-2.amazonaws.com
RemoteAddress    : 198.51.100.126
RemotePort       : 587
InterfaceAlias   : Ethernet
SourceAddress    : 203.0.113.46
TcpTestSucceeded : True

Erfolglose Verbindung (Timeout)

Der Telnet-Befehl gibt eine Ausgabe zurück, die Folgendem ähnelt:

Trying 18.232.32.150...
telnet: connect to address 18.232.32.150: Connection timed out

Der PowerShell-Befehl gibt eine Ausgabe zurück, die Folgendem ähnelt:

WARNING: Ping to 52.39.11.136 failed with status: TimedOut

ComputerName           : email-smtp.us-west-2.amazonaws.com
RemoteAddress          : 35.155.47.104
RemotePort             : 587
InterfaceAlias         : Ethernet 2
SourceAddress          : 10.0.0.140
PingSucceeded          : False
PingReplyDetails (RTT) : 0 ms
TcpTestSucceeded       : False

3.Vergewissern Sie sich bei erfolglosen Verbindungen, dass Ihre lokalen Firewall-Regeln, Routen und Zugriffssteuerungslisten (ACLs) den Datenverkehr auf dem von Ihnen verwendeten SMTP-Port zulassen. Vergewissern Sie sich außerdem, dass Ihre sendende Anwendung Zugriff auf das Internet hat.

Wenn Sie beispielsweise eine EC2-Instance verwenden, um E-Mails zu senden und eine Verbindung zum SMTP-Endpunkt herzustellen, überprüfen Sie Folgendes:

Beheben Sie Probleme bei SSL-/TLS-Verhandlungen

Wenn Ihre TCP-Verbindung erfolgreich ist, Sie aber immer noch Verbindungs- oder Timeout-Probleme haben, überprüfen Sie, ob es Probleme mit dem Protokoll SSL/TLS gibt.

1.Führen Sie von einer EC2-Linux-Instance aus den Befehl openssl aus. Informationen zu Amazon EC2-Windows-Instances finden Sie unter Testen Sie Ihre Verbindung zur Amazon SES-SMTP-Schnittstelle mithilfe der Befehlszeile und wählen Sie die Registerkarte PowerShell.

openssl s_client -crlf -connect email-smtp.us-east-1.amazonaws.com:465
openssl s_client -crlf -starttls smtp -connect email-smtp.us-east-1.amazonaws.com:587

Hinweis: Ersetzen Sie email-smtp.us-east-1.amazonaws.com durch den Amazon SES-SMTP-Endpunkt, den Sie verwenden. Das Ändern des Standorts der Standard-Zertifizierungsstelle (CA) kann zu Problemen führen, wenn Sie die vorherigen Befehle ausführen. Stellen Sie bei der Installation von OpenSSL sicher, dass Sie den Speicherort der Standard-CA-Bundledatei angeben.

2.Notieren Sie sich die Ausgabe. Die erwarteten Antworten sind SMTP 220 und SMTP 250.

3.Wenn Sie nicht die erwartete Ausgabe erhalten, überprüfen Sie Folgendes:

  • Stellen Sie sicher, dass der SSL/TLS-Zertifikatsspeicher korrekt konfiguriert ist.
  • Vergewissern Sie sich, dass Ihre sendende Anwendung den richtigen Pfad zum Zertifikat nutzt.
  • Stellen Sie sicher, dass das Amazon SES-Zertifikat auf Ihrem Server installiert ist.

Hinweis: Sie können testen, ob die richtigen Zertifikate installiert sind. Genaueres finden Sie unter Über die Amazon Trust Services-Migration und im Abschnitt Über die Zertifikate.


Weitere Informationen

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