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
:587Ersetzen 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
:465Ersetzen 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
-ComputerNameemail-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 ersetzen587
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
-
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 -
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. SmtpClient
Klasse 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
-
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 } SendTestEmailWenn Sie fertig sind, speichern Sie die Datei unter
SendEmail.ps1
. -
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.
-
-
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. -
Wenn Sie dazu aufgefordert werden, geben Sie Ihren SMTP Benutzernamen und Ihr Passwort ein.
Alternativ können Sie das System.Web.Mail verwenden. SmtpMail
Klasse 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
-
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 } SendTestEmailWenn Sie fertig sind, speichern Sie die Datei unter
SendEmail.ps1
. -
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.
-
-
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. -
Wenn Sie dazu aufgefordert werden, geben Sie Ihren SMTP Benutzernamen und Ihr Passwort ein.
-