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 Postfix
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
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
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 paquetelibsasl2-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.
-
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).
Configuración de Postfix
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
-
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. -
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.
-
En un editor de texto, abra el archivo
/etc/postfix/sasl_passwd
. Si el archivo no existe todavía, créelo. -
Añada la línea siguiente a
/etc/postfix/sasl_passwd
:[
email-smtp.us-west-2.amazonaws.com
]:587SMTPUSERNAME
:SMTPPASSWORD
nota
Sustituya
SMTPUSERNAME
y por susSMTPPASSWORD
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.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.Guarde y cierre
sasl_passwd
. -
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
-
(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:-
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
-
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
-
-
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 > /etc/ssl/certs/ca-bundle.crt
Una vez generado el certificado, escriba el comando siguiente:
sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt'
-
-
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
-
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. . -
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
Este ejemplo muestra cómo enviar un correo electrónico que utiliza un conjunto de configuración 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, 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
-
En un editor de texto, cree un nuevo archivo denominado
mime-email.txt
. -
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.
-
En la línea de comando, escriba el comando siguiente.
sender@example.com
Sustitúyala por tu dirección de correo electrónico yrecipient@example.com
sustitúyela por la dirección de correo electrónico del destinatario.sendmail -f
sender@example.com
recipient@example.com
< mime-email.txtSi el comando se ejecuta correctamente, sale sin proporcionar ninguna salida.
-
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.