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 de correo electrónico, análisis y validación de correo electrónico.

Las siguientes instrucciones le muestran cómo configurar Mailgun como retransmisión de correo electrónico con Postfix.

Antes de comenzar

  1. Regístrese y cree una nueva cuenta de Mailgun en Google Cloud Marketplace .

  2. Obtenga sus credenciales. Las instrucciones requieren que conozca su nombre de usuario, contraseña y nombre de host SMTP de Mailgun. Obtenga su nombre de usuario y contraseña desde el panel de control de Mailgun, en la sección Dominios .

    Dependiendo de cómo esté configurado el dominio en Mailgun, el nombre de host SMTP es smtp.mailgun.org o smtp.eu.mailgun.org .

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

Configurar Mailgun como retransmisión de correo con Postfix

Configurar Mailgun como retransmisión de correo permite al agente de transferencia de correo de Postfix reenviar correos electrónicos destinados a la entrega remota.

  1. Conéctese a su instancia mediante SSH.

    gcloud compute ssh [INSTANCE_NAME]
    

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

  2. Conviértete en superusuario y configura una máscara de usuario segura.

    user@test-instance:~$ sudo su -
    
    root@test-instance:~# umask 077
    
  3. Instale 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
    

  4. Cuando se le solicite, seleccione la configuración Local Only y acepte las opciones predeterminadas para los nombres de dominio.

  5. Modifique las opciones de configuración de Postfix. Las opciones de configuración de Postfix se establecen en el archivo main.cf Abra el archivo con el editor de texto de su elección.

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

    # default_transport = error
    # relay_transport = error
    
  7. Agregue el servicio SMTP Mailgun agregando la siguiente línea al final del archivo.

    relayhost = [smtp.mailgun.org]:2525
    
  8. Para aplicar la compatibilidad con SSL/TLS y configurar la autenticación SMTP para estas solicitudes, agregue las siguientes líneas al final del archivo. Un módulo de capa de seguridad y acceso simple (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. Guarde sus cambios y cierre el archivo.

  10. Genere el mapa de contraseñas SASL.

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

      root@test-instance:~# cat > /etc/postfix/sasl_passwd << EOF
      
    2. Cuando se le solicite, ingrese los detalles del servicio, reemplazando YOUR_SMTP_LOGIN y YOUR_SMTP_PASSWORD con sus credenciales. Consulte la ayuda de Mailgun para obtener instrucciones sobre cómo ver o cambiar sus credenciales por dominio.

      > [smtp.mailgun.org]:2525 YOUR_SMTP_LOGIN:YOUR_SMTP_PASSWORD
      
    3. Cierre y guarde el archivo escribiendo el delimitador, EOF .

      > EOF
      
  11. Utilice 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
    
  12. A continuación, elimine el archivo que contiene sus credenciales porque ya no es necesario.

    root@test-instance:~# rm /etc/postfix/sasl_passwd
    
  13. Establezca los permisos en su 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. Finalmente, vuelva a cargar su configuración para cargar los parámetros modificados.

    Debian

    root@test-wheezy:~# /etc/init.d/postfix restart
    

    CentOS

    [root@test-centos ~]# postfix reload
    

  15. Pruebe su configuración. Instale el paquete mailx o mailutils y pruebe su 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
    

    Busque en los registros de su sistema una línea de estado que contenga status y el código de respuesta exitosa 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 ejemplos detallados e información sobre otros temas, incluido el seguimiento y enrutamiento de mensajes, lea la documentación de Mailgun .

Explora arquitecturas de referencia, diagramas y prácticas recomendadas sobre Google Cloud. Eche un vistazo a nuestro Centro de arquitectura en la nube .