

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.

# Uso de la interfaz de SMTP de Amazon SES para enviar correo electrónico
<a name="send-email-smtp"></a>

Para enviar email de producción a través de Amazon SES, puede utilizar la interfaz de Simple Mail Transfer Protocol (SMTP) o la API de Amazon SES. Para obtener más información acerca de la API de Amazon SES, consulte [Uso de la API de Amazon SES para enviar correo electrónico](send-email-api.md). En esta sección, se describe la interfaz de SMTP.

Amazon SES envía correo electrónico a través de SMTP, que es el protocolo de correo electrónico más común en Internet. Puede enviar correo electrónico a través de Amazon SES con una amplia variedad de software y lenguajes de programación habilitados para SMTP para conectarse a la interfaz de SMTP de Amazon SES. En esta sección, se explica cómo obtener las credenciales de SMTP de Amazon SES, cómo enviar email a través de la interfaz de SMTP y cómo configurar varios servidores de correo electrónico y programas de software para utilizar Amazon SES con el fin de enviar correo electrónico.

Para obtener soluciones a problemas comunes que podría encontrar al utilizar Amazon SES a través de la interfaz SMTP, consulte [Problemas de SMTP de Amazon SES](troubleshoot-smtp.md). 

## Requisitos para enviar correo electrónico a través de SMTP
<a name="send-email-smtp-requirements"></a>

Para enviar correo electrónico a través de la interfaz de SMTP de Amazon SES, necesita lo siguiente:
+ La dirección del punto de enlace SMTP. Para obtener una lista de puntos de enlace de SMTP de Amazon SES, consulte [Conexión a un punto de enlace de SMTP de Amazon SES](smtp-connect.md).
+ El número de puerto de la interfaz de SMTP. El número de puerto varía según el método de conexión. Para obtener más información, consulte [Conexión a un punto de enlace de SMTP de Amazon SES](smtp-connect.md).
+ Un nombre de usuario y contraseña de SMTP. Las credenciales de SMTP son exclusivas para cada región de AWS . Si tiene previsto utilizar la interfaz de SMTP para enviar correo electrónico en varias regiones de AWS , necesita credenciales de SMTP para cada región.
**importante**  
Sus credenciales SMTP no son idénticas a sus claves de AWS acceso ni a las credenciales que utiliza para iniciar sesión en la consola Amazon SES. Para obtener información acerca de cómo generar sus credenciales de SMTP, consulte [Obtención de las credenciales de SMTP de Amazon SES](smtp-credentials.md).
+ Software cliente que permite las comunicaciones mediante Transport Layer Security (TLS). Para obtener más información, consulte [Conexión a un punto de enlace de SMTP de Amazon SES](smtp-connect.md).
+ Una dirección de correo electrónico verificada con Amazon SES. Para obtener más información, consulte [Identidades verificadas en Amazon SES](verify-addresses-and-domains.md).
+ Mayores cuotas de envío, si desea enviar grandes cantidades de correo electrónico. Para obtener más información, consulte [Administración de sus límites de envío de Amazon SES](manage-sending-quotas.md).

## Métodos para enviar correo electrónico a través de SMTP
<a name="send-email-methods"></a>

Puede enviar correo electrónico a través de SMTP mediante cualquiera de los métodos siguientes:
+ Si desea configurar cualquier software habilitado para SMTP con el fin de enviar correo electrónico a través de la interfaz de SMTP de Amazon SES, consulte [Envío de correo electrónico a través de Amazon SES mediante paquetes de software](send-email-smtp-software-package.md).
+ Para programar una aplicación para enviar correo electrónico a través de Amazon SES, consulte [Envío de correo electrónico mediante programación con la interfaz de SMTP de Amazon SES](send-using-smtp-programmatically.md).
+ Para configurar su servidor de correo electrónico existente para enviar todo el correo saliente a través de Amazon SES, consulte [Integración de Amazon SES con su servidor de correo electrónico existente](send-email-smtp-existing-server.md).
+ Para interactuar con la interfaz de SMTP de Amazon SES mediante la línea de comandos, lo que puede resultar útil para hacer pruebas, consulte [Prueba de la conexión a la interfaz SMTP de Amazon SES mediante la línea de comandos](send-email-smtp-client-command-line.md).

