Testen Sie Ihre Verbindung zur SES SMTP Amazon-Schnittstelle über die Befehlszeile - Amazon Simple Email Service

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.

Testen Sie Ihre Verbindung zur SES SMTP Amazon-Schnittstelle über die Befehlszeile

Sie können die in diesem Abschnitt beschriebenen Methoden von der Befehlszeile aus verwenden, um Ihre Verbindung zum SES SMTP Amazon-Endpunkt zu testen, Ihre SMTP Anmeldeinformationen zu überprüfen und Verbindungsprobleme zu beheben. Diese Verfahren verwenden Tools und Bibliotheken, die in den gängigsten Betriebssystemen enthalten sind.

Weitere Informationen zur Behebung von SMTP Verbindungsproblemen finden Sie unterSMTP-Probleme bei Amazon SES.

Voraussetzungen

Wenn Sie eine Verbindung zur SES SMTP Amazon-Schnittstelle herstellen, müssen Sie eine Reihe von SMTP Anmeldeinformationen angeben. Diese SMTP Anmeldeinformationen unterscheiden sich von Ihren AWS Standardanmeldedaten. Die beiden Arten von Anmeldeinformationen sind nicht austauschbar. Weitere Informationen zum Abrufen Ihrer SMTP Anmeldeinformationen finden Sie unterAbrufen von SES SMTP Amazon-Anmeldeinformationen.

Testen Sie Ihre Verbindung zur SES SMTP Amazon-Schnittstelle

Sie können die Befehlszeile verwenden, um Ihre Verbindung zur SES SMTP Amazon-Schnittstelle zu testen, ohne sich zu authentifizieren oder Nachrichten zu senden. Dieses Verfahren ist nützlich für die Behebung grundlegender Verbindungsprobleme. Falls Ihre Testverbindung fehlschlägt, finden Sie weitere Informationen unter SMTP-Probleme.

Dieser Abschnitt enthält Verfahren zum Testen Ihrer Verbindung sowohl mit Open SSL (das in den meisten Linux-, macOS- und Unix-Distributionen enthalten ist und auch für Windows verfügbar ist) als auch mit dem Test-NetConnection Cmdlet in PowerShell (das in den neuesten Versionen von Windows enthalten ist).

Linux, macOS, or Unix

Es gibt zwei Möglichkeiten, mit Open eine Verbindung zur SES SMTP Amazon-Schnittstelle herzustellenSSL: explizit SSL über Port 587 oder implizit SSL über Port 465.

Um eine Verbindung zur SMTP Schnittstelle mithilfe von Explicit herzustellen SSL
  • Geben Sie in der Befehlszeile den folgenden Befehl ein, um eine Verbindung zum SES SMTP Amazon-Server herzustellen:

    openssl s_client -crlf -quiet -starttls smtp -connect email-smtp.us-west-2.amazonaws.com:587

    Ersetzen Sie im vorherigen Befehl email-smtp.us-west-2.amazonaws.com mit dem URL des SES SMTP Amazon-Endpunkts für Ihre AWS Region. Weitere Informationen finden Sie unter Regionen und Amazon SES.

    Wenn die Verbindung erfolgreich hergestellt wurde, sehen Sie in etwa die folgende Ausgabe:

    depth=2 C = US, O = Amazon, CN = Amazon Root CA 1 verify return:1 depth=1 C = US, O = Amazon, OU = Server CA 1B, CN = Amazon verify return:1 depth=0 CN = email-smtp.us-west-2.amazonaws.com verify return:1 250 Ok

    Die Verbindung wird nach ca. 10 Sekunden Inaktivität automatisch geschlossen.

Alternativ können Sie implizit verwenden, SSL um über Port 465 eine Verbindung zur SMTP Schnittstelle herzustellen.

