Google Cloud colabora con Mailgun para ofrecer un servicio de correo electrónico que incluye una API programática, retención de registros, personalización de correos, analíticas y validación de correos.
En las siguientes instrucciones se explica cómo configurar Mailgun como relay de correo con Postfix.
Antes de empezar
Regístrate y crea una cuenta de Mailgun en Google Cloud Marketplace.
Obtén tus credenciales. Para seguir las instrucciones, debes conocer tu nombre de usuario, contraseña y nombre de host de SMTP de Mailgun. Obtén tu nombre de usuario y contraseña en el panel de control de Mailgun, en la sección Domains (Dominios).
En función de cómo se configure el dominio en Mailgun, el nombre de host SMTP será
smtp.mailgun.org
osmtp.eu.mailgun.org
.Configura tus reglas de cortafuegos para permitir el tráfico saliente en el puerto TCP
2525
.
Configurar Mailgun como un relay de correo con Postfix
Configurar Mailgun como un relay de correo permite que el agente de transferencia de correo Postfix reenvíe los correos destinados a la entrega remota.
Conéctate a tu instancia mediante SSH.
gcloud compute ssh [INSTANCE_NAME]
donde
[INSTANCE_NAME]
es el nombre de la instancia de VM desde la que quieres enviar el correo.Conviértete en superusuario y define una umask segura.
user@test-instance:~$ sudo su -
root@test-instance:~# umask 077
Instala el agente de transporte de correo Postfix.
Debian
root@test-instance:~# apt update && apt -y install postfix libsasl2-modules
CentOS
root@test-instance:~# yum install postfix cyrus-sasl-plain cyrus-sasl-md5 -y
Cuando se te pida, selecciona la configuración
Local Only
y acepta las opciones predeterminadas para los nombres de dominio.Modifica las opciones de configuración de Postfix. Las opciones de configuración de Postfix se definen en el archivo
main.cf
. Abre el archivo con el editor de texto que prefieras.root@test-instance:~# vi /etc/postfix/main.cf
Si existen, comenta las siguientes líneas.
# default_transport = error # relay_transport = error
Añade el servicio SMTP de Mailgun añadiendo la siguiente línea al final del archivo.
relayhost = [smtp.mailgun.org]:2525
Para aplicar la compatibilidad con SSL/TLS y configurar la autenticación SMTP para estas solicitudes, añade las siguientes líneas al final del archivo. Un módulo de nivel de seguridad y acceso simples (SASL) gestiona la autenticación en la configuración de Postfix.
smtp_tls_security_level = encrypt smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous
Guarda los cambios y cierra el archivo.
Genera el mapa de contraseñas SASL.
Crea un archivo de contraseñas nuevo que esté listo para la entrada estándar.
root@test-instance:~# cat > /etc/postfix/sasl_passwd << EOF
Cuando se te pida, introduce los detalles del servicio y sustituye
YOUR_SMTP_LOGIN
yYOUR_SMTP_PASSWORD
por tus credenciales. Consulta la ayuda de Mailgun para obtener instrucciones sobre cómo ver o cambiar tus credenciales por dominio.> [smtp.mailgun.org]:2525 YOUR_SMTP_LOGIN:YOUR_SMTP_PASSWORD
Cierra y guarda el archivo escribiendo el delimitador,
EOF
.> EOF
Usa la utilidad
postmap
para generar un archivo.db
.root@test-instance:~# postmap /etc/postfix/sasl_passwd
root@test-instance:~# ls -l /etc/postfix/sasl_passwd* -rw------- 1 root root 68 Jun 1 10:50 /etc/postfix/sasl_passwd -rw------- 1 root root 12288 Jun 1 10:51 /etc/postfix/sasl_passwd.db
A continuación, elimina el archivo que contiene tus credenciales, ya que no es necesario.
root@test-instance:~# rm /etc/postfix/sasl_passwd
Define los permisos del archivo
.db
.root@test-instance:~# chmod 600 /etc/postfix/sasl_passwd.db
root@test-instance:~# ls -la /etc/postfix/sasl_passwd.db -rw------- 1 root root 12288 Aug 31 18:51 /etc/postfix/sasl_passwd.db
Por último, vuelve a cargar la configuración para cargar los parámetros modificados.
Debian
root@test-wheezy:~# /etc/init.d/postfix restart
CentOS
[root@test-centos ~]# postfix reload
Prueba tu configuración. Instala el paquete
mailx
omailutils
y prueba tu configuración.Debian
root@test-wheezy:~# apt -y install mailutils
CentOS
[root@test-centos ~]# yum install mailx -y
Envía un mensaje de prueba.
root@test-instance:~# echo 'Test passed.' | mail -s 'Test-Email' EMAIL@EXAMPLE.COM
Busca en los registros de tu sistema una línea de estado que contenga
status
y el código de respuesta del servidor correcto(250)
.Debian
root@test-wheezy:~# tail -n 5 /var/log/syslog
CentOS
[root@test-centos ~]# tail -n 5 /var/log/maillog
Para ver ejemplos detallados e información sobre otros temas, como el seguimiento y el enrutamiento de mensajes, consulta la documentación de Mailgun.
Consulta arquitecturas de referencia, diagramas y prácticas recomendadas sobre Google Cloud. Consulta nuestro Centro de arquitectura de Cloud.