Verifica della connessione all'SESSMTPinterfaccia Amazon utilizzando la riga di comando - Amazon Simple Email Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Verifica della connessione all'SESSMTPinterfaccia Amazon utilizzando la riga di comando

Puoi utilizzare i metodi descritti in questa sezione dalla riga di comando per testare la tua connessione all'SESSMTPendpoint Amazon, convalidare SMTP le tue credenziali e risolvere i problemi di connessione. Queste procedure utilizzano strumenti e librerie inclusi nella maggior parte dei sistemi operativi più comuni.

Per ulteriori informazioni sulla risoluzione dei problemi SMTP di connessione, consulta. Problemi relativi a SMTP in Amazon SES

Prerequisiti

Quando ti connetti all'SESSMTPinterfaccia Amazon, devi fornire un set di SMTP credenziali. Queste SMTP credenziali sono diverse dalle tue credenziali standard AWS . I due tipi di credenziali non sono intercambiabili. Per ulteriori informazioni su come ottenere le SMTP credenziali, vedere. Ottenere le SES SMTP credenziali Amazon

Verifica della connessione all'SESSMTPinterfaccia Amazon

Puoi utilizzare la riga di comando per testare la tua connessione all'SESSMTPinterfaccia Amazon senza autenticarti o inviare messaggi. Questa procedura è utile per la risoluzione dei problemi di connettività di base. Se la connessione di prova non riesce, consulta Problemi relativi a SMTP.

Questa sezione include le procedure per testare la connessione utilizzando sia Open SSL (incluso nella maggior parte delle distribuzioni Linux, macOS e Unix ed è disponibile anche per Windows) sia il Test-NetConnection cmdlet in PowerShell (incluso nelle versioni più recenti di Windows).

Linux, macOS, or Unix

Esistono due modi per connettersi all'SESSMTPinterfaccia Amazon con OpenSSL: utilizzando una modalità esplicita SSL sulla porta 587 o una connessione implicita SSL sulla porta 465.

Per connettersi all'interfaccia tramite linguaggio esplicito SMTP SSL
  • Nella riga di comando, inserisci il seguente comando per connetterti al SES SMTP server Amazon:

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

    Nel comando precedente, sostituisci email-smtp.us-west-2.amazonaws.com con URL l'SESSMTPendpoint Amazon della tua AWS regione. Per ulteriori informazioni, consulta Regioni e Amazon SES.

    Se la connessione è avvenuta correttamente, viene visualizzato un output simile al seguente:

    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

    La connessione si chiude automaticamente dopo circa 10 secondi di inattività.

In alternativa, puoi utilizzare implicit SSL per connetterti all'SMTPinterfaccia tramite la porta 465.

Per connettersi all'SMTPinterfaccia tramite modalità implicita SSL
  • Nella riga di comando, inserisci il seguente comando per connetterti al SES SMTP server Amazon:

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

    Nel comando precedente, sostituisci email-smtp.us-west-2.amazonaws.com con URL l'SESSMTPendpoint Amazon della tua AWS regione. Per ulteriori informazioni, consulta Regioni e Amazon SES.

    Se la connessione è avvenuta correttamente, viene visualizzato un output simile al seguente:

    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

    La connessione si chiude automaticamente dopo circa 10 secondi di inattività.

PowerShell

È possibile utilizzare il NetConnection cmdlet Test- PowerShell per connettersi al server Amazon SESSMTP.

Nota

Il Test-NetConnection cmdlet può determinare se il computer è in grado di connettersi all'endpoint Amazon SESSMTP. Tuttavia, non verifica se il computer è in grado di stabilire una connessione implicita o SSL esplicita all'endpoint. SMTP Per testare una SSL connessione, puoi installare Open SSL for Windows per inviare un'e-mail di prova.

Per connettersi all'SMTPinterfaccia utilizzando il Test-NetConnection cmdlet
  • Nel PowerShell, inserisci il seguente comando per connetterti al SES SMTP server Amazon:

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

    Nel comando precedente, sostituisci email-smtp.us-west-2.amazonaws.com con l'SESSMTPendpoint Amazon URL della tua AWS regione e sostituisci 587 con il numero di porta. Per ulteriori informazioni sugli endpoint regionali in AmazonSES, consultaRegioni e Amazon SES.

    Se la connessione è avvenuta correttamente, viene visualizzato un output simile al seguente:

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

Utilizzo della riga di comando per inviare e-mail tramite l'SESSMTPinterfaccia Amazon

