Product
API de Mailgun 2.0: ¡olvídate de MIME!
Este artículo se publicó originalmente el 18 de octubre de 2011
¡Buenas noticias para todos!
En el equipo de Mailgun hemos estado en el laboratorio, con los teclados en las manos, intentando programar un poco, y ahora Mailgun 2.0 ya está aquí. Hoy empezamos una breve serie de artículos de blog para hablarte de todas las fantásticas funciones que hemos creado. Si no puedes esperar, siempre puedes leer nuestra documentación sobre todas las novedades de la nueva versión.
Queremos empezar diciendo: “¡SE ACABÓ MIME!”
Así es, ya no tienes que lidiar con el formato MIME de los mensajes de email para enviar mensajes enriquecidos con cuerpos en HTML, adjuntos y demás.
La cruda realidad es que no todos los lenguajes de programación tienen la suerte de contar con bibliotecas MIME fáciles de usar, bien documentadas y sin errores. Sin embargo, hoy en día casi todo el mundo sabe hacer una solicitud POST HTTP, lo cual es irónico porque los formatos de datos subyacentes son los mismos.
Otra tendencia que hemos notado es que muchos profesionales de la programación no son especialistas en email… ¿Y por qué deberían serlo? Por ejemplo, nos han preguntado infinidad de veces cómo implementar la función de “Cco” o cómo añadir un archivo adjunto a un mensaje.
Con el objetivo de ser la mejor plataforma de email del mercado, hemos decidido analizar más a fondo cómo se crean y envían los mensajes de email. Se acabó pedir a nuestro equipo de desarrollo que lea artículos de Wikipedia sobre emails multiparte y que se pelee con bibliotecas MIME de dudosa calidad.
La nueva API de envío de mensajes de Mailgun es muy sencilla. Envíanos los parámetros por HTTP, y nosotros creamos el MIME y enviamos tu mensaje. ¿Qué parámetros? Los que te imaginas: “De”, “Para”, “Cc”, “Cco”, “Asunto”, “cuerpo en HTML”, “archivo adjunto”. Ya te haces una idea: lo mismo que ofrece la interfaz de Gmail.
Esto significa que puedes enviar emails complejos usando el viejo curl… ¡o incluso con JavaScript desde el navegador! Por supuesto, si prefieres la vieja escuela, puedes seguir usando tu propio MIME con SMTP, o enviar MIME por HTTP: somos totalmente compatibles con versiones anteriores.
Basta de charlas, veamos un poco de código. La mayoría de los lenguajes de programación cuentan con asistencia integrada para realizar solicitudes HTTP, pero para facilitarte aún más las cosas, te recomendamos restclient para Ruby o solicitudes para Python.
Para empezar, enviemos un mensaje de texto sencillo:
curl --user api:key https://api.mailgun.net/v2/farfaraway.uk/messages -F from='Shrek ' -F to='Fiona ' -F subject='Status update' -F text='The cat is off the hook'
¿Qué te parece un mensaje multiparte con secciones de texto y HTML, múltiples destinatarios y un par de adjuntos, que además tenga un destinatario en Cco? Fácil:
curl --user api:key https://api.mailgun.net/v2/farfaraway.uk/messages -F from='Shrek ' -F to='Fiona ' -F bcc='Donkey ' -F subject='Status update' -F text='The cat is off the hook' -F html='The cat is off the hook!' -F attachment=@kitchen-photo.jpg
Quienes deseen configurar encabezados MIME personalizados pueden seguir haciéndolo sin tener que tocar MIME. Si un parámetro POST empieza con el prefijo “h:”, Mailgun lo reconoce como un encabezado MIME personalizado. Aquí tienes un ejemplo de cómo enviar un mensaje con un encabezado Message-Id personalizado:
curl --user api:key https://api.mailgun.net/v2/farfaraway.uk/messages -F from='Shrek ' -F to='Fiona ' -F subject='Status update' -F text='The cat is off the hook' -F h:Message-Id='mycustomid-1231@farfaraway.uk'
Ahí lo tienes: una forma clara y sencilla de evitar el lío de MIME. Puedes ver más trucos de la API en el enlace a la documentación a continuación. Otros trucos geniales que puedes incluir enviar en modo de prueba o programar una hora de entrega específica.
Echa un vistazo: https://documentation.mailgun.com/en/latest/user_manual.html#sending-via-api
¡Un saludo! — El equipo de Mailgun