Para ver una lista de códigos de respuesta de SMTP, consulte [Códigos de respuesta de SMTP devueltos por Amazon SES.](troubleshoot-smtp.md#troubleshoot-smtp-response-codes).

## Información de correo electrónico que se debe facilitar
<a name="smtp-parameters"></a>

Cuando acceda a Amazon SES a través de la interfaz de SMTP, la aplicación cliente de SMTP creará el mensaje, por lo que la información que es necesario proporcionar depende de la aplicación que se utilice. Como mínimo, el intercambio SMTP entre un cliente y un servidor requiere los elementos siguientes: 
+ Dirección de origen
+ Dirección de destino
+ Datos del mensaje

Si utiliza la interfaz de SMTP y tiene habilitado el reenvío de retroalimentación, las notificaciones de rebotes, reclamaciones y entrega se envían a la dirección "MAIL FROM". No se utiliza ninguna dirección "Reply-To" que especifique.



# Obtención de las credenciales de SMTP de Amazon SES
<a name="smtp-credentials"></a>

Necesita las credenciales de SMTP de Amazon SES para acceder a la interfaz de SMTP de SES.

Las credenciales que utiliza para enviar correos electrónicos a través de la interfaz SMTP de SES son exclusivas de cada AWS región. Si utiliza la interfaz de SMTP de SES para enviar correo electrónico en más de una región, deberá generar un conjunto de credenciales de SMTP para cada región que tenga previsto usar.

Su contraseña SMTP es diferente de su clave de acceso AWS secreta. Para obtener más información acerca de las credenciales, consulte [Tipos de credenciales de Amazon SES](send-email-concepts-credentials.md).

**nota**  
Para obtener una lista de los puntos de conexión de SMTP disponibles actualmente, consulte [Puntos de conexión SMTP](https://docs.aws.amazon.com/general/latest/gr/ses.html#ses_smtp_endpoints) en *Referencia general de AWS*. 

## Obtención de credenciales de SMTP de SES con la consola de SES
<a name="smtp-credentials-console"></a>

**Requisito**  
Un usuario de IAM puede crear credenciales de SMTP de SES, pero la política de usuario puede concederle permiso para utilizar el propio IAM, dado que las credenciales de SMTP de SES se crean mediante IAM. La política de IAM debe permitirle realizar las siguientes acciones de IAM: `iam:ListUsers`, `iam:CreateUser`, `iam:CreateAccessKey` e `iam:PutUserPolicy`. Si intenta crear las credenciales SMTP de SES mediante la consola y su usuario de IAM no tiene estos permisos, aparecerá un error que indica que su cuenta *«no está autorizada para realizar iam*:». ListUsers

**importante**  
Las acciones de IAM mencionadas anteriormente tienen el nivel de acceso de [Administración de permisos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_understand-policy-summary-access-level-summaries.html#access_policies_access-level), que es el nivel de IAM más alto porque permite conceder o modificar permisos de recursos en el servicio. Por lo tanto, para mejorar la seguridad de su AWS cuenta, se recomienda encarecidamente que restrinja o supervise periódicamente estas políticas, que incluyen la clasificación de los niveles de acceso a la gestión de permisos.

**Para crear sus credenciales de SMTP**

1. Inicie sesión en la consola Amazon SES Consola de administración de AWS y ábrala en [https://console.aws.amazon.com/ses/](https://console.aws.amazon.com/ses/).

1. Elija **SMTP settings** (Configuración de SMTP) en el panel de navegación de la izquierda. Se abrirá la página **Simple Mail Transfer Protocol (SMTP) settings** (Configuración del protocolo simple de transferencia de correo [SMTP]).

1. Elija **Create SMTP Credentials** (Crear credenciales SMTP) en la esquina superior derecha. Se abrirá la consola de IAM.

1. (Opcional) Si necesita ver, editar o eliminar los usuarios de SMTP que ya ha creado, elija **Manage my existing SMTP credentials** (Administrar mis credenciales de SMTP existentes) en la esquina inferior derecha. Se abrirá la consola de IAM. Los detalles para administrar las credenciales de SMTP se proporcionan siguiendo estos procedimientos.

1. En **Crear usuario para SMTP**, escriba un nombre para el usuario de SMTP en el campo **Nombre de usuario**. También puede utilizar el valor predeterminado que se proporciona en este campo. Cuando haya terminado, elija **Crear usuario** en la esquina inferior derecha.

1. Seleccione **Mostrar** en la *Contraseña SMTP*: las credenciales de SMTP se muestran en la pantalla.

1. Elija **Descargar archivo .csv** para descargar estas credenciales o cópielas y almacénelas en un lugar seguro, ya que no podrá ver ni guardar las credenciales después de haber cerrado este cuadro de diálogo.

1. Elija **Volver a la consola de SES**.

Puede ver una lista de las credenciales de SMTP que ha creado mediante este procedimiento en la consola de IAM en **Access management** (Administración de accesos) y elegir **Users** (Usuarios) seguido de la barra de búsqueda para encontrar a todos los usuarios a los que ha asignado credenciales de SMTP.

También puede utilizar la consola de IAM para eliminar usuarios de SMTP existentes. Para obtener más información sobre cómo eliminar usuarios, consulte [Administración de usuarios de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html) en la *Guía de introducción de IAM*.

Si desea cambiar la contraseña de SMTP, elimine el usuario de SMTP existente en la consola de IAM. A continuación, para generar un nuevo conjunto de credenciales de SMTP, realice los procedimientos anteriores.

## Obtener las credenciales SMTP de SES mediante la conversión de las credenciales existentes AWS
<a name="smtp-credentials-convert"></a>

Si tiene un usuario que ha configurado mediante la interfaz de IAM, puede derivar las credenciales SMTP de SES del usuario a partir de sus credenciales. AWS 

**importante**  
No utilice AWS credenciales temporales para obtener las credenciales SMTP. La interfaz de SMTP de SES no es compatible con las credenciales de SMTP que se han generado a partir de credenciales de seguridad temporales. 

**Procedimiento para permitir que el usuario de IAM pueda enviar correo electrónico a través de la interfaz de SMTP de SES**

1. Obtenga las credenciales SMTP del usuario a partir de sus AWS credenciales mediante el algoritmo que se proporciona en esta sección y siga estos procedimientos.

   Como se parte de las AWS credenciales, el nombre de usuario de SMTP es el mismo que el ID de la clave de AWS acceso, por lo que solo necesita generar la contraseña de SMTP.

1. Inicie sesión en la consola de IAM Consola de administración de AWS y ábrala en. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. En **Administración del acceso**, elija **Políticas** y, a continuación, **Crear política**.

1. En el **Editor de políticas**, seleccione **JSON** y borre todos los ejemplos de código del editor.

1. Pegue la siguiente política de permisos en el editor:

------
#### [ JSON ]

****  

   ```
   {
   "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
   "Effect": "Allow",
               "Action": "ses:SendRawEmail",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Seleccione **Siguiente** y escriba `AmazonSesSendingAccess` en el campo **Nombre de política**. A continuación, seleccione **Crear política**.

1. En **Administración del acceso**, elija **Grupos de usuarios** y, a continuación, **Crear grupo**.

1. En el campo **Nombre del grupo de seguridad**, escriba `AWSSESSendingGroupDoNotRename`.

1. Agregue usuarios de SMTP al grupo. Para ello, selecciónelos en la tabla **Agregar usuarios al grupo**.

1. Asocie la política `AmazonSesSendingAccess` creada anteriormente. Para ello, selecciónela en la tabla **Asociar políticas de permisos** y, a continuación, **Crear grupo de usuarios**.

Para obtener más información sobre el uso de SES con IAM, consulte [Identity and Access Management en Amazon SES](control-user-access.md).

**nota**  
Aunque puede generar credenciales de SMTP de SES para cualquier usuario de IAM, le recomendamos que cree un usuario de IAM independiente cuando genere las credenciales de SMTP. Para obtener información acerca de por qué es una práctica recomendable crear usuarios para fines específicos, acceda a [Prácticas recomendadas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAMBestPractices.html).

El siguiente pseudocódigo muestra el algoritmo que convierte una clave de acceso AWS secreta en una contraseña SMTP de SES.

```
 1. // Modify this variable to include your AWS secret access key
 2. key = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY";
 3.             
 4. // Modify this variable to refer to the AWS Region that you want to use to send email.
 5. region = "us-west-2";
 6.             
 7. // The values of the following variables should always stay the same.
 8. date = "11111111";
 9. service = "ses";
10. terminal = "aws4_request";
11. message = "SendRawEmail";
12. version = 0x04;
13. 
14. kDate = HmacSha256(date, "AWS4" + key);
15. kRegion = HmacSha256(region, kDate);
16. kService = HmacSha256(service, kRegion);
17. kTerminal = HmacSha256(terminal, kService);
18. kMessage = HmacSha256(message, kTerminal);
19. signatureAndVersion = Concatenate(version, kMessage);
20. smtpPassword = Base64(signatureAndVersion);
```

Algunos lenguajes de programación incluyen bibliotecas que puede utilizar para convertir una clave de acceso secreta de IAM en una contraseña de SMTP. Esta sección incluye un ejemplo de código que puede utilizar para convertir una clave de acceso AWS secreta en una contraseña SMTP de SES mediante Python.

**nota**  
En el siguiente ejemplo, se utilizan **f-strings** que se introdujeron en Python 3.6; si usa una versión anterior, no funcionarán.
En el siguiente ejemplo, la lista de SMTP\$1REGIONS es simplemente un ejemplo: la lista real de regiones podría ser más corta o más larga en función de las regiones a las que vaya a enviar correos electrónicos, ya que necesitará credenciales SMTP para cada Región de AWS.

------
#### [ Python ]

```
#!/usr/bin/env python3

import hmac
import hashlib
import base64
import argparse

SMTP_REGIONS = [
    "us-east-2",  # US East (Ohio)
    "us-east-1",  # US East (N. Virginia)
    "us-west-2",  # US West (Oregon)
    "ap-south-1",  # Asia Pacific (Mumbai)
    "ap-northeast-2",  # Asia Pacific (Seoul)
    "ap-southeast-1",  # Asia Pacific (Singapore)
    "ap-southeast-2",  # Asia Pacific (Sydney)
    "ap-northeast-1",  # Asia Pacific (Tokyo)
    "ca-central-1",  # Canada (Central)
    "eu-central-1",  # Europe (Frankfurt)
    "eu-west-1",  # Europe (Ireland)
    "eu-west-2",  # Europe (London)
    "eu-south-1",  # Europe (Milan)
    "eu-north-1",  # Europe (Stockholm)
    "sa-east-1",  # South America (Sao Paulo)
    "us-gov-west-1",  # AWS GovCloud (US)
    "us-gov-east-1",  # AWS GovCloud (US)
]

# These values are required to calculate the signature. Do not change them.
DATE = "11111111"
SERVICE = "ses"
MESSAGE = "SendRawEmail"
TERMINAL = "aws4_request"
VERSION = 0x04


def sign(key, msg):
    return hmac.new(key, msg.encode("utf-8"), hashlib.sha256).digest()


def calculate_key(secret_access_key, region):
    if region not in SMTP_REGIONS:
        raise ValueError(f"The {region} Region doesn't have an SMTP endpoint.")

    signature = sign(("AWS4" + secret_access_key).encode("utf-8"), DATE)
    signature = sign(signature, region)
    signature = sign(signature, SERVICE)
    signature = sign(signature, TERMINAL)
    signature = sign(signature, MESSAGE)
    signature_and_version = bytes([VERSION]) + signature
    smtp_password = base64.b64encode(signature_and_version)
    return smtp_password.decode("utf-8")


def main():
    parser = argparse.ArgumentParser(
        description="Convert a Secret Access Key to an SMTP password."
    )
    parser.add_argument("secret", help="The Secret Access Key to convert.")
    parser.add_argument(
        "region",
        help="The AWS Region where the SMTP password will be used.",
        choices=SMTP_REGIONS,
    )
    args = parser.parse_args()
    print(calculate_key(args.secret, args.region))


if __name__ == "__main__":
    main()
```

Para obtener la contraseña de SMTP mediante este script, guarde el código anterior como `smtp_credentials_generate.py`. A continuación, en la línea de comandos, ejecute el comando siguiente:

```
python path/to/smtp_credentials_generate.py wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY us-east-1
```

En el comando anterior, haga lo siguiente.
+ *path/to/*Sustitúyala por la ruta a la ubicación en la que la `smtp_credentials_generate.py` guardaste.
+ Reemplace *wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY* con la clave de acceso secreta que desea convertir en una contraseña de SMTP.
+ *us-east-1*Sustitúyalas por la AWS región en la que desee utilizar las credenciales SMTP.

Cuando este script se ejecuta correctamente, el único resultado es la contraseña de SMTP.

------

## Migración de un usuario de SMTP de una política insertada existente a una política de grupo (recomendación de seguridad)
<a name="migrate-inline-policy-to-group"></a>

**importante**  
Si ha creado las credenciales de SMTP de SES antes del 6 de septiembre de 2024, a su usuario de SMTP se le han asociado una política insertada y una etiqueta. En SES, se están dejando de usar las políticas insertadas y la recomendación de seguridad es que todo el mundo haga lo mismo.

Antes de migrar a un usuario de SMTP de una política insertada existente a una política de grupo, primero debe crear un grupo de usuarios de IAM con la política de permisos de SES para sustituir a la política insertada. Si ya ha creado el grupo de usuarios de IAM, o bien este se ha creado automáticamente para las credenciales de SMTP que creó a partir del 6 de septiembre de 2024, puede ir directamente al *paso 10* del procedimiento siguiente.

**Migración de una política insertada existente a un grupo administrado**

1. Inicie sesión en la consola de IAM Consola de administración de AWS y ábrala en. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. En **Administración del acceso**, elija **Políticas** y, a continuación, **Crear política**.

1. En el **Editor de políticas**, seleccione **JSON** y borre todos los ejemplos de código del editor.

1. Pegue la siguiente política de permisos en el editor:

------
#### [ JSON ]

****  

   ```
   {
   "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
   "Effect": "Allow",
               "Action": "ses:SendRawEmail",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Seleccione **Siguiente** y escriba `AmazonSesSendingAccess` en el campo **Nombre de política**. A continuación, seleccione **Crear política**.

1. En **Administración del acceso**, elija **Grupos de usuarios** y, a continuación, **Crear grupo**.

1. En el campo **Nombre del grupo de seguridad**, escriba `AWSSESSendingGroupDoNotRename`.

1. Agregue usuarios de SMTP al grupo. Para ello, selecciónelos en la tabla **Agregar usuarios al grupo**.

1. Asocie la política `AmazonSesSendingAccess` creada anteriormente. Para ello, selecciónela en la tabla **Asociar políticas de permisos** y, a continuación, **Crear grupo de usuarios**.

   Ahora que ya ha creado el grupo de usuarios de IAM con la política de permisos de SES, puede migrar a un usuario de SMTP de la política insertada actual a esta política de grupo, tal y como se explica en los pasos restantes.

1. En **Administración del acceso**, elija **Usuarios** y, a continuación, seleccione el usuario de SMTP que desee migrar.

1. Seleccione la pestaña **Grupos** y haga clic en **Agregar usuario a los grupos**.

1. Seleccione el grupo `AWSSESSendingGroupDoNotRename` y, a continuación, **Agregar usuario a los grupos**.

1. Seleccione la pestaña **Permisos** y confirme que hay dos filas con `AmazonSesSendingAccess` en la columna **Nombre de la política**, una con *Inline* y otra con *Grupo de `AWSSESSendingGroupDoNotRename`* en la columna **Adjuntado a través de**.

1. Seleccione solo la fila que contiene `AmazonSesSendingAccess` en la columna **Nombre de la política** e *Inline* en la columna **Adjuntado a través de**. A continuación, seleccione **Quitar** y elija **Quitar política** para confirmar.

   Compruebe que la fila cuya columna **Adjuntado a través de** contiene *Grupo `AWSSESSendingGroupDoNotRename`* sigue estando presente.

1. Seleccione la pestaña **Etiquetas** y, a continuación, **Administrar etiquetas**.

1. Seleccione **Eliminar** junto a la fila que contiene *InvokedBy*las columnas **Clave** y *SESConsole***Valor** y, a continuación, **Guardar cambios**.

**importante**  
La política `AmazonSesSendingAccess` (ya sea insertada, de grupo o ambas) debe permanecer asociada al usuario de SMTP para garantizar que el envío no se vea afectado. Solo debe borrar la política insertada después de haber asociado la política de grupo al usuario. 

# Conexión a un punto de enlace de SMTP de Amazon SES
<a name="smtp-connect"></a>

Para enviar email mediante la interfaz de SMTP de Amazon SES, tiene que conectar su aplicación a un punto de enlace de SMTP. Para obtener una lista completa de los puntos de conexión de SMTP de Amazon SES, consulte [Puntos de conexión y cuotas de Amazon Simple Email Service](https://docs.aws.amazon.com/general/latest/gr/ses.html) en la *Referencia general de AWS*.

El punto de enlace de SMTP de Amazon SES requiere que todas las conexiones se cifren con Transport Layer Security (TLS). (Tenga en cuenta que TLS se denomina en ocasiones con el nombre de su protocolo predecesor, SSL). Amazon SES admite dos mecanismos para establecer la conexión cifrada por TLS: STARTTLS y TLS Wrapper. Consulte la documentación de su software para determinar si es compatible con STARTTLS, TLS Wrapper o ambos.

De forma predeterminada, Amazon Elastic Compute Cloud (Amazon EC2) limita de manera controlada el tráfico de correo electrónico en el puerto 25. Para evitar tiempos de espera al enviar correo electrónico a través del punto de enlace de SMTP desde EC2, envíe una [Solicitud de eliminación de limitaciones de envío de correo electrónico](https://aws-portal.amazon.com/gp/aws/html-forms-controller/contactus/ec2-email-limit-rdns-request) para eliminar la limitación. También puede enviar correo electrónico mediante otro puerto o utilizar un [punto de enlace de Amazon VPC](send-email-set-up-vpc-endpoints.md).

En caso de problemas con la conexión SMTP, consulte [Problemas de SMTP](troubleshoot-smtp.md).

## STARTTLS
<a name="smtp-connect-starttls"></a>

STARTTLS es un medio para actualizar una conexión sin cifrar a una conexión cifrada. Existen versiones de STARTTLS para diversos protocolos; la versión de SMTP se define en [RFC 3207](https://www.ietf.org/rfc/rfc3207.txt).

Para configurar una conexión STARTTLS, el cliente de SMTP se conecta con el punto de enlace de SMTP de Amazon SES en el puerto 25, 587 o 2587, emite un comando EHLO y espera a que el servidor anuncie que es compatible con la extensión de SMTP STARTTLS. A continuación, el cliente emite el comando STARTTLS, iniciando la negociación de TLS. Cuando se completa la negociación, el cliente emite un comando EHLO sobre la nueva conexión cifrada y la sesión de SMTP continúa con normalidad.

## TLS Wrapper
<a name="smtp-connect-tlswrapper"></a>

TLS Wrapper (también conocido como SMTPS o protocolo Handshake) es un medio de iniciar una conexión cifrada sin establecer primero una conexión sin cifrar. Con TLS Wrapper, el punto de enlace de SMTP de Amazon SES no realiza la negociación de TLS: es responsabilidad del cliente conectarse al punto de enlace mediante TLS y seguir utilizando TLS para toda la conversación. TLS Wrapper es un protocolo más antiguo, pero muchos clientes siguen siendo compatibles.

Para configurar una conexión de TLS Wrapper, el cliente de SMTP se conecta al punto de enlace de SMTP de Amazon SES en el puerto 465 o 2465. El servidor presenta su certificado, el cliente emite un comando EHLO y la sesión de SMTP continúa con normalidad.

# Envío de correo electrónico a través de Amazon SES mediante paquetes de software
<a name="send-email-smtp-software-package"></a>

Existe una serie de paquetes de software comerciales y de código abierto que admiten el envío de correo electrónico a través de SMTP. Estos son algunos ejemplos:
+ Plataformas de blog
+ Agregadores RSS
+ Software de administración de listas
+ Sistemas de flujo de trabajo

Puede configurar cualquier software habilitado para SMTP de este tipo para enviar correo electrónico a través de la interfaz de SMTP de Amazon SES. Para obtener instrucciones sobre cómo configurar SMTP para un determinado paquete de software, consulte la documentación de dicho software.

El siguiente procedimiento muestra cómo configurar el envío de Amazon SES en JIRA, una conocida solución de seguimiento de problemas. Con esta configuración, JIRA puede notificar a los usuarios por correo electrónico cuando haya un cambio en el estado de un problema de software.

**Para configurar JIRA con el fin de enviar correo electrónico mediante Amazon SES**

1. Con su navegador web, inicie sesión en JIRA con credenciales de administrador.

1. En la ventana del navegador, elija **Administration**.

1. En el menú **System**, elija **Mail**.

1. En la página **Mail administration**, elija **Mail Servers**.

1. Elija **Configure new SMTP mail server**.

1. En el formulario **Add SMTP Mail Server**, rellene los campos siguientes:

   1. **Name**: un nombre descriptivo para este servidor.

   1. **From address (Dirección desde)**: la dirección desde la que se enviará el correo electrónico. Antes de enviar correo electrónico a través de Amazon SES, tendrá que verificar esta dirección. Para obtener más información sobre la verificación, consulte [Identidades verificadas en Amazon SES](verify-addresses-and-domains.md).

   1. **Email prefix**: una cadena que JIRA añade a cada línea de asunto antes del envío.

   1. **Protocol**: elija **SMTP**.
**nota**  
Si no puede conectarse a Amazon SES mediante esta configuración, pruebe **SECURE\$1SMTP**.

   1. **Host Name (Nombre de host)**: consulte [Conexión a un punto de enlace de SMTP de Amazon SES](smtp-connect.md) para ver un listado de puntos de enlace de SMTP de Amazon SES. Por ejemplo, si desea utilizar el punto de enlace de Amazon SES en la región EE. UU. Oeste (Oregón), el nombre del host sería *email-smtp.us-west-2.amazonaws.com*.

   1. **SMTP Port (Puerto SMTP)**: 25, 587 o 2587 (para conectarse utilizando STARTTLS) o 465 o 2465 (para conectarse utilizando TLS Wrapper).

   1. **TLS**: seleccione esta casilla de verificación.

   1. **User Name (Nombre de usuario)**: su nombre de usuario de SMTP.

   1. **Password**: su contraseña de SMTP.

   En la imagen siguiente se muestra la configuración de TLS Wrapper.  
![\[Configuración de correo electrónico de SMTP para JIRA\]](http://docs.aws.amazon.com/es_es/ses/latest/dg/images/SMTP_jira.png)

1. Elija **Test Connection**. Si el correo electrónico de prueba que envía JIRA a través de Amazon SES llega correctamente, su configuración está completa.

# Envío de correo electrónico mediante programación con la interfaz de SMTP de Amazon SES
<a name="send-using-smtp-programmatically"></a>

Para enviar un correo electrónico a través de la interfaz de SMTP de Amazon SES, puede utilizar un lenguaje de programación, servidor de email o aplicación habilitados para SMTP. Antes de comenzar, complete las tareas de [Configuración de Amazon Simple Email Service](setting-up.md). También tiene que obtener la siguiente información: 
+ Sus credenciales de SMTP de Amazon SES, que le permitirán conectarse al punto de conexión de SMTP de Amazon SES. Para obtener las credenciales de SMTP de Amazon SES, consulte [Obtención de las credenciales de SMTP de Amazon SES](smtp-credentials.md). 
**importante**  
Sus credenciales SMTP son diferentes de las suyas AWS . Para obtener más información acerca de las credenciales, consulte [Tipos de credenciales de Amazon SES](send-email-concepts-credentials.md).
+ La dirección del punto de enlace SMTP. Para obtener una lista de puntos de enlace de SMTP de Amazon SES, consulte [Conexión a un punto de enlace de SMTP de Amazon SES](smtp-connect.md).
+ El número de puerto de la interfaz de SMTP de Amazon SES, que depende del método de conexión. Para obtener más información, consulte [Conexión a un punto de enlace de SMTP de Amazon SES](smtp-connect.md).

## Ejemplos de código
<a name="send-email-smtp-code-examples"></a>

Puede acceder a la interfaz de SMTP de Amazon SES mediante un lenguaje de programación habilitado para SMTP. Usted proporciona el nombre de host y el número de puerto de SMTP de Amazon SES junto con sus credenciales de SMTP y, a continuación, utiliza las funciones de SMTP genéricas del lenguaje de programación para enviar el correo electrónico.

De forma predeterminada, Amazon Elastic Compute Cloud (Amazon EC2) restringe el tráfico de correo electrónico en el puerto 25. Para evitar tiempos de espera al enviar correo electrónico a través del punto de enlace de SMTP desde Amazon EC2, puede solicitar que se eliminen estas restricciones. Para obtener más información, consulte [¿Cómo elimino la restricción del puerto 25 de mi instancia o AWS Lambda función de Amazon EC2](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-port-25-throttle/)? en el Centro de AWS conocimiento.

En los ejemplos de código de esta sección para Java y PHP se utiliza el puerto 587 para evitar este problema. 

**nota**  
En este tutorial, debe enviarse un correo electrónico a usted mismo para poder verificar si lo recibe. Para seguir experimentando o realizar pruebas de carga, utilice el simulador de buzón de correo de Amazon SES. Los correos electrónicos que envíe al simulador de buzón de correo no se contabilizan en su cuota de envío ni en sus tasas de rebotes y reclamos. Para obtener más información, consulte [Uso del simulador de buzón de correo de forma manual](send-an-email-from-console.md#send-email-simulator).

**Seleccione un lenguaje de programación para ver el ejemplo para dicho idioma:**

**aviso**  
Amazon SES no recomienda el uso de credenciales estáticas. Consulte [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) para obtener información sobre cómo eliminar las credenciales con codificación rígida del código fuente con el fin de mejorar su posición de seguridad. Este tutorial se proporciona exclusivamente para probar la interfaz de SMTP de Amazon SES en un entorno que no sea de producción.

------
#### [ Java ]

En este ejemplo, se utiliza el [IDE de Eclipse](http://www.eclipse.org/) y la [JavaMail API](https://github.com/javaee/javamail/releases) para enviar correos electrónicos a través de Amazon SES mediante la interfaz SMTP.

Antes de realizar el procedimiento siguiente, complete las tareas descritas en [Configuración de Amazon Simple Email Service](setting-up.md).

**Para enviar un correo electrónico a través de la interfaz de SMTP de Amazon SES con Java**

1. En un navegador web, vaya a la [JavaMail GitHub página.](https://github.com/javaee/javamail/releases) En **Activos**, selecciona **javax.mail.jar** para descargar la versión más reciente de. JavaMail
**importante**  
Este tutorial requiere JavaMail la versión 1.5 o posterior. Estos procedimientos se probaron con la JavaMail versión 1.6.1.

1. **En un navegador web, vaya a la [ GitHub página de activación de Yakarta](https://github.com/eclipse-ee4j/jaf/releases) y, en Activation [Framework 1.2.1 Final Release, descargue JavaBeans jakarta.activation.jar](https://github.com/eclipse-ee4j/jaf/releases/tag/1.2.1)**

1. Cree un proyecto en Eclipse realizando los pasos siguientes:

   1. Inicie Eclipse.

   1. En Eclipse, elija **File**, elija **New** y, a continuación, elija **Java Project**.

   1. En el cuadro de diálogo **Create a Java Project**, escriba un nombre de proyecto y, a continuación, elija **Next**.

   1. En el cuadro de diálogo **Java Settings**, elija la pestaña **Libraries**.

   1. ******Seleccione **Classpath** y añada los dos archivos jar externos javax.mail.jar y jakarta.activation.jar mediante el botón Agregar archivo externo. JARs******

   1. **Selecciona JARs** Añadir externo.

   1. Navegue hasta la carpeta en la que realizó la descarga JavaMail. Elija el archivo `javax.mail.jar` y, a continuación, elija **Open**.

   1. En el cuadro de diálogo **Java Settings**, elija **Finish**.

1. En Eclipse, en la ventana **Package Explorer**, amplíe su proyecto.

1. En su proyecto, haga clic con el botón derecho en el directorio **src**, elija **New** y, a continuación, elija **Class**.

1. En el cuadro de diálogo **New Java Class**, en el campo **Name**, escriba `AmazonSESSample` y, a continuación, elija **Finish**.

1. Sustituya todo el contenido de **Amazon SESSample .java** por el siguiente código:

   ```
     1. import java.util.Properties;
     2. 
     3. import javax.mail.Message;
     4. import javax.mail.Session;
     5. import javax.mail.Transport;
     6. import javax.mail.internet.InternetAddress;
     7. import javax.mail.internet.MimeMessage;
     8. 
     9. public class AmazonSESSample {
    10. 
    11.     // Replace sender@example.com with your "From" address.
    12.     // This address must be verified.
    13.     static final String FROM = "sender@example.com";
    14.     static final String FROMNAME = "Sender Name";
    15.     
    16.     // Replace recipient@example.com with a "To" address. If your account 
    17.     // is still in the sandbox, this address must be verified.
    18.     static final String TO = "recipient@example.com";
    19.     
    20.     // Replace smtp_username with your Amazon SES SMTP user name.
    21.     static final String SMTP_USERNAME = "smtp_username";
    22.       
    23.     // The name of the Configuration Set to use for this message.
    24.     // If you comment out or remove this variable, you will also need to
    25.     // comment out or remove the header below.
    26.     static final String CONFIGSET = "ConfigSet";
    27.     
    28.     // Amazon SES SMTP host name. This example uses the US West (Oregon) region.
    29.     // See https://docs.aws.amazon.com/ses/latest/DeveloperGuide/regions.html#region-endpoints
    30.     // for more information.
    31.     static final String HOST = "email-smtp.us-west-2.amazonaws.com";
    32.     
    33.     // The port you will connect to on the Amazon SES SMTP endpoint. 
    34.     static final int PORT = 587;
    35.     
    36.     static final String SUBJECT = "Amazon SES test (SMTP interface accessed using Java)";
    37.     
    38.     static final String BODY = String.join(
    39.             System.getProperty("line.separator"),
    40.             "<h1>Amazon SES SMTP Email Test</h1>",
    41.             "<p>This email was sent with Amazon SES using the ", 
    42.             "<a href='https://github.com/javaee/javamail'>Javamail Package</a>",
    43.             " for <a href='https://www.java.com'>Java</a>."
    44.         );
    45. 
    46.     public static void main(String[] args) throws Exception {
    47. 
    48.         // Create a Properties object to contain connection configuration information.
    49.         Properties props = System.getProperties();
    50.         props.put("mail.transport.protocol", "smtp");
    51.         props.put("mail.smtp.port", PORT); 
    52.         props.put("mail.smtp.starttls.enable", "true");
    53.         props.put("mail.smtp.auth", "true");
    54. 
    55.         // Create a Session object to represent a mail session with the specified properties. 
    56.         Session session = Session.getDefaultInstance(props);
    57. 
    58.         // Create a message with the specified information. 
    59.         MimeMessage msg = new MimeMessage(session);
    60.         msg.setFrom(new InternetAddress(FROM,FROMNAME));
    61.         msg.setRecipient(Message.RecipientType.TO, new InternetAddress(TO));
    62.         msg.setSubject(SUBJECT);
    63.         msg.setContent(BODY,"text/html");
    64.         
    65.         // Add a configuration set header. Comment or delete the 
    66.         // next line if you are not using a configuration set
    67.         msg.setHeader("X-SES-CONFIGURATION-SET", CONFIGSET);
    68.             
    69.         // Create a transport.
    70.         Transport transport = session.getTransport();
    71. 
    72.         // Get the password 
    73.         String SMTP_PASSWORD = fetchSMTPPasswordFromSecureStorage();
    74.                     
    75.         // Send the message.
    76.         try
    77.         {
    78.             System.out.println("Sending...");
    79.             
    80.             // Connect to Amazon SES using the SMTP username and password you specified above.
    81.             transport.connect(HOST, SMTP_USERNAME, SMTP_PASSWORD);
    82.             
    83.             // Send the email.
    84.             transport.sendMessage(msg, msg.getAllRecipients());
    85.             System.out.println("Email sent!");
    86.         }
    87.         catch (Exception ex) {
    88.             System.out.println("The email was not sent.");
    89.             System.out.println("Error message: " + ex.getMessage());
    90.         }
    91.         finally
    92.         {
    93.             // Close and terminate the connection.
    94.             transport.close();
    95.         }
    96.     }
    97. 
    98.     static String fetchSMTPPasswordFromSecureStorage() {
    99.         /* IMPLEMENT THIS METHOD */
   100.         // For example, you might fetch it from a secure location or AWS Secrets Manager: https://aws.amazon.com/secrets-manager/
   101.     }
   102. }
   ```

1. En **Amazon SESSample .java**, sustituya las siguientes direcciones de correo electrónico por sus propios valores:
**importante**  
Las direcciones de correo electrónico distinguen entre mayúsculas y minúsculas. Asegúrese de que las direcciones sean exactamente las mismas que las que haya verificado.
   + *sender@example.com*— Sustitúyala por tu dirección de correo electrónico «De». Debe verificar esta dirección antes de ejecutar este programa. Para obtener más información, consulte [Identidades verificadas en Amazon SES](verify-addresses-and-domains.md).
   + *recipient@example.com*— Sustitúyala por tu dirección de correo electrónico «Para». Si su cuenta está todavía en el entorno de pruebas, debe verificar esta dirección antes de utilizarla. Para obtener más información, consulte [Solicitud de acceso de producción (salida del entorno de pruebas de Amazon SES)](request-production-access.md).

1. En **Amazon SESSample .java**, sustituya lo siguiente por sus propios valores:
   + *smtp\$1username*— Sustitúyala por la credencial de tu nombre de usuario de SMTP. Tenga en cuenta que la credencial de nombre de usuario de SMTP es una cadena de 20 letras y números, no un nombre inteligible.
   + *smtp\$1password*— Implementar ``fetchSMTPPasswordFromSecureStorage`` para obtener la contraseña.

1. (Opcional) Si desea utilizar un punto de enlace SMTP de Amazon SES en Región de AWS otro lugar que no sea*email-smtp.us-west-2.amazonaws.com*, cambie el valor de la variable `HOST` por el punto de enlace que desee utilizar. Para ver una lista de las regiones donde Amazon SES está disponible, consulte [Amazon Simple Email Service (Amazon SES)](https://docs.aws.amazon.com/general/latest/gr/rande.html#ses_region) en la *Referencia general de AWS*.

1. (Opcional) Si desea utilizar un conjunto de configuración al enviar este correo electrónico, cambie el valor de la variable *ConfigSet* por el nombre del conjunto de configuración. Para obtener más información acerca de los conjuntos de configuración, consulte [Uso de conjuntos de configuración en Amazon SES](using-configuration-sets.md).

1. Guarde **Amazon SESSample .java.**

1. Para crear el proyecto, elija **Project** y, a continuación, elija **Build Project**. (Si esta opción está deshabilitada, entonces es posible que tenga habilitada la creación automática).

1. Para iniciar el programa y enviar el correo electrónico, elija **Run** y, a continuación, vuelva a elegir **Run**.

1. Revise la salida. Si el correo electrónico se ha enviado correctamente, la consola muestra un mensaje que confirma que el *correo electrónico se ha enviado*. De lo contrario, muestra un mensaje de error.

1. Inicie sesión en el cliente de correo electrónico de la dirección del destinatario. Ahí podrá ver el mensaje que ha enviado.

------
#### [ PHP  ]

En este ejemplo, se usa la PHPMailer clase para enviar correos electrónicos a través de Amazon SES mediante la interfaz SMTP. 

Antes de realizar el procedimiento siguiente, debe completar las tareas descritas en [Configuración de Amazon Simple Email Service](setting-up.md). Además de configurar Amazon SES, debe completar los requisitos previos que se indican a continuación para enviar correo electrónico con PHP:

**Requisitos previos:**
+ **Instale PHP**: PHP está disponible en [http://php.net/downloads.php](https://php.net/downloads.php). Después de instalar PHP, agregue la ruta a PHP en sus variables de entorno para que pueda ejecutar PHP desde cualquier símbolo del sistema.
+ **Instale el administrador de dependencias de Composer**: después de instalar el administrador de dependencias de Composer, puede descargar e instalar la PHPMailer clase y sus dependencias. Para instalar Composer, siga las instrucciones de instalación que se encuentran en [https://getcomposer.org/download](https://getcomposer.org/download).
+ **Instale la PHPMailer clase**: después de instalar Composer, ejecute el siguiente comando para instalarlo: PHPMailer 

  ```
  path/to/composer require phpmailer/phpmailer
  ```

  En el comando anterior, *path/to/* sustitúyalo por la ruta en la que instaló Composer.

**Para enviar un correo electrónico a través de la interfaz de SMTP de Amazon SES con PHP**

1. Cree un archivo denominado **amazon-ses-smtp-sample.php.** Abra el archivo con un editor de texto y pegue el código siguiente:

   ```
    1. <?php
    2. 
    3. // Import PHPMailer classes into the global namespace
    4. // These must be at the top of your script, not inside a function
    5. use PHPMailer\PHPMailer\PHPMailer;
    6. use PHPMailer\PHPMailer\Exception;
    7. 
    8. // If necessary, modify the path in the require statement below to refer to the
    9. // location of your Composer autoload.php file.
   10. require 'vendor/autoload.php';
   11. 
   12. // Replace sender@example.com with your "From" address.
   13. // This address must be verified with Amazon SES.
   14. $sender = 'sender@example.com';
   15. $senderName = 'Sender Name';
   16. 
   17. // Replace recipient@example.com with a "To" address. If your account
   18. // is still in the sandbox, this address must be verified.
   19. $recipient = 'recipient@example.com';
   20. 
   21. // Replace smtp_username with your Amazon SES SMTP user name.
   22. $usernameSmtp = 'smtp_username';
   23. 
   24. // Specify a configuration set. If you do not want to use a configuration
   25. // set, comment or remove the next line.
   26. $configurationSet = 'ConfigSet';
   27. 
   28. // If you're using Amazon SES in a region other than US West (Oregon),
   29. // replace email-smtp.us-west-2.amazonaws.com with the Amazon SES SMTP
   30. // endpoint in the appropriate region.
   31. $host = 'email-smtp.us-west-2.amazonaws.com';
   32. $port = 587;
   33. 
   34. // The subject line of the email
   35. $subject = 'Amazon SES test (SMTP interface accessed using PHP)';
   36. 
   37. // The plain-text body of the email
   38. $bodyText =  "Email Test\r\nThis email was sent through the
   39.     Amazon SES SMTP interface using the PHPMailer class.";
   40. 
   41. // The HTML-formatted body of the email
   42. $bodyHtml = '<h1>Email Test</h1>
   43.     <p>This email was sent through the
   44.     <a href="https://aws.amazon.com/ses">Amazon SES</a> SMTP
   45.     interface using the <a href="https://github.com/PHPMailer/PHPMailer">
   46.     PHPMailer</a> class.</p>';
   47. 
   48. $mail = new PHPMailer(true);
   49. 
   50. try {
   51.     // Specify the SMTP settings.
   52.     $mail->isSMTP();
   53.     $mail->setFrom($sender, $senderName);
   54.     $mail->Username   = $usernameSmtp;
   55.     $mail->Password   = fetchSMTPPasswordFromSecureStorage();
   56.     $mail->Host       = $host;
   57.     $mail->Port       = $port;
   58.     $mail->SMTPAuth   = true;
   59.     $mail->SMTPSecure = 'tls';
   60.     $mail->addCustomHeader('X-SES-CONFIGURATION-SET', $configurationSet);
   61. 
   62.     // Specify the message recipients.
   63.     $mail->addAddress($recipient);
   64.     // You can also add CC, BCC, and additional To recipients here.
   65. 
   66.     // Specify the content of the message.
   67.     $mail->isHTML(true);
   68.     $mail->Subject    = $subject;
   69.     $mail->Body       = $bodyHtml;
   70.     $mail->AltBody    = $bodyText;
   71.     $mail->Send();
   72.     echo "Email sent!" , PHP_EOL;
   73. } catch (phpmailerException $e) {
   74.     echo "An error occurred. {$e->errorMessage()}", PHP_EOL; //Catch errors from PHPMailer.
   75. } catch (Exception $e) {
   76.     echo "Email not sent. {$mail->ErrorInfo}", PHP_EOL; //Catch errors from Amazon SES.
   77. }
   78. function fetchSMTPPasswordFromSecureStorage() {
   79. /* IMPLEMENT THIS METHOD */
   80. // For example, you might fetch it from a secure location or AWS Secrets Manager: https://aws.amazon.com/secrets-manager/
   81. }
   82. 
   83. ?>
   ```

1. En **amazon-ses-smtp-sample.php**, sustituya lo siguiente por sus propios valores:
   + *sender@example.com*— Sustitúyala por una dirección de correo electrónico que hayas verificado con Amazon SES. Para obtener más información, consulte [Identidades verificadas](verify-addresses-and-domains.md). Las direcciones de email en Amazon SES distinguen entre mayúsculas y minúsculas. Asegúrese de que la dirección que introduce sea exactamente la misma que la que haya verificado.
   + *recipient@example.com*— Sustitúyala por la dirección del destinatario. Si su cuenta está todavía en el entorno de pruebas, debe verificar esta dirección antes de utilizarla. Para obtener más información, consulte [Solicitud de acceso de producción (salida del entorno de pruebas de Amazon SES)](request-production-access.md). Asegúrese de que la dirección que introduce sea exactamente la misma que la que haya verificado.
   + *smtp\$1username*— Sustitúyala por la credencial de nombre de usuario de SMTP, que obtuvo en la página de [configuración de SMTP](https://console.aws.amazon.com/ses/home?#smtp-settings:) de la consola Amazon SES. Esto **no** es lo mismo que el ID de clave de acceso de AWS . Tenga en cuenta que la credencial de nombre de usuario de SMTP es una cadena de 20 letras y números, no un nombre inteligible.
   + *smtp\$1password*— Impleméntela ``fetchSMTPPasswordFromSecureStorage`` para obtener la contraseña.
   + (Opcional)*ConfigSet*: si desea utilizar un conjunto de configuraciones al enviar este correo electrónico, sustituya este valor por el nombre del conjunto de configuraciones. Para obtener más información acerca de los conjuntos de configuración, consulte [Uso de conjuntos de configuración en Amazon SES](using-configuration-sets.md).
   + (Opcional)*email-smtp.us-west-2.amazonaws.com*: si desea utilizar un punto de enlace SMTP de Amazon SES en una región que no sea EE. UU. Oeste (Oregón), sustitúyalo por el punto de enlace SMTP de Amazon SES en la región que desee utilizar. Para obtener una lista de los puntos de conexión URLs SMTP Regiones de AWS en los que Amazon SES está disponible, consulte [Amazon Simple Email Service (Amazon SES](https://docs.aws.amazon.com/general/latest/gr/rande.html#ses_region)) en el. *Referencia general de AWS*

1. Guarde **amazon-ses-smtp-sample.php.**

1. Para ejecutar el programa, abra una línea de comandos en el mismo directorio que **amazon-ses-smtp-sample.php** y, a continuación, escriba. **php amazon-ses-smtp-sample.php**

1. Revise la salida. Si el correo electrónico se ha enviado correctamente, la consola muestra un mensaje que confirma que el *correo electrónico se ha enviado*. De lo contrario, muestra un mensaje de error.

1. Inicie sesión en el cliente de correo electrónico de la dirección del destinatario. Ahí podrá ver el mensaje que ha enviado.

------

# Integración de Amazon SES con su servidor de correo electrónico existente
<a name="send-email-smtp-existing-server"></a>

Si actualmente administra su propio servidor de correo electrónico, puede utilizar el punto de enlace de SMTP de Amazon SES para enviar todo su correo electrónico saliente a Amazon SES. No es necesario modificar sus clientes de correo electrónico y las aplicaciones existentes; la transición a Amazon SES pasará desapercibida para ellos.

Varios agentes de transferencia de correo (MTAs) admiten el envío de correo electrónico a través de repetidores SMTP. En esta sección se proporciona una guía general sobre cómo configurar algunos de los más populares MTAs para enviar correos electrónicos mediante la interfaz SMTP de Amazon SES.

El punto de enlace de SMTP de Amazon SES requiere que todas las conexiones se cifren con Transport Layer Security (TLS).

**Topics**
+ [Integración de Amazon SES con Postfix](postfix.md)
+ [Integración de Amazon SES con Sendmail](send-email-sendmail.md)
+ [Integración de Amazon SES con SMTP de IIS de Microsoft Windows Server](send-email-windows-server.md)

# Integración de Amazon SES con Postfix
<a name="postfix"></a>

Postfix es una alternativa al agente de transferencia de mensajes (MTA) de Sendmail de uso extendido. Para obtener más información acerca de Postfix, visite [http://www.postfix.org](http://www.postfix.org). Los procedimientos de este tema funcionarán con Linux, macOS o Unix.

**nota**  
Postfix es una aplicación de terceros y no está desarrollada ni respaldada por Amazon Web Services. Los procedimientos de esta sección se proporcionan únicamente con fines informativos y están sujetos a cambios sin previo aviso.

## Requisitos previos
<a name="send-email-postfix-prereqs"></a>

Debe realizar las siguientes tareas para poder completar los procedimientos de esta sección:
+ Desinstale la aplicación Sendmail, si está instalada en su sistema. El procedimiento para completar este paso varía en función del sistema operativo que use.
**importante**  
A continuación de las referencias a *enviar correo* consulte el comando Postfix `sendmail`, no se debe confundir con la aplicación Sendmail.
+ Instale Postfix. El procedimiento para completar este paso varía en función del sistema operativo que use.
+ Instale un paquete de autenticación SASL. El procedimiento para completar este paso varía en función del sistema operativo que use. Por ejemplo, si utiliza un sistema RedHat basado, debe instalar el `cyrus-sasl-plain` paquete. Si utiliza un sistema basado en Debian o Ubuntu, debe instalar el paquete `libsasl2-modules`.
+ Verifique la dirección de correo electrónico o el dominio que usará para enviar correo electrónico. Para obtener más información, consulte [Creación de una identidad de dirección de correo electrónico](creating-identities.md#verify-email-addresses-procedure).
+ Si una cuenta sigue estando en el entorno de pruebas, solo puede enviar correo electrónico a direcciones de correo electrónico verificadas. Para obtener más información, consulte [Solicitud de acceso de producción (salida del entorno de pruebas de Amazon SES)](request-production-access.md).

## Configuración de Postfix
<a name="send-email-postfix"></a>

Realice los procedimientos siguientes para configurar su servidor de correo electrónico para enviar correo electrónico a través de Amazon SES con Postfix.

**Para configurar Postfix**

1. En la línea de comando, escriba el comando siguiente:

   ```
   sudo postconf -e "relayhost = [email-smtp.us-west-2.amazonaws.com]:587" \
   "smtp_sasl_auth_enable = yes" \
   "smtp_sasl_security_options = noanonymous" \
   "smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd" \
   "smtp_use_tls = yes" \
   "smtp_tls_security_level = secure" \
   "smtp_tls_note_starttls_offer = yes"
   ```
**nota**  
Si utiliza Amazon SES en una AWS región que no sea EE. UU. Oeste (Oregón), sustituya *email-smtp.us-west-2.amazonaws.com* el comando anterior por el punto de enlace SMTP de la región correspondiente. Para obtener más información, consulte [Regiones y Amazon SES](regions.md).

1. En un editor de texto, abra el archivo `/etc/postfix/master.cf`. Busque la entrada siguiente:

   ```
   -o smtp_fallback_relay=
   ```

   Si encuentra esta entrada, coméntela colocando un signo de almohadilla (`#`) al principio de la línea. Guarde y cierre el archivo.

   De lo contrario, si esta entrada no existe, continúe con el paso siguiente.

1. En un editor de texto, abra el archivo `/etc/postfix/sasl_passwd`. Si el archivo no existe todavía, créelo.

1. Añada la línea siguiente a `/etc/postfix/sasl_passwd`:

   ```
   [email-smtp.us-west-2.amazonaws.com]:587 SMTPUSERNAME:SMTPPASSWORD
   ```
**nota**  
Sustituya *SMTPUSERNAME* y por sus *SMTPPASSWORD* credenciales de inicio de sesión de SMTP. Sus credenciales de inicio de sesión de SMTP no son las mismas que su ID de clave de acceso y su clave de acceso secreta de AWS . Para obtener más información acerca de las credenciales, consulte [Obtención de las credenciales de SMTP de Amazon SES](smtp-credentials.md).  
Si utiliza Amazon SES en una AWS región distinta de EE. UU. Oeste (Oregón), *email-smtp.us-west-2.amazonaws.com* sustitúyalo en el ejemplo anterior por el punto de enlace SMTP de la región correspondiente. Para obtener más información, consulte [Regiones y Amazon SES](regions.md).

   Guarde y cierre `sasl_passwd`.

1. En el símbolo del sistema, escriba el siguiente comando para crear un archivo de base de datos hashmap que contenga sus credenciales de SMTP:

   ```
   sudo postmap hash:/etc/postfix/sasl_passwd
   ```

1. (Opcional) Los archivos `/etc/postfix/sasl_passwd` y `/etc/postfix/sasl_passwd.db` que ha creado en los pasos anteriores no están cifrados. Dado que estos archivos contienen sus credenciales de SMTP, le recomendamos que modifique la propiedad y los permisos de los archivos para restringir el acceso a ellos. Para restringir el acceso a estos archivos:

   1. Escriba el siguiente comando en el símbolo del sistema para cambiar la propiedad de los archivos:

      ```
      sudo chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
      ```

   1. En el símbolo del sistema, escriba el comando siguiente para cambiar los permisos de los archivos, de forma que solo el usuario raíz pueda leerlos o escribir en ellos:

      ```
      sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
      ```

1. Indique a Postfix dónde debe buscar el certificado de entidad de certificación (se necesita para verificar el certificado del servidor de Amazon SES). El comando que utilice en este paso variará en función de su sistema operativo.
   + Si utiliza Amazon Linux, Red Hat Enterprise Linux o una distribución relacionada, escriba el comando siguiente: 

     ```
     sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt'
     ```
   + Si utiliza Ubuntu o una distribución relacionada, escriba el comando siguiente:

     ```
     sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt'
     ```
   + Si utiliza macOS, puede generar el certificado desde el llavero del sistema. Para generar el certificado, escriba el comando siguiente en la línea de comandos:

     ```
     sudo security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain | sudo tee /etc/ssl/certs/ca-bundle.crt > /dev/null
     ```

     Una vez generado el certificado, escriba el comando siguiente:

     ```
     sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt'
     ```

1. Escriba el comando siguiente para iniciar el servidor Postfix (o para volver a cargar la configuración si el servidor ya se está ejecutando):

   ```
   sudo postfix start; sudo postfix reload
   ```

1. Envíe un correo electrónico de prueba escribiendo lo siguiente en una línea de comandos y pulsando Intro después de cada línea. *sender@example.com*Sustitúyala por la dirección de correo electrónico del remitente. La dirección desde debe verificarse para su uso con Amazon SES. *recipient@example.com*Sustitúyala por la dirección de destino. Si la cuenta está todavía en el entorno de pruebas, la dirección del destinatario también se debe verificar. Por último, la última línea del mensaje debe contener un único punto (.) sin ningún otro contenido.

   ```
   sendmail -f sender@example.com recipient@example.com
   From: Sender Name <sender@example.com>
   Subject: Amazon SES Test                
   This message was sent using Amazon SES.                
   .
   ```

1. Compruebe el buzón de correo asociado a la dirección del destinatario. Si el correo electrónico no llega, busque en la carpeta de correo no deseado. Si sigue sin encontrar el correo electrónico, compruebe el registro de correo del sistema que ha utilizado para enviarlo (normalmente se encuentra en `/var/log/maillog`) para obtener más información.

## Ejemplo de uso avanzado
<a name="send-email-postfix-advanced"></a>

Este ejemplo muestra cómo enviar un correo electrónico que utiliza un [conjunto de configuración](using-configuration-sets.md) y que utiliza la codificación multiparte de MIME para enviar una versión en texto sin formato y una versión HTML del mensaje, junto con un archivo adjunto. También incluye una [etiqueta de enlace](faqs-metrics.md#sending-metric-faqs-clicks-q5), que se puede utilizar para categorizar eventos de clic. El contenido del correo electrónico se especifica en un archivo externo para que no tenga que escribir los comandos manualmente en la sesión de Postfix.

**Para enviar correo electrónico MIME multiparte utilizando Postfix**

1. En un editor de texto, cree un nuevo archivo denominado `mime-email.txt`.

1. En el archivo de texto, pegue el contenido siguiente, reemplazando los valores en rojo por los valores adecuados para su cuenta:

   ```
   X-SES-CONFIGURATION-SET: ConfigSet
   From:Sender Name <sender@example.com>
   Subject:Amazon SES Test
   MIME-Version: 1.0
   Content-Type: multipart/mixed; boundary="YWVhZDFlY2QzMGQ2N2U0YTZmODU"
   
   --YWVhZDFlY2QzMGQ2N2U0YTZmODU
   Content-Type: multipart/alternative; boundary="3NjM0N2QwMTE4MWQ0ZTg2NTYxZQ"
   
   --3NjM0N2QwMTE4MWQ0ZTg2NTYxZQ
   Content-Type: text/plain; charset=UTF-8
   Content-Transfer-Encoding: quoted-printable
   
   Amazon SES Test
   
   This message was sent from Amazon SES using the SMTP interface.
   
   For more information, see:
   http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-smtp.html
   
   --3NjM0N2QwMTE4MWQ0ZTg2NTYxZQ
   Content-Type: text/html; charset=UTF-8
   Content-Transfer-Encoding: quoted-printable
   
   <html>
     <head>
   </head>
     <body>
       <h1>Amazon SES Test</h1>
         <p>This message was sent from Amazon SES using the SMTP interface.</p>
         <p>For more information, see
         <a ses:tags="samplekey0:samplevalue0;samplekey1:samplevalue1;" 
         href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-smtp.html">
         Using the Amazon SES SMTP Interface to Send Email</a> in the <em>Amazon SES
         Developer Guide</em>.</p>
     </body>
   </html>
   --3NjM0N2QwMTE4MWQ0ZTg2NTYxZQ--
   --YWVhZDFlY2QzMGQ2N2U0YTZmODU
   Content-Type: application/octet-stream
   MIME-Version: 1.0
   Content-Transfer-Encoding: base64
   Content-Disposition: attachment; filename="customers.txt"
   
   SUQsRmlyc3ROYW1lLExhc3ROYW1lLENvdW50cnkKMzQ4LEpvaG4sU3RpbGVzLENh
   bmFkYQo5MjM4OSxKaWUsTGl1LENoaW5hCjczNCxTaGlybGV5LFJvZHJpZ3VleixV
   bml0ZWQgU3RhdGVzCjI4OTMsQW5heWEsSXllbmdhcixJbmRpYQ==
   --YWVhZDFlY2QzMGQ2N2U0YTZmODU--
   ```

   Guarde y cierre el archivo.

1. En la línea de comando, escriba el comando siguiente. *sender@example.com*Sustitúyala por tu dirección de correo electrónico y *recipient@example.com* sustitúyela por la dirección de correo electrónico del destinatario.

   ```
   sendmail -f sender@example.com recipient@example.com < mime-email.txt
   ```

   Si el comando se ejecuta correctamente, sale sin proporcionar ninguna salida.

1. Compruebe en su bandeja de entrada si hay correo electrónico. Si el mensaje no se ha entregado, compruebe el registro de correo del sistema.

# Integración de Amazon SES con Sendmail
<a name="send-email-sendmail"></a>

Sendmail se lanzó a principios de los años ochenta y desde entonces se ha mejorado continuamente. Se trata de un agente de transferencia de mensajes (MTA) flexible y configurable con una gran comunidad de usuarios. Sendmail fue adquirida por Proofpoint en 2013, pero Proofpoint sigue ofreciendo una versión de código abierto de Sendmail. Puede descargar la [versión de código abierto de Sendmail](https://www.proofpoint.com/us/open-source-email-solution) en el sitio web de Proofpoint o a través de los administradores de paquetes de la mayoría de las distribuciones de Linux.

El procedimiento de esta sección muestra cómo configurar Sendmail para enviar correo electrónico a través de Amazon SES. Este procedimiento se ha probado en un servidor con Ubuntu 18.04.2 LTS.

**nota**  
Sendmail es una aplicación de terceros y no está desarrollada ni respaldada por Amazon Web Services. Los procedimientos de esta sección se proporcionan únicamente con fines informativos y están sujetos a cambios sin previo aviso.

## Requisitos previos
<a name="send-email-sendmail-prerequisites"></a>

Antes de completar el procedimiento de esta sección, debe realizar los pasos que se describen a continuación:
+ Instale el paquete de Sendmail en su servidor. 
**nota**  
En función de la distribución del sistema operativo que utilice, es posible que también tenga que instalar los siguientes paquetes: `sendmail-cf`, `m4` y `cyrus-sasl-plain`.
+ Verifique una identidad para utilizarla como la dirección del remitente ("From"). Para obtener más información, consulte [Creación de una identidad de dirección de correo electrónico](creating-identities.md#verify-email-addresses-procedure).

  Si su cuenta sigue estando en el entorno de pruebas de Amazon SES, también debe verificar las direcciones a las que va a enviar correo electrónico. Para obtener más información, consulte [Solicitud de acceso de producción (salida del entorno de pruebas de Amazon SES)](request-production-access.md).

Si utiliza Amazon SES para enviar correo electrónico desde una instancia de Amazon EC2, también debe realizar los pasos que se describen a continuación:
+ Es posible que tenga que asignar una dirección IP elástica a la instancia de Amazon EC2 para que los proveedores de correo electrónico acepten sus mensajes de correo electrónico. Para obtener más información, consulte [Direcciones IP elásticas de Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) en la *Guía del usuario de Amazon EC2*.
+ De forma predeterminada, Amazon Elastic Compute Cloud (Amazon EC2) restringe el tráfico de correo electrónico en el puerto 25. Para evitar tiempos de espera al enviar correo electrónico a través del punto de enlace de SMTP desde Amazon EC2, puede solicitar que se eliminen estas restricciones. Para obtener más información, consulte [¿Cómo elimino la restricción del puerto 25 de mi instancia o AWS Lambda función de Amazon EC2](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-port-25-throttle/)? en el Centro de AWS conocimiento.

  Como alternativa, puede modificar el procedimiento de esta sección para utilizar el puerto 587 en lugar del puerto 25.

## Configuración de Sendmail
<a name="send-email-sendmail-procedure"></a>

Realice los pasos de esta sección para configurar Sendmail con el fin de enviar correo electrónico mediante Amazon SES.

**importante**  
El procedimiento de esta sección supone que desea utilizar Amazon SES en el oeste de EE. UU. (Oregón) Región de AWS. Si desea utilizar una región diferente, sustituya todas las instancias de *email-smtp.us-west-2.amazonaws.com* de este procedimiento por el punto de enlace de SMTP de la región que desee. Para obtener una lista de los puntos de conexión URLs SMTP Regiones de AWS en los que Amazon SES está disponible, consulte [Amazon Simple Email Service (Amazon SES](https://docs.aws.amazon.com/general/latest/gr/rande.html#ses_region)) en el. *Referencia general de AWS*

**Para configurar Sendmail**

1. En un editor de archivos, abra el archivo `/etc/mail/authinfo`. Si el archivo no existe, créelo.

   Añada la siguiente línea a*/etc/mail/authinfo*:

   ```
   AuthInfo:email-smtp.us-west-2.amazonaws.com "U:root" "I:smtpUsername" "P:smtpPassword" "M:PLAIN"
   ```

   En el ejemplo anterior, realice los siguientes cambios:
   + *email-smtp.us-west-2.amazonaws.com*Sustitúyalo por el punto de conexión SMTP de Amazon SES que desee utilizar.
   + *smtpUsername*Sustitúyalo por tu nombre de usuario SMTP de Amazon SES.
   + *smtpPassword*Sustitúyala por tu contraseña SMTP de Amazon SES.
**nota**  
Sus credenciales de inicio de sesión en SMTP son diferentes de su ID de clave de AWS acceso y clave de acceso secreta. Para obtener más información sobre cómo obtener sus credenciales de inicio de sesión de SMTP, consulte [Obtención de las credenciales de SMTP de Amazon SES](smtp-credentials.md).

   Cuando termine, guarde `authinfo`.

1. En la línea de comandos, escriba el siguiente comando para generar el archivo `/etc/mail/authinfo.db`:

   ```
   sudo sh -c 'makemap hash /etc/mail/authinfo.db < /etc/mail/authinfo'
   ```

1. En la línea de comandos, escriba el siguiente comando para poder transmitir al punto de enlace de SMTP de Amazon SES.

   ```
   sudo sh -c 'echo "Connect:email-smtp.us-west-2.amazonaws.com RELAY" >> /etc/mail/access'
   ```

   En el comando anterior, *email-smtp.us-west-2.amazonaws.com* sustitúyala por la dirección del punto de conexión SMTP de Amazon SES que deseas usar.

1. En la línea de comandos, escriba el siguiente comando para regenerar*/etc/mail/access*.db:

   ```
   sudo sh -c 'makemap hash /etc/mail/access.db < /etc/mail/access'
   ```

1. En la línea de comandos, escriba el siguiente comando para crear copias de seguridad de los archivos `sendmail.mc` y `sendmail.cf`:

   ```
   sudo sh -c 'cp /etc/mail/sendmail.cf /etc/mail/sendmail_cf.backup && cp /etc/mail/sendmail.mc /etc/mail/sendmail_mc.backup'
   ```

1. Añada las siguientes líneas al archivo*/etc/mail/sendmail.mc* antes de cualquier definición. `MAILER()`

   ```
   define(`SMART_HOST', `email-smtp.us-west-2.amazonaws.com')dnl
   define(`RELAY_MAILER_ARGS', `TCP $h 25')dnl
   define(`confAUTH_MECHANISMS', `LOGIN PLAIN')dnl
   FEATURE(`authinfo', `hash -o /etc/mail/authinfo.db')dnl
   MASQUERADE_AS(`example.com')dnl
   FEATURE(masquerade_envelope)dnl
   FEATURE(masquerade_entire_domain)dnl
   ```

   En el texto anterior, haga lo siguiente:
   + *email-smtp.us-west-2.amazonaws.com*Sustitúyalo por el punto de conexión SMTP de Amazon SES que desee utilizar.
   + *example.com*Sustitúyalo por el dominio que quieres usar para enviar correos electrónicos.

   Cuando termine, guarde el archivo.
**nota**  
Amazon EC2 restringe las comunicaciones a través del puerto 25 de forma predeterminada. Si utiliza Sendmail en una instancia de Amazon EC2, debe completar la [Solicitud para eliminar los límites de envío de correo electrónico](https://aws-portal.amazon.com/gp/aws/html-forms-controller/contactus/ec2-email-limit-rdns-request).

1. En la línea de comandos, escriba el siguiente comando para poder escribir en *sendmail.cf*:

   ```
   sudo chmod 666 /etc/mail/sendmail.cf
   ```

1. En la línea de comandos, escriba el siguiente comando para volver a generar *sendmail.cf*:

   ```
   sudo sh -c 'm4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf'
   ```
**nota**  
Si detecta errores como "Command not found" y "No such file or directory", asegúrese de que los paquetes `sendmail-cf` y `m4` están instalados en el sistema.

1. En la línea de comandos, escriba el siguiente comando para restablecer los permisos de *sendmail.cf* a solo lectura:

   ```
   sudo chmod 644 /etc/mail/sendmail.cf
   ```

1. En la línea de comandos, escriba el siguiente comando para reiniciar Sendmail:

   ```
   sudo /etc/init.d/sendmail restart
   ```

   *Según la versión de Linux o Sendmail, si lo anterior no funciona, pruebe lo siguiente:*

   ```
   sudo su service sendmail restart
   ```

1. Siga los pasos que se describen a continuación para enviar un correo electrónico de prueba:

   1. En la línea de comandos, escriba el comando siguiente:

      ```
      /usr/sbin/sendmail -vf sender@example.com recipient@example.com
      ```

      *sender@example.com*Sustitúyelo por tu dirección de correo electrónico de origen. *recipient@example.com*Sustitúyala por la dirección de destino. Cuando haya terminado, pulse Enter.

   1. Escriba el siguiente contenido del mensaje. Pulse Enter al final de cada línea.

      ```
      From: sender@example.com
      To: recipient@example.com
      Subject: Amazon SES test email
      
      This is a test message sent from Amazon SES using Sendmail.
      ```

      Cuando haya terminado de escribir el contenido del correo electrónico, pulse Ctrl\$1D para enviarlo.

1. Compruebe el cliente de correo electrónico del destinatario para el correo electrónico. Si no puede encontrar el correo electrónico, busque en la carpeta de correo no deseado. Si continúa sin poder encontrar el email, consulte el registro de Sendmail en su servidor de email. El registro suele estar ubicado en*/var/log/mail.log* o*/var/log/maillog*. 

# Integración de Amazon SES con SMTP de IIS de Microsoft Windows Server
<a name="send-email-windows-server"></a>

Puede configurar el servidor SMTP de IIS de Microsoft Windows Server para enviar correo electrónico a través de Amazon SES. Estas instrucciones se escribieron con Microsoft Windows Server 2022 en una instancia de Amazon EC2. Puede utilizar la misma configuración en Microsoft Windows Server 2016.

**nota**  
Windows Server es una aplicación de terceros y no está desarrollada ni respaldada por Amazon Web Services. Los procedimientos de esta sección se proporcionan únicamente con fines informativos y están sujetos a cambios sin previo aviso.

**Para integrar el servidor SMTP de IIS de Microsoft Windows Server con Amazon SES**

1. En primer lugar, configure Microsoft Windows Server 2022 siguiendo las instrucciones siguientes.

   1. En la [Consola de administración de Amazon EC2](https://console.aws.amazon.com/ec2/home), lance una nueva instancia base de Amazon EC2 para Microsoft Windows Server 2022.

   1. Conéctese a la instancia e inicie sesión en ella mediante el Escritorio remoto, según las instrucciones de [Introducción a las instancias de Amazon EC2 para Windows](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2Win_GetStarted.html).

   1. Lanzar el panel de Server Manager.

   1. Instale el rol **Web Server**. Asegúrese de incluir las **herramientas de compatibilidad de administración de IIS 10** (una opción situada en la casilla de verificación **del servidor web**).

   1. Instale la característica **SMTP Server**.

1. A continuación, configurar el servicio de SMTP IIS con las siguientes instrucciones.

   1. Vuelva al panel de Server Manager.

   1. En el menú **Herramientas**, elija **Internet Information Services (IIS) 10.0 Manager**.

   1. Haga clic con el botón derecho en **SMTP Virtual Server \$11** y, a continuación, seleccione **Properties**.

   1. En la pestaña **Access**, en **Relay Restrictions**, elija **Relay**.

   1. En el cuadro de diálogo **Relay Restrictions**, elija **Add**.

   1. En **Single Computer**, introduzca **127.0.0.1** para la dirección IP. Ahora ha concedido acceso para que este servidor retransmita email a Amazon SES a través del servicio SMTP de IIS.

      En este procedimiento, suponemos que sus correos electrónicos se generan en este servidor. Si la aplicación que genera el correo electrónico se ejecuta en un servidor independiente, debe conceder acceso de retransmisión para dicho servidor en SMTP de IIS.
**nota**  
Para ampliar el relé de SMTP a subredes privadas, para **Relay Restriction**, utilice **Single Computer** 127.0.0.1 y **Group of Computers** 172.1.1.0 - 255.255.255.0 (en la sección de máscara de red). Para **Connection**, use **Single Computer** 127.0.0.1 y **Group of Computers** 172.1.1.0 - 255.255.255.0 (en la sección de máscara de red).

1. Por último, configure el servidor para enviar correo electrónico a través de Amazon SES con las siguientes instrucciones.

   1. Vuelva al cuadro de diálogo **SMTP Virtual Server \$11 Properties** y, a continuación, elija la pestaña **Delivery**.

   1. En la pestaña **Delivery**, elija **Outbound Security**.

   1. Seleccione **Basic Authentication** (Autenticación básica) y, a continuación, ingrese sus credenciales de SMTP de Amazon SES. Puede obtener estas credenciales desde la consola de Amazon SES si sigue el procedimiento descrito en [Obtención de las credenciales de SMTP de Amazon SES](smtp-credentials.md).
**importante**  
Sus credenciales SMTP no son las mismas que su identificador de clave de AWS acceso y su clave de acceso secreta. No intente utilizar sus AWS credenciales para autenticarse en el punto final SMTP. Para obtener más información acerca de las credenciales, consulte [Tipos de credenciales de Amazon SES](send-email-concepts-credentials.md).

   1. Asegúrese de que **TLS encryption** está seleccionado.

   1. Vuelva a la pestaña **Delivery**.

   1. Elija **Outbound Connections**.

   1. En el cuadro de diálogo **Outbound Connections**, asegúrese de que el puerto sea 25 o 587. 

   1. Seleccione **Avanzado**.

   1. Para el nombre del **Smart host (Anfitrión inteligente)**, ingrese el punto de enlace de Amazon SES de que utilizará (por ejemplo, *email-smtp.us-west-2.amazonaws.com*). Para obtener una lista de los puntos de conexión URLs Regiones de AWS en los que Amazon SES está disponible, consulte [Amazon Simple Email Service (Amazon SES)](https://docs.aws.amazon.com/general/latest/gr/rande.html#ses_region) en el *Referencia general de AWS*.

   1. Vuelva al panel de Server Manager.

   1. En el panel de Server Manager, haga clic con el botón derecho en **SMTP Virtual Server \$1 1** y, a continuación, reinicie el servicio para recoger la nueva configuración.

   1. Envíe un correo electrónico a través de este servidor. Puede examinar los encabezados de mensaje para confirmar que se ha entregado a través de Amazon SES.

# Prueba de la conexión a la interfaz SMTP de Amazon SES mediante la línea de comandos
<a name="send-email-smtp-client-command-line"></a>

Puede utilizar los métodos descritos en esta sección desde la línea de comandos para probar la conexión con el punto de enlace SMTP de Amazon SES, validar las credenciales de SMTP 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 acerca de cómo solucionar problemas con las conexiones SMTP, consulte [Problemas de SMTP de Amazon SES](troubleshoot-smtp.md).

## Requisitos previos
<a name="send-email-smtp-client-command-line-prereqs"></a>

Cuando se conecta a la interfaz SMTP de Amazon SES, debe proporcionar un conjunto de credenciales de SMTP. Estas credenciales SMTP 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 credenciales de SMTP, consulte [Obtención de las credenciales de SMTP de Amazon SES](smtp-credentials.md).

## Prueba de la conexión a la interfaz de SMTP de Amazon SES
<a name="send-email-smtp-client-command-line-testing"></a>

Puede utilizar la línea de comandos para probar su conexión a la interfaz de SMTP de Amazon SES sin autenticar 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](troubleshoot-smtp.md).

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

------
#### [ Linux, macOS, or Unix ]

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

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

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

  En el comando anterior, *email-smtp.us-west-2.amazonaws.com* sustitúyalo por la URL del punto de conexión SMTP de Amazon SES de tu AWS región. Para obtener más información, consulte [Regiones y Amazon SES](regions.md).

  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 SSL implícito para conectarse a la interfaz SMTP a través del puerto 465.

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

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

  En el comando anterior, *email-smtp.us-west-2.amazonaws.com* sustitúyalo por la URL del punto de conexión SMTP de Amazon SES de tu AWS región. Para obtener más información, consulte [Regiones y Amazon SES](regions.md).

  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-](https://docs.microsoft.com/en-us/powershell/module/nettcpip/test-netconnection) PowerShell para conectarse al servidor SMTP de Amazon SES.

**nota**  
El cmdlet `Test-NetConnection` puede determinar si la computadora puede conectarse al punto de enlace de SMTP de Amazon SES. Sin embargo, no comprueba si el equipo puede realizar una conexión SSL implícita o explícita al punto de enlace SMTP. Para probar una conexión SSL, puede instalar OpenSSL para Windows para enviar un correo electrónico de prueba.

**Para conectarse a la interfaz SMTP mediante el cmdlet `Test-NetConnection`**
+ En PowerShell, introduzca el siguiente comando para conectarse al servidor SMTP de Amazon SES:

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

  En el comando anterior, *email-smtp.us-west-2.amazonaws.com* sustitúyalo por la URL del punto de conexión SMTP de Amazon SES de tu AWS región y *587* sustitúyelo por el número de puerto. Para obtener más información acerca de los puntos de enlace regionales de Amazon SES, consulte [Regiones y Amazon SES](regions.md).

  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 correo electrónico con la interfaz de SMTP de Amazon SES
<a name="send-email-using-openssl"></a>

También puede utilizar la línea de comandos para enviar mensajes mediante la interfaz de SMTP de Amazon SES. Este procedimiento es útil para probar las credenciales de SMTP y la capacidad de destinatarios específicos para recibir mensajes que envíe mediante Amazon SES.

------
#### [ Linux, macOS, or Unix ]

Cuando un remitente de correo electrónico se conecta a un servidor SMTP, 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 *conversación de SMTP*. Cuando se conecte al servidor SMTP de Amazon SES con OpenSSL, el servidor esperará que se produzca una conversación de SMTP.

Si tiene previsto utilizar OpenSSL para conectarse a la interfaz SMTP, tendrá que codificar sus credenciales de SMTP en base64. Esta sección incluye procedimientos para codificar sus credenciales en base64.

**Para enviar un correo electrónico desde la línea de comandos utilizando la interfaz de SMTP**

1. Introduzca lo siguiente en la línea de comandos y *email-smtp.us-west-2.amazonaws.com* sustitúyalo por la URL del punto de conexión SMTP de Amazon SES correspondiente a su Región de AWS. Para obtener más información, consulte[Regiones y Amazon SES](regions.md). :

   ```
    1. #!/bin/bash
    2. 
    3. # Prompt user to provide following information
    4. read -p "Configuration set: " CONFIGSET
    5. read -p "Enter SMTP username: " SMTPUsername
    6. read -p "Enter SMTP password: " SMTPPassword
    7. read -p "Sender email address: " MAILFROM
    8. read -p "Receiver email address: " RCPT
    9. read -p "Email subject: " SUBJECT
   10. read -p "Message to send: " DATA
   11. 
   12. echo
   13. 
   14. # Encode SMTP username and password using base64
   15. EncodedSMTPUsername=$(echo -n "$SMTPUsername" | openssl enc -base64)
   16. EncodedSMTPPassword=$(echo -n "$SMTPPassword" | openssl enc -base64)
   17. 
   18. # Construct the email
   19. Email="EHLO example.com
   20. AUTH LOGIN
   21. $EncodedSMTPUsername
   22. $EncodedSMTPPassword
   23. MAIL FROM: $MAILFROM
   24. RCPT TO: $RCPT
   25. DATA
   26. X-SES-CONFIGURATION-SET: $CONFIGSET
   27. From: $MAILFROM
   28. To: $RCPT
   29. Subject: $SUBJECT
   30. 
   31. $DATA
   32. .
   33. QUIT"
   34. 
   35. echo "$Email" | openssl s_client -crlf -quiet -starttls smtp -connect email-smtp.us-west-2.amazonaws.com:587
   ```

1. En la petición de cada variable, escriba sus propios valores.

1. 
   + Para realizar el envío mediante SSL implícito a través del puerto 465, use:

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

   Si Amazon SES aceptó el mensaje, verá un resultado similar 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](https://docs.microsoft.com/en-us/dotnet/api/system.net.mail.smtpclient?view=netframework-4.8)clase para enviar correos electrónicos mediante SSL explícito a través del puerto 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 SSL explícito**

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`.

1. Realice los cambios siguientes en el archivo que creó en el paso anterior:
   + *sender@example.com*Sustitúyala por la dirección de correo electrónico desde la que deseas enviar el mensaje.
   + *recipient@example.com*Sustitúyala por la dirección de correo electrónico a la que deseas enviar el mensaje.
   + *email-smtp.us-west-2.amazonaws.com*Sustitúyala por la URL del punto de conexión SMTP de Amazon SES de tu AWS región. Para obtener más información, consulte [Regiones y Amazon SES](regions.md).

1. En PowerShell, introduzca el siguiente comando:

   ```
   .\path\to\SendEmail.ps1
   ```

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

1. Cuando se le solicite, escriba su nombre de usuario y contraseña de SMTP.

Como alternativa, puede utilizar el [System.Web.Mail. SmtpMail](https://docs.microsoft.com/en-us/dotnet/api/system.web.mail.smtpmail?view=netframework-4.8)clase para enviar correos electrónicos mediante SSL implícito 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 SSL implícito**

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`.

1. Realice los cambios siguientes en el archivo que creó en el paso anterior:
   + *sender@example.com*Sustitúyala por la dirección de correo electrónico desde la que deseas enviar el mensaje.
   + *recipient@example.com*Sustitúyala por la dirección de correo electrónico a la que deseas enviar el mensaje.
   + *email-smtp.us-west-2.amazonaws.com*Sustitúyala por la URL del punto de conexión SMTP de Amazon SES de tu AWS región. Para obtener más información, consulte [Regiones y Amazon SES](regions.md).

1. En PowerShell, introduzca el siguiente comando:

   ```
   .\path\to\SendEmail.ps1
   ```

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

1. Cuando se le solicite, escriba su nombre de usuario y contraseña de SMTP.

------