Introducción a la automatización de correo electrónico Mailgun


Mailgun es un servicio de automatización de correo electrónico proporcionado por Rackspace. Ofrece un servicio completo de correo electrónico basado en la nube para enviar, recibir y hacer seguimiento de correos electrónicos enviados a través de sus sitios web y aplicaciones. Las funciones de Mailgun están disponibles a través de una RESTful API intuitiva o a través del uso de protocolos tradicionales de correo electrónico como SMTP.

Los clientes de Rackspace Cloud pueden enviar 50,000 correos electrónicos por mes gratis con el plan básico de Mailgun. A partir de julio de 2013, Rackspace preconfigura imágenes de Windows y Linux para Cloud Servers con Managed Operations para enviar correo electrónico a través de Mailgun utilizando SMTP.

La ventaja de Mailgun está en su gran variedad de casos de uso. Mailgun tiene la capacidad de integrarse con un servicio postfix local, enviar correos electrónicos a través de SMTP e integrarse de forma programática con sus aplicaciones de nube existentes. Por ejemplo, Mailgun, cuando se configura de forma adecuada, puede entregar correos electrónicos desde un software de un sistema de gestión de contenido (CMS, por sus siglas en inglés) como WordPress, integrarse con un software de seguimiento de bugs o cualquier software de código abierto que necesite enviar correos electrónicos. Mailgun también se puede usar para manejar correos electrónicos entrantes.

Los clientes de Rackspace Cloud pueden acceder a Mailgun directamente desde el panel de control de la nube, como se ve en la imagen a continuación. Para enviar más correos electrónicos por mes que los 50,000 gratis incluidos en el plan básico, deberá elegir un plan pago en el panel de control de Mailgun.

Vea más información sobre precios de Mailgun para clientes de Rackspace en su página de precios para Rackspace.

Este artículo proporcionará configuraciones de ejemplo para Mailgun. Para aprovechar al máximo sus servicios de Mailgun, asegúrese de ver los recursos avanzados disponibles en la sección Información relacionada.

En esta página:

Transmitir con Postfix

Configurar Mailgun como un correo de confianza permitirá a Postfix reenviar correos electrónicos destinados a entregas remotas. Antes de comenzar, asegúrese de que Postfix esté instalado y funcionando en el servidor.

Nota: nuestro Centro de Conocimientos contiene un artículo que detalla el proceso de instalación de Postfix aquí.

Para configurar Mailgun debemos modificar las opciones de configuración de Postfix. Las opciones de configuración de Postfix se detallan en el archivo main.cf .

Abra el archivo con el editor de textos que elija. En este ejemplo usamos vim .

vim /etc/postfix/main.cf

El parámetro relayhost especifica el host predeterminado para enviar correos para entrega remota. Aquí modificamos el valor para incluir el nombre del host y puerto del servidor smtp de Mailgun, como se muestra a continuación.

relayhost = [smtp.mailgun.org]:587

Ahora Postfix reenviará solicitudes de correo electrónico externo al servidor de Mailgun.

Luego, configuramos la autenticación smtp para las solicitudes. Un módulo de nivel de seguridad y acceso simple (SASL, por sus siglas en inglés) maneja esto en la configuración de Postfix. Modifique las siguientes configuraciones de SASL.

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = static:username:password
smtp_sasl_security_options = noanonymous

Nota: utilizará el nombre de usuario y la contraseña del panel de control de Mailgun.

Servicio técnico SSL/TLS (opcional)

Modifique las siguientes opciones de configuración para incluir el servicio técnico SSL/TLS.

smtp_tls_security_level = may
smtpd_tls_security_level = may
smtp_tls_note_starttls_offer = yes

Al utilizar la codificación TLS, asegúrese de que Postfix sepa dónde encontrar la base de datos de la autoridad que emite certificados (CA, por sus siglas en inglés) para su distribución linux:

smtpd_tls_key_file = /etc/ssl/private/smtpd.key
smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt
smtpd_tls_CApath = /etc/ssl/certs

Revise el parámetro relayhost y configure el puerto SSL/TLS.

