Probar la conexión a la SES SMTP interfaz de Amazon mediante la línea de comandos - Amazon Simple Email Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Probar la conexión a la SES SMTP interfaz de Amazon mediante la línea de comandos

Puedes usar los métodos descritos en esta sección desde la línea de comandos para probar tu conexión al SES SMTP punto de conexión de Amazon, validar tus SMTP credenciales y solucionar problemas de conexión. Estos procedimientos utilizan herramientas y bibliotecas que se incluyen con los sistemas operativos más comunes.

Para obtener información adicional sobre la solución de problemas de SMTP conexión, consulteProblemas de SMTP de Amazon SES.

Requisitos previos

Cuando te conectas a la SES SMTP interfaz de Amazon, debes proporcionar un conjunto de SMTP credenciales. Estas SMTP credenciales son diferentes de AWS las credenciales estándar. Los dos tipos de credenciales no son intercambiables. Para obtener más información sobre cómo obtener sus SMTP credenciales, consulteObtención de SES SMTP credenciales de Amazon.

Probar la conexión a la SES SMTP interfaz de Amazon

Puedes usar la línea de comandos para probar tu conexión a la SES SMTP interfaz de Amazon sin autenticarte ni enviar ningún mensaje. Este procedimiento es útil para solucionar problemas de conectividad básicos. Si la conexión de prueba produce un error, consulte Problemas de SMTP.

En esta sección se incluyen procedimientos para probar la conexión mediante Open SSL (que se incluye en la mayoría de las distribuciones de Linux, macOS y Unix, y también está disponible para Windows) como el Test-NetConnection cmdlet in PowerShell (que se incluye en las versiones más recientes de Windows).

Linux, macOS, or Unix

Hay dos formas de conectarse a la SES SMTP interfaz de Amazon con OpenSSL: de forma explícita a SSL través del puerto 587 o de forma implícita a SSL través del puerto 465.

Para conectarse a la SMTP interfaz mediante explícito SSL
  • En la línea de comandos, introduce el siguiente comando para conectarte al SES SMTP servidor de Amazon:

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

    En el comando anterior, sustituya email-smtp.us-west-2.amazonaws.com con el SES SMTP punto URL de conexión de Amazon de tu AWS región. Para obtener más información, consulte Regiones y Amazon SES.

    Si la conexión se realiza correctamente, aparece un resultado similar al siguiente:

    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 conexión se cierra automáticamente después de unos 10 segundos de inactividad.

Como alternativa, puede utilizar el modo implícito SSL para conectarse a la SMTP interfaz a través del puerto 465.

Para conectarse a la SMTP interfaz mediante implícito SSL
  • En la línea de comandos, introduce el siguiente comando para conectarte al SES SMTP servidor de Amazon:

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

    En el comando anterior, sustituya email-smtp.us-west-2.amazonaws.com con el SES SMTP punto URL de conexión de Amazon de tu AWS región. Para obtener más información, consulte Regiones y Amazon SES.

    Si la conexión se realiza correctamente, aparece un resultado similar al siguiente:

    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 conexión se cierra automáticamente después de unos 10 segundos de inactividad.

PowerShell

Puede usar el NetConnection cmdlet Test- PowerShell para conectarse al servidor de Amazon SESSMTP.

nota

El Test-NetConnection cmdlet puede determinar si su equipo puede conectarse al punto de conexión de Amazon SESSMTP. Sin embargo, no comprueba si el ordenador puede establecer una SSL conexión implícita o explícita con el punto final. SMTP Para probar una SSL conexión, puede instalar Open SSL for Windows para enviar un correo electrónico de prueba.

Para conectarse a la SMTP interfaz mediante el Test-NetConnection cmdlet
  • En PowerShell, introduce el siguiente comando para conectarte al SES SMTP servidor de Amazon:

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

    En el comando anterior, sustituya email-smtp.us-west-2.amazonaws.com con el SES SMTP punto URL de conexión de Amazon de su AWS región y sustituya 587 con el número de puerto. Para obtener más información sobre los puntos de enlace regionales en AmazonSES, consulteRegiones y Amazon SES.

    Si la conexión se ha realizado correctamente, verá un resultado similar al siguiente ejemplo:

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

Uso de la línea de comandos para enviar correos electrónicos mediante la SES SMTP interfaz de Amazon

