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
:587En 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
:465En 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
-ComputerNameemail-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 sustituya587
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
-
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 -
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. SmtpClient
clase 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
-
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 } SendTestEmailCuando haya terminado, guarde el archivo como
SendEmail.ps1
. -
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.
-
-
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. -
Cuando se le pida, introduzca su nombre SMTP de usuario y contraseña.
Como alternativa, puede utilizar el System.Web.Mail. SmtpMail
clase 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
-
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 } SendTestEmailCuando haya terminado, guarde el archivo como
SendEmail.ps1
. -
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.
-
-
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. -
Cuando se le pida, introduzca su nombre SMTP de usuario y contraseña.
-