Product
DigitalChalk utiliza Mailgun para las notificaciones por email transaccional
Esta publicación la ha escrito Jon Wilkinson, ingeniero de software de DigitalChalk.
Si alguna vez has hecho un curso en línea, has usado un sistema de gestión de aprendizaje (LMS). DigitalChalk es un sistema de gestión de aprendizaje multiempresa líder del sector que presta servicio a dos tipos de clientes: clientes corporativos que ofrecen formación a su plantilla y clientes de comercio electrónico que venden sus propios cursos por Internet.
Un cliente típico de DigitalChalk puede crear eventos que generan notificaciones por email, como los emails de recibo, de creación de usuario, de inscripción a un curso, de finalización de un curso, de cambio de contraseña y muchos otros. DigitalChalk cuenta con miles de clientes que, a su vez, tienen cientos (o miles) de estudiantes que reciben emails en respuesta a estos eventos. En resumen, DigitalChalk envía muchos emails en nombre de los clientes.
Integración de Mailgun
Ahora DigitalChalk se integra con Mailgun para enviar emails de eventos de los cursos a través de una cuenta de Mailgun, de modo que tendrás todas las estupendas funciones que ofrece Mailgun. Las listas de correo, las campañas de marketing, las analíticas y la validación de la dirección de email ayudan a los clientes de comercio electrónico a comercializar y vender cursos, mientras que el enrutamiento del email entrante, la integración de webhooks, el seguimiento de clics y las API rápidas ayudan a impartir la formación corporativa y hacer su seguimiento. Además, ahora puedes utilizar la dirección de email de tu dominio para las notificaciones por email de DigitalChalk en lugar de no-reply@digitalchalkmail.com.
Detalles técnicos
Actualmente DigitalChalk se integra con Mailgun mediante la API JavaMail por SMTP, con asistencia tanto para SSL en el puerto 465 como para TLS en el puerto 587. Conectar tus dos cuentas es tan sencillo como introducir tus credenciales SMTP de Mailgun y tu dirección de remitente en DigitalChalk:

También utilizamos la función de etiquetado personalizado de Mailgun para cada email saliente. Por ejemplo, el encabezado de email x-mailgun-tag podría tener el valor “USERCREATED” o “COURSECOMPLETED”. Esto indica qué evento de DigitalChalk fue el disparador de la notificación y te ofrece aún más detalles en Mailgun. Este es el aspecto que podrían tener esas etiquetas en el panel de control de Mailgun:

DigitalChalk utiliza un clúster de servidores de notificaciones dedicado para distribuir el email saliente. El clúster de servidores se encarga de la conexión, el protocolo y la carga útil (html, texto sin formato y adjuntos) que se intercambian con Mailgun. En el improbable caso de que no podamos traspasar el email a Mailgun (por ejemplo, si se cae la red), utilizamos varias estrategias de reintento para garantizar que el email se acabe entregando. Una de ellas es la estrategia de reintento al cubo. El periodo de tiempo entre reintentos aumenta por el cubo del número de intentos, con un máximo de cinco reintentos. El código simplemente calcula la hora del siguiente intento:
public Date nextAttemptDate(Notification n) {rnrn if (n.getAttempts() >= this.maxAttempts) {rn return null;rn }rnrn if (n.getLastAttemptedDate() == null) {rn return new Date();rn } else {rn long delayMillis = (long) (Math.pow(n.getAttempts() + 1, 3) * 1000 * 60);rn return new Date(n.getLastAttemptedDate().getTime() + delayMillis);rn }rnrn} rn
Si DigitalChalk no puede traspasar el email a Mailgun en el primer intento, esperamos ocho minutos (2^3) y volvemos a intentarlo. Después esperamos 27 minutos para el tercer intento, 64 minutos para el cuarto intento y 125 minutos para el quinto intento. Esta estrategia crea una curva ideal para equilibrar el exceso de reintentos frente a la fiabilidad.
Las estrategias de reintento reducen en gran medida las probabilidades de error, pero no las eliminan. Supongamos que nuestro cliente cambia su contraseña de Mailgun. Diez minutos más tarde, la actualiza en DigitalChalk (como se ve en la captura de pantalla anterior). Eso deja un margen de diez minutos durante el cual cualquier notificación saliente no podrá conectarse a Mailgun. Por suerte, en este ejemplo, la estrategia de reintento al cubo conseguirá conectarse en el tercer intento. Sin embargo, si el cliente espera cuatro horas para actualizar su contraseña en DigitalChalk, la estrategia de reintento se agotará y la notificación no se entregará. Aun así, no hemos perdido la notificación; los clientes pueden ver los fallos (y sus causas) dentro de DigitalChalk:

En este punto, el cliente solo tiene que hacer clic para reintentar la notificación original y el proceso de entrega vuelve a empezar desde el principio. Hemos evitado posibles emails duplicados, aumentado la fiabilidad y facilitado la gestión de los fallos cuando ocurren.
Resumen
Nos entusiasma lanzar esta nueva integración con Mailgun. Los clientes de DigitalChalk que utilicen Mailgun no solo tendrán una mayor presencia en Internet gracias al branding de emails, sino que también se beneficiarán de funciones adicionales de Mailgun, como las listas de correo, las campañas de marketing, la personalización, las analíticas, la validación de direcciones y el seguimiento. Si eres cliente de DigitalChalk , te animamos a registrarte para obtener tu cuenta de Mailgun y empezar a establecer tu propio branding de email hoy mismo.
Haz clic aquí para leer más sobre nuestra integración con Mailgun.