Integración de Amazon SES con Sendmail - Amazon Simple Email Service

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

Integración de Amazon SES con Sendmail

Sendmail se lanzó a principios de los años ochenta y desde entonces se ha mejorado continuamente. Es un agente de transferencia de mensajes flexible y configurable (MTA) 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 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 le muestra cómo configurar Sendmail para enviar correo electrónico a través de Amazon. SES Este procedimiento se probó 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

Antes de completar el procedimiento de esta sección, debe realizar los pasos que se describen a continuación:

Si utilizas Amazon SES para enviar correos electrónicos desde una EC2 instancia de Amazon, también debes completar los siguientes pasos:

  • Es posible que tengas que asignar una dirección IP elástica a tu EC2 instancia de Amazon para que los proveedores de correo electrónico de recepción acepten tu correo electrónico. Para obtener más información, consulte las direcciones IP EC2 elásticas de Amazon en la Guía del EC2 usuario de Amazon.

  • Amazon Elastic Compute Cloud (AmazonEC2) restringe el tráfico de correo electrónico a través del puerto 25 de forma predeterminada. Para evitar tiempos de espera al enviar correos electrónicos a través del SMTP punto de conexión desde AmazonEC2, puedes solicitar que se eliminen estas restricciones. Para obtener más información, consulta ¿Cómo elimino la restricción en el puerto 25 de mi EC2 instancia o AWS Lambda función de Amazon? 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

Complete los pasos de esta sección para configurar Sendmail para enviar correo electrónico mediante Amazon. SES

importante

El procedimiento de esta sección supone que quieres 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 SMTP punto final de la región deseada. Para obtener una lista de SMTP los puntos de conexión URLs Regiones de AWS en los que Amazon SES está disponible, consulta Amazon Simple Email Service (AmazonSES) 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:

    • Reemplazar email-smtp.us-west-2.amazonaws.com con el SES SMTP punto de conexión de Amazon que quieras usar.

    • Reemplazar smtpUsername con tu nombre de SES SMTP usuario de Amazon.

    • Reemplazar smtpPassword con tu SES SMTP contraseña de Amazon.

    nota

    Tus credenciales SMTP de inicio de sesión son diferentes de las de tu clave de AWS acceso y de tu clave de acceso secreta. Para obtener más información sobre cómo obtener sus credenciales de SMTP inicio de sesión, consulte. Obtención de SES SMTP credenciales de Amazon

    Cuando termine, guarde authinfo.

  2. 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'
  3. En la línea de comandos, escriba el siguiente comando para añadir soporte para la retransmisión al SES SMTP punto final de Amazon.

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

    En el comando anterior, sustituya email-smtp.us-west-2.amazonaws.com con la dirección del SES SMTP punto de conexión de Amazon que quieres usar.

  4. 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'
  5. 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'
  6. 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:

    • Reemplazar email-smtp.us-west-2.amazonaws.com con el SES SMTP punto de conexión de Amazon que quieras usar.

    • Reemplazar example.com con 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 utilizas Sendmail en una EC2 instancia de Amazon, debes completar la Solicitud para eliminar las limitaciones de envío de correos electrónicos.

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

    sudo chmod 666 /etc/mail/sendmail.cf
  8. 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.

  9. 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
  10. 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
  11. 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

      Reemplazar sender@example.com con tu dirección de correo electrónico de origen. Reemplazar recipient@example.com con la dirección de destino. Cuando haya terminado, pulse Enter.

    2. 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+D para enviarlo.

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