También puedes usar la línea de comandos para enviar mensajes mediante la SES SMTP interfaz de Amazon. Este procedimiento es útil para probar SMTP las credenciales y para probar la capacidad de destinatarios específicos para recibir los mensajes que envías a través de AmazonSES.

Linux, macOS, or Unix

Cuando un remitente de correo electrónico se conecta a un SMTP servidor, el cliente emite un conjunto estándar de solicitudes y el servidor responde a cada solicitud con una respuesta estándar. Esta serie de solicitudes y respuestas se denomina SMTPconversación. Cuando te conectas al SES SMTP servidor de Amazon mediante OpenSSL, el servidor espera que se produzca una SMTP conversación.

Cuando utilice Open SSL para conectarse a la SMTP interfaz, tendrá que codificar sus SMTP credenciales mediante la codificación base64. Esta sección incluye procedimientos para codificar sus credenciales en base64.

Para enviar un correo electrónico desde la línea de comandos mediante la interfaz SMTP
  1. Introduzca lo siguiente en la línea de comandos y reemplace email-smtp.us-west-2.amazonaws.com con el SES SMTP punto URL de conexión de Amazon para su Región de AWS. Para obtener más información, consulteRegiones y 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. En la solicitud de cada variable, introduzca sus valores.

    • Para enviar de forma implícita SSL a través del puerto 465, usa:

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

    Si Amazon ha aceptado el mensajeSES, verás un resultado parecido al siguiente ejemplo:

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

    La cadena de números y texto que sigue a 250 Ok es el ID de mensaje del correo electrónico.

    nota

    La conexión se cierra automáticamente después de unos 10 segundos de inactividad.

PowerShell

Puede utilizar el Net.Mail. SmtpClientclase para enviar correos electrónicos mediante explícito a través del puerto SSL 587.

nota

La clase Net.Mail.SmtpClient está oficialmente obsoleta y Microsoft recomienda que utilice bibliotecas de terceros. Este código se ha diseñado únicamente para fines de prueba y no debe usarse para cargas de trabajo de producción.

Para enviar un correo electrónico PowerShell mediante explícito SSL
  1. En un editor de texto, cree un nuevo archivo. Pegue el código siguiente en el archivo:

    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

    Cuando haya terminado, guarde el archivo como SendEmail.ps1.

  2. Realice los cambios siguientes en el archivo que creó en el paso anterior:

    • Reemplazar sender@example.com con la dirección de correo electrónico desde la que quieres enviar el mensaje.

    • Reemplazar recipient@example.com con la dirección de correo electrónico a la que quieres enviar el mensaje.

    • Reemplazar email-smtp.us-west-2.amazonaws.com con el SES SMTP punto URL de conexión de Amazon de tu AWS región. Para obtener más información, consulte Regiones y Amazon SES.

  3. En PowerShell, introduce el siguiente comando:

    .\path\to\SendEmail.ps1

    En el comando anterior, sustituya path\to\SendEmail.ps1 por la ruta del archivo que creó en el paso 1.

  4. Cuando se le pida, introduzca su nombre SMTP de usuario y contraseña.

Como alternativa, puede utilizar el System.Web.Mail. SmtpMailclase para enviar correos electrónicos de forma implícita SSL a través del puerto 465.

nota

La clase System.Web.Mail.SmtpMail está oficialmente obsoleta y Microsoft recomienda que utilice bibliotecas de terceros. Este código se ha diseñado únicamente para fines de prueba y no debe usarse para cargas de trabajo de producción.

Para enviar un correo electrónico PowerShell mediante implícito SSL
  1. En un editor de texto, cree un nuevo archivo. Pegue el código siguiente en el archivo:

    [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

    Cuando haya terminado, guarde el archivo como SendEmail.ps1.

  2. Realice los cambios siguientes en el archivo que creó en el paso anterior:

    • Reemplazar sender@example.com con la dirección de correo electrónico desde la que desea enviar el mensaje.

    • Reemplazar recipient@example.com con la dirección de correo electrónico a la que quieres enviar el mensaje.

    • Reemplazar email-smtp.us-west-2.amazonaws.com con el SES SMTP punto URL de conexión de Amazon de tu AWS región. Para obtener más información, consulte Regiones y Amazon SES.

  3. En PowerShell, introduce el siguiente comando:

    .\path\to\SendEmail.ps1

    En el comando anterior, sustituya path\to\SendEmail.ps1 por la ruta del archivo que creó en el paso 1.

  4. Cuando se le pida, introduzca su nombre SMTP de usuario y contraseña.