Um mit implizit eine Verbindung zur SMTP Schnittstelle herzustellen SSL
  • Geben Sie in der Befehlszeile den folgenden Befehl ein, um eine Verbindung zum SES SMTP Amazon-Server herzustellen:

    openssl s_client -crlf -quiet -connect email-smtp.us-west-2.amazonaws.com:465

    Ersetzen Sie im vorherigen Befehl email-smtp.us-west-2.amazonaws.com mit dem URL des SES SMTP Amazon-Endpunkts für Ihre AWS Region. Weitere Informationen finden Sie unter Regionen und Amazon SES.

    Wenn die Verbindung erfolgreich hergestellt wurde, sehen Sie in etwa die folgende Ausgabe:

    depth=2 C = US, O = Amazon, CN = Amazon Root CA 1 verify return:1 depth=1 C = US, O = Amazon, OU = Server CA 1B, CN = Amazon verify return:1 depth=0 CN = email-smtp.us-west-2.amazonaws.com verify return:1 220 email-smtp.amazonaws.com ESMTP SimpleEmailService-d-VCSHDP1YZ A1b2C3d4E5f6G7h8I9j0

    Die Verbindung wird nach ca. 10 Sekunden Inaktivität automatisch geschlossen.

PowerShell

Sie können das NetConnectionTest-Cmdlet in verwenden, PowerShell um eine Verbindung zum SES SMTP Amazon-Server herzustellen.

Anmerkung

Das Test-NetConnection Cmdlet kann ermitteln, ob Ihr Computer eine Verbindung zum SES SMTP Amazon-Endpunkt herstellen kann. Es testet jedoch nicht, ob Ihr Computer eine implizite oder explizite SSL Verbindung zum Endpunkt herstellen kann. SMTP Um eine SSL Verbindung zu testen, können Sie Open SSL for Windows installieren, um eine Test-E-Mail zu senden.

So stellen Sie mit dem Test-NetConnection Cmdlet eine Verbindung zur SMTP Schnittstelle her
  • Geben Sie PowerShell unter den folgenden Befehl ein, um eine Verbindung zum SES SMTP Amazon-Server herzustellen:

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

    Ersetzen Sie im vorherigen Befehl email-smtp.us-west-2.amazonaws.com mit dem URL des SES SMTP Amazon-Endpunkts für Ihre AWS Region und ersetzen 587 mit der Portnummer. Weitere Informationen zu regionalen Endpunkten bei Amazon finden Sie SES unterRegionen und Amazon SES.

    Wenn die Verbindung erfolgreich war, sehen Sie eine Ausgabe, die dem folgenden Beispiel ä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

Verwenden der Befehlszeile zum Senden von E-Mails über die SES SMTP Amazon-Oberfläche

Sie können auch die Befehlszeile verwenden, um Nachrichten über die SES SMTP Amazon-Oberfläche zu senden. Dieses Verfahren ist nützlich, um SMTP Anmeldeinformationen zu testen und um zu testen, ob bestimmte Empfänger Nachrichten empfangen können, die Sie über Amazon sendenSES.

Linux, macOS, or Unix

Wenn ein E-Mail-Absender eine Verbindung zu einem SMTP Server herstellt, gibt der Client eine Reihe von Standardanfragen aus, und der Server beantwortet jede Anfrage mit einer Standardantwort. Diese Reihe von Anfragen und Antworten wird als SMTPKonversation bezeichnet. Wenn Sie über Open eine Verbindung zum SES SMTP Amazon-Server herstellenSSL, erwartet der Server, dass eine SMTP Konversation stattfindet.

Wenn Sie Open verwendenSSL, um eine Verbindung zur SMTP Schnittstelle herzustellen, müssen Sie Ihre SMTP Anmeldeinformationen mit der Base64-Kodierung verschlüsseln. Dieser Abschnitt enthält Verfahren zum Kodieren Ihrer Anmeldeinformationen mit base64.