relayhost = [smtp.mailgun.org]:465

Limpieza

Vuelva a cargar el servicio Postfix para cargar las modificaciones hechas en main.cf.

sudo /etc/init.d/postfix restart

Postfix ahora retransmitirá los correos electrónicos salientes a Mailgun.

Enviar correos electrónicos a través de SMTP

La integración con Mailgun está disponible de forma programática desde lenguajes con una biblioteca SMTP. Observemos un script Python trivial que indica a Mailgun que envíe un correo electrónico a través de SMTP. Aprovecharemos la biblioteca smtplib disponible de forma nativa en Python.

import smtplib

def send_message_via_smtp():
    smtp = smtplib.SMTP("smtp.mailgun.org", 587)   
    smtp.login("username@example.com", "password")
    smtp.sendmail("from@example.com", "to@example.com", "mime_message_body")

send_message_via_smtp();

Comenzamos importando el paquete smtplib con import. Luego creamos una función Python para que contenga el código. Adentro creamos un objeto denominado smtp que es una instancia de SMTP. En el método de ingreso colocamos nuestras credenciales de SMTP mailgun. En el método de envío de correo electrónico definimos el remitente, el destinatario y los datos del cuerpo del correo electrónico. Finalizamos el script con send_message_via_smtp function.

Nota: utilizará el nombre de usuario y la contraseña del panel de control de Mailgun.

Envío de correos electrónicos a través de HTTP

SMTP es el protocolo más común que se utiliza al enviar correo electrónico. Lo utilizan la mayoría de las aplicaciones de correo electrónico. Sin embargo, SMTP tal vez no sea la primera opción para codificar debido a las bases del formato MIME. El envío a través de HTTP ofrece un enfoque más simple. Con HTTP la aplicación simplemente publica el contenido como parámetros en Mailgun. Los parámetros coinciden con aquellos que se necesitan al enviar un correo electrónico normal: "de", "para", "Cc", "Cco", "asunto" etc.

Observemos un ejemplo trivial de cURL.

curl -s -k --user api:key-3ax6xnjp29jd6fds4gc373sgvjxteol0 \
https://api.mailgun.net/v2/samples.mailgun.org/messages \    
-F from='Excited User <me@samples.mailgun.org>'\    
-F to=tom@example.com\    
-F to=mary@example.com\    
-F subject='Hello'\    
-F text='Testing some Mailgun awesomeness!' 

En el ejemplo anterior se envía un correo electrónico a dos direcciones diferentes, con el asunto"Hello" y el cuerpo "Testing some Mailgun awesomeness!". La API de HTTP admite funciones como cargas de archivos, envíos en modo de prueba y más. Ver la documentación de la API para obtener más información.

Recepción de mensajes a través de HTTP

Mailgun puede recibir correos electrónicos a través de reglas que usted defina. Esto se hace generando rutas dentro del panel de control de Mailgun o a través de la API. Una vez agregados, los correos electrónicos que llegan a Mailgun, para los cuales se generó una ruta, pueden ser reenviados a su aplicación a través del uso de una HTTP POST en su bandeja de entrada. La captura de pantalla a continuación presenta una ruta de ejemplo del panel de control de Mailgun.

Se pueden crear rutas para direcciones de correo electrónico estáticas y para una coincidencia de patrón de expresión regular (regex). También están disponibles para reenviar una solicitud HTTP, para enviar el correo electrónico a su aplicación. Ver Envío de documentación para obtener más información.

Información relacionada

Este artículo incluye algunas posibilidades disponibles con Mailgun. El sitio web de Mailgun ofrece abundante material de referencia de API en varios idiomas. A continuación hay algunos enlaces que servirán para mejorar su experiencia en la utilización del producto.

Para obtener servicio técnico con el producto Mailgun, comuníquese directamente con Mailgun:



¿Este contenido fue útil?




© 2015 Rackspace US, Inc.

Excepto cuando se indique lo contrario, el contenido de este sitio está bajo una licencia Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License


Ver especificaciones de licencia y DESCARGO DE RESPONSABILIDAD