Puoi anche utilizzare la riga di comando per inviare messaggi utilizzando l'SESSMTPinterfaccia Amazon. Questa procedura è utile per testare SMTP le credenziali e per verificare la capacità di destinatari specifici di ricevere messaggi inviati tramite Amazon. SES

Linux, macOS, or Unix

Quando un mittente di posta elettronica si connette a un SMTP server, il client invia un set standard di richieste e il server risponde a ciascuna richiesta con una risposta standard. Questa serie di richieste e risposte viene chiamata conversazione. SMTP Quando ti connetti al SES SMTP server Amazon tramite OpenSSL, il server si aspetta che avvenga una SMTP conversazione.

Quando usi Open SSL per connetterti all'SMTPinterfaccia, devi codificare le tue SMTP credenziali utilizzando la codifica base64. Questa sezione include le procedure per la codifica delle credenziali utilizzando base64.

Per inviare un'e-mail dalla riga di comando utilizzando l'interfaccia SMTP
  1. Immettere quanto segue nella riga di comando e sostituire email-smtp.us-west-2.amazonaws.com con URL l'SESSMTPendpoint Amazon per te Regione AWS. Per ulteriori informazioni, consultaRegioni e 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. Quando richiesto per ogni variabile, inserisci i tuoi valori.

    • Per inviare utilizzando la modalità implicita SSL sulla porta 465, usa:

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

    Se il messaggio è stato accettato da AmazonSES, viene visualizzato un output simile al seguente esempio:

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

    La stringa di numeri e di testo che segue 250 Ok corrisponde all'ID messaggio dell'e-mail.

    Nota

    La connessione si chiude automaticamente dopo circa 10 secondi di inattività.

PowerShell

Puoi usare Net.Mail. SmtpClientclasse per inviare email usando Explicit SSL sulla porta 587.

Nota

La classe Net.Mail.SmtpClient è ufficialmente obsoleta e Microsoft consiglia di utilizzare le librerie di terze parti. Questo codice è destinato solo a scopi di test e non deve essere utilizzato per carichi di lavoro di produzione.

Per inviare un'e-mail tramite explicit PowerShell SSL
  1. In un editor di testo, crea un nuovo file. Incolla il codice seguente nel file:

    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

    Al termine, salva il file come SendEmail.ps1.

  2. Apporta le modifiche seguenti al file creato nella fase precedente:

    • Replace (Sostituisci) sender@example.com con l'indirizzo email da cui desideri inviare il messaggio.

    • Replace (Sostituisci) recipient@example.com con l'indirizzo e-mail a cui desideri inviare il messaggio.

    • Replace (Sostituisci) email-smtp.us-west-2.amazonaws.com con URL l'SESSMTPendpoint Amazon della tua AWS regione. Per ulteriori informazioni, consulta Regioni e Amazon SES.

  3. In PowerShell, inserisci il seguente comando:

    .\path\to\SendEmail.ps1

    Nel comando precedente, sostituisci path\to\SendEmail.ps1 con il percorso del file creato nel passaggio 1.

  4. Quando richiesto, inserisci il nome SMTP utente e la password.

In alternativa, è possibile utilizzare System.Web.Mail. SmtpMailclasse per inviare e-mail utilizzando implicitamente SSL la porta 465.

Nota

La classe System.Web.Mail.SmtpMail è ufficialmente obsoleta e Microsoft consiglia di utilizzare le librerie di terze parti. Questo codice è destinato solo a scopi di test e non deve essere utilizzato per carichi di lavoro di produzione.

Per inviare un'e-mail tramite PowerShell uso implicito SSL
  1. In un editor di testo, crea un nuovo file. Incolla il codice seguente nel file:

    [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

    Al termine, salva il file come SendEmail.ps1.

  2. Apporta le modifiche seguenti al file creato nella fase precedente:

    • Replace (Sostituisci) sender@example.com con l'indirizzo e-mail da cui si desidera inviare il messaggio.

    • Replace (Sostituisci) recipient@example.com con l'indirizzo e-mail a cui desideri inviare il messaggio.

    • Replace (Sostituisci) email-smtp.us-west-2.amazonaws.com con URL l'SESSMTPendpoint Amazon della tua AWS regione. Per ulteriori informazioni, consulta Regioni e Amazon SES.

  3. In PowerShell, inserisci il seguente comando:

    .\path\to\SendEmail.ps1

    Nel comando precedente, sostituisci path\to\SendEmail.ps1 con il percorso del file creato nel passaggio 1.

  4. Quando richiesto, inserisci il nome SMTP utente e la password.