Um eine E-Mail über die Befehlszeile über die Schnittstelle zu senden SMTP
  1. Geben Sie in der Befehlszeile Folgendes ein und ersetzen Sie email-smtp.us-west-2.amazonaws.com mit dem URL des SES SMTP Amazon-Endpunkts für Ihren AWS-Region. Weitere Informationen finden Sie unterRegionen und Amazon SES. :

    #!/bin/bash # Prompt user to provide following information read -p "Configuration set: " CONFIGSET read -p "Enter SMTP username: " SMTPUsername read -p "Enter SMTP password: " SMTPPassword read -p "Sender email address: " MAILFROM read -p "Receiver email address: " RCPT read -p "Email subject: " SUBJECT read -p "Message to send: " DATA echo # Encode SMTP username and password using base64 EncodedSMTPUsername=$(echo -n "$SMTPUsername" | openssl enc -base64) EncodedSMTPPassword=$(echo -n "$SMTPPassword" | openssl enc -base64) # Construct the email Email="EHLO example.com AUTH LOGIN $EncodedSMTPUsername $EncodedSMTPPassword MAIL FROM: $MAILFROM RCPT TO: $RCPT DATA X-SES-CONFIGURATION-SET: $CONFIGSET From: $MAILFROM To: $RCPT Subject: $SUBJECT $DATA . QUIT" echo "$Email" | openssl s_client -crlf -quiet -starttls smtp -connect email-smtp.us-west-2.amazonaws.com:587
  2. Geben Sie an der Eingabeaufforderung für jede Variable Ihre Werte ein.

    • Um implizit SSL über Port 465 zu senden, verwenden Sie:

      openssl s_client -crlf -quiet -connect email-smtp.us-west-2.amazonaws.com:465

    Wenn die Nachricht von Amazon akzeptiert wurdeSES, sehen Sie eine Ausgabe, die dem folgenden Beispiel ähnelt:

    250 Ok 01010160d7de98d8-21e57d9a-JZho-416c-bbe1-8ebaAexample-000000

    Die sich an 250 Ok anschließende Abfolge von Zahlen und Text, ist die Nachrichten-ID der E-Mail.

    Anmerkung

    Die Verbindung wird nach ca. 10 Sekunden Inaktivität automatisch geschlossen.

PowerShell

Sie können Net.Mail verwenden. SmtpClientKlasse zum Senden von E-Mails unter Verwendung von Explizit SSL über Port 587.

Anmerkung

Die Net.Mail.SmtpClient-Klasse ist offiziell veraltet, und Microsoft empfiehlt, dass Sie Bibliotheken von Drittanbietern verwenden. Dieser Code ist nur für Testzwecke gedacht und sollte nicht für Produktionsarbeitslasten verwendet werden.

Um eine E-Mail PowerShell mit Explicit zu senden SSL
  1. Erstellen Sie in einem Texteditor eine neue Datei. Fügen Sie folgenden Code in die Datei ein:

    function SendEmail($Server, $Port, $Sender, $Recipient, $Subject, $Body) { $Credentials = [Net.NetworkCredential](Get-Credential) $SMTPClient = New-Object Net.Mail.SmtpClient($Server, $Port) $SMTPClient.EnableSsl = $true $SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Credentials.Username, $Credentials.Password); try { Write-Output "Sending message..." $SMTPClient.Send($Sender, $Recipient, $Subject, $Body) Write-Output "Message successfully sent to $($Recipient)" } catch [System.Exception] { Write-Output "An error occurred:" Write-Error $_ } } function SendTestEmail(){ $Server = "email-smtp.us-west-2.amazonaws.com" $Port = 587 $Subject = "Test email sent from Amazon SES" $Body = "This message was sent from Amazon SES using PowerShell (explicit SSL, port 587)." $Sender = "sender@example.com" $Recipient = "recipient@example.com" SendEmail $Server $Port $Sender $Recipient $Subject $Body } SendTestEmail

    Wenn Sie fertig sind, speichern Sie die Datei unter SendEmail.ps1.

  2. Nehmen Sie die folgenden Änderungen an der im vorherigen Schritt erstellten Datei vor:

    • Ersetzen sender@example.com mit der E-Mail-Adresse, von der Sie die Nachricht senden möchten.

    • Ersetzen recipient@example.com mit der E-Mail-Adresse, an die Sie die Nachricht senden möchten.

    • Ersetzen email-smtp.us-west-2.amazonaws.com mit dem URL des SES SMTP Amazon-Endpunkts für Ihre AWS Region. Weitere Informationen finden Sie unter Regionen und Amazon SES.

  3. Geben Sie in PowerShell den folgenden Befehl ein:

    .\path\to\SendEmail.ps1

    Ersetzen Sie im vorherigen Befehl path\to\SendEmail.ps1 durch den Pfad zu der Datei, die Sie in Schritt 1 erstellt haben.

  4. Wenn Sie dazu aufgefordert werden, geben Sie Ihren SMTP Benutzernamen und Ihr Passwort ein.

