

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.

# 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**  
En el procedimiento de esta sección se presupone 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*. 