Enviar correo electrónico con Mailgun


Google Cloud trabaja con Mailgun para proporcionar un servicio de correo electrónico que tiene una API programática, retención de registros, personalización del correo electrónico, estadísticas y validación de correo electrónico.

En las siguientes instrucciones, se muestra cómo configurar Mailgun como una retransmisión de correo electrónico con Postfix.

Antes de comenzar

  1. Regístrate y crea una cuenta nueva de Mailgun en Google Cloud Marketplace.

  2. Obtén tu credencial Las instrucciones requieren que conozcas tu nombre de usuario, la contraseña y el nombre de host del SMTP de Mailgun. Obtén tu nombre de usuario y contraseña desde el panel de control de Mailgun, en la sección Dominios.

    Según la configuración del dominio en Mailgun, el nombre de host del SMTP es smtp.mailgun.org o smtp.eu.mailgun.org.

  3. Configura las reglas de firewall para permitir el tráfico saliente en el puerto TCP 2525.

Configura Mailgun como retransmisión de correo con Postfix

Si configuras Mailgun como servicio de retransmisión de correo, permitirás que el agente de transferencia de correo de Postfix reenvíe correos electrónicos destinados a la entrega remota.

  1. Conéctate a la instancia mediante SSH.

    gcloud compute ssh [INSTANCE_NAME]
    

    [INSTANCE_NAME] es el nombre de la instancia de VM desde la que quieres enviar correo electrónico.

  2. Conviértete en superusuario y establece una umask de seguridad.

    user@test-instance:~$ sudo su -
    
    root@test-instance:~# umask 077
    
  3. Instala el agente de transporte de correos 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
    

  4. Cuando se te solicite, selecciona la configuración Local Only y acepta las opciones predeterminadas para los nombres de dominio.

  5. Modifica las opciones de configuración de Postfix. Las opciones de configuración de Postfix se establecen en el archivo main.cf. Abre el archivo con el editor de texto que prefieras.

    root@test-instance:~# vi /etc/postfix/main.cf
    
  6. Si existen, comenta las líneas siguientes.

    # default_transport = error
    # relay_transport = error
    
  7. Para agregar el servicio SMTP de Mailgun, agrega la línea siguiente al final del archivo.

    relayhost = [smtp.mailgun.org]:2525
    
  8. Si quieres aplicar la compatibilidad con SSL/TLS y configurar la autenticación SMTP para estas solicitudes, agrega las siguientes líneas al final del archivo. Un módulo simple de acceso y capa de seguridad (SASL) maneja 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
    
  9. Guarda los cambios y cierra el archivo.

  10. Genera el mapa de contraseña SASL.

    1. Crea un archivo de contraseña nuevo que esté listo para la entrada estándar.

      root@test-instance:~# cat > /etc/postfix/sasl_passwd << EOF
      
    2. Cuando se te solicite, ingresa los detalles del servicio y reemplaza YOUR_SMTP_LOGIN y YOUR_SMTP_PASSWORD por tus credenciales. Consulta la ayuda de Mailgun a fin de obtener instrucciones para ver o cambiar tus credenciales por dominio.

      > [smtp.mailgun.org]:2525 YOUR_SMTP_LOGIN:YOUR_SMTP_PASSWORD
      
    3. Para cerrar y guardar el archivo, escribe el delimitador EOF.

      > EOF
      
  11. Usa la herramienta 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
    
  12. A continuación, quita el archivo que contiene tus credenciales porque ya no es necesario.

    root@test-instance:~# rm /etc/postfix/sasl_passwd
    
  13. Establece los permisos en tu 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
    
  14. 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
    

  15. Prueba la configuración. Instala el paquete mailx o mailutils 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 del sistema una línea de estado que contenga status y el código de respuesta correcto del servidor (250).

    Debian

    root@test-wheezy:~# tail -n 5 /var/log/syslog
    

    CentOS

    [root@test-centos ~]# tail -n 5 /var/log/maillog
    

Para obtener más información y ejemplos detallados, incluido cómo rastrear y enrutar mensajes, consulta la documentación de Mailgun.

Explora arquitecturas de referencia, diagramas y prácticas recomendadas sobre Google Cloud. Consulta nuestro Cloud Architecture Center.