Alternativ können Sie das System.Web.Mail verwenden. SmtpMailKlasse zum impliziten Senden von E-Mails über Port 465SSL.

Anmerkung

Die System.Web.Mail.SmtpMail-Klasse ist offiziell veraltet, und Microsoft empfiehlt, dass Sie Bibliotheken von Drittanbietern verwenden. Dieser Code ist nur für Testzwecke gedacht und sollte nicht für Produktionsarbeitslasten verwendet werden.

Um eine E-Mail PowerShell mit implizit zu senden SSL
  1. Erstellen Sie in einem Texteditor eine neue Datei. Fügen Sie folgenden Code in die Datei ein:

    [System.Reflection.Assembly]::LoadWithPartialName("System.Web") > $null function SendEmail($Server, $Port, $Sender, $Recipient, $Subject, $Body) { $Credentials = [Net.NetworkCredential](Get-Credential) $mail = New-Object System.Web.Mail.MailMessage $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserver", $Server) $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", $Port) $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", $true) $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", $Credentials.UserName) $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", $Credentials.Password) $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout", $timeout / 1000) $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusing", 2) $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", 1) $mail.From = $Sender $mail.To = $Recipient $mail.Subject = $Subject $mail.Body = $Body try { Write-Output "Sending message..." [System.Web.Mail.SmtpMail]::Send($mail) Write-Output "Message successfully sent to $($Recipient)" } catch [System.Exception] { Write-Output "An error occurred:" Write-Error $_ } } function SendTestEmail(){ $Server = "email-smtp.us-west-2.amazonaws.com" $Port = 465 $Subject = "Test email sent from Amazon SES" $Body = "This message was sent from Amazon SES using PowerShell (implicit SSL, port 465)." $Sender = "sender@example.com" $Recipient = "recipient@example.com" SendEmail $Server $Port $Sender $Recipient $Subject $Body } SendTestEmail

    Wenn Sie fertig sind, speichern Sie die Datei unter SendEmail.ps1.

  2. Nehmen Sie die folgenden Änderungen an der im vorherigen Schritt erstellten Datei vor:

    • Ersetzen sender@example.com mit der E-Mail-Adresse, von der Sie die Nachricht senden möchten.

    • Ersetzen recipient@example.com mit der E-Mail-Adresse, an die Sie die Nachricht senden möchten.

    • Ersetzen email-smtp.us-west-2.amazonaws.com mit dem URL des SES SMTP Amazon-Endpunkts für Ihre AWS Region. Weitere Informationen finden Sie unter Regionen und Amazon SES.

  3. Geben Sie in PowerShell den folgenden Befehl ein:

    .\path\to\SendEmail.ps1

    Ersetzen Sie im vorherigen Befehl path\to\SendEmail.ps1 durch den Pfad zu der Datei, die Sie in Schritt 1 erstellt haben.

  4. Wenn Sie dazu aufgefordert werden, geben Sie Ihren SMTP Benutzernamen und Ihr Passwort ein.