Envía correos electrónicos con Mailgun

Mailgun es un servicio de correo electrónico de terceros que ofrece a los usuarios de Compute Engine hasta 10,000 mensajes de correo electrónico gratuitos por mes. Mailgun también ofrece una API programática, la retención de registros, la personalización del correo electrónico, estadísticas, validación de correo electrónico y otras opciones.

Sigue estas instrucciones para registrarte y usar Mailgun.

Antes de comenzar

  1. Crea una cuenta nueva de Mailgun en la página de socio de Google* de Mailgun. Como usuario de Compute Engine, tus primeros 30,000 mensajes son gratuitos cada mes. Consulta la Calculadora de precios mensual de Mailgun para ver cuánto cuesta enviar mensajes adicionales y los descuentos por volumen.

  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.

    El nombre de host del SMTP de Mailgun es smtp.mailgun.org.

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

* Google recibe compensación por los clientes que se registran para una cuenta no gratuita.

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 tu instancia con SSH.

    gcloud compute ssh [INSTANCE_NAME]
        

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

  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. Cuando se te solicite, acepta las opciones predeterminadas para los nombres de dominio, pero selecciona la configuración Local Only.

    Debian


        root@test-instance:~# apt-get update && apt-get install postfix libsasl2-modules -y
        

    CentOS


        root@test-instance:~# yum install postfix cyrus-sasl-plain cyrus-sasl-md5 -y
        

  4. 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
        
  5. Si existen, comenta las líneas siguientes.

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

    relayhost = [smtp.mailgun.org]:2525
        
  7. A continuación, se agregan las líneas siguientes con el fin de aplicar la compatibilidad con SSL/TLS y configurar la autenticación STMP para estas solicitudes. Un módulo simple de acceso y capa de seguridad (SASL) maneja la autenticación en la configuración de Postfix. Agrega las líneas siguientes al final del archivo.

    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.

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

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

          > EOF
          
  9. 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
        
  10. A continuación, quita el archivo que contiene tus credenciales porque ya no es necesario.

        root@test-instance:~# rm /etc/postfix/sasl_passwd
        
  11. 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
        
  12. 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
        

  13. Prueba la configuración. Instala el paquete mailx o mailutils y prueba tu configuración.

    Debian


        root@test-wheezy:~# apt-get install mailutils -y
        

    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 realizar seguimiento de mensajes y enrutarlos, consulta la Documentación de Mailgun.

Configuración SMTP de Mailgun

Usa la siguiente configuración SMTP específica de Mailgun para configurar clientes:

  • Host: smtp.mailgun.org
  • Puerto: 2525

Prueba otras funciones de Google Cloud. Revisa nuestros instructivos.