Courier

Un framework de mensajería que proporciona un sistema flexible para enviar mensajes a identidades a través de varios canales como el correo electrónico.

courier
611 sites
28
drupal.org

Instalar

Drupal 9, 8 v2.0.0
composer require 'drupal/courier:^2.0'

Overview

Courier es un potente framework de mensajería para Drupal que proporciona un sistema flexible basado en plugins para enviar mensajes a identidades (normalmente usuarios) a través de varios canales de comunicación.

El módulo fue diseñado originalmente para el módulo RNG (Registration) e introduce una arquitectura sofisticada con conceptos como Channels (tipos de entidad de plantilla), Template Collections (grupos de plantillas para diferentes canales), Contexts (definiciones de tokens) y un sistema de Queue para gestionar la entrega de mensajes.

Courier incluye un canal de Email por defecto y proporciona un plugin que lo vincula a los usuarios de Drupal. Otros módulos pueden extender Courier creando nuevos canales (SMS, notificaciones push, etc.) y plugins de identity channel para soportar diferentes tipos de destinatarios.

El módulo utiliza un enfoque basado en colas para la entrega de mensajes, permitiendo el balanceo de carga y un mejor rendimiento en sitios de alto tráfico. Los mensajes se procesan a través del sistema de colas de cron de Drupal, con una opción configurable para omitir la cola con fines de depuración.

Features

  • Arquitectura basada en plugins para canales de mensajería extensibles (email, SMS, etc.)
  • Template Collections que agrupan plantillas de mensajes por tipo de canal con soporte de tokens
  • Global Template Collections almacenadas en configuración para plantillas exportables/importables
  • Sistema de entrega de mensajes basado en colas con procesamiento por cron para escalabilidad
  • Plugins IdentityChannel que conectan identidades (usuarios) con canales (direcciones de email)
  • Sistema de reemplazo de tokens con disponibilidad de tokens según el contexto
  • Interfaz de edición de plantillas con AJAX y componentes Semantic UI
  • Gestión de preferencias de canal permitiendo respaldo priorizado entre canales
  • Integración con el módulo Token de Drupal para una navegación mejorada de tokens

Use Cases

Reemplazar los emails del core de Drupal

Usa el submódulo Courier System para reemplazar los emails integrados de usuario de Drupal con mensajes enriquecidos basados en plantillas. Esto permite a los administradores del sitio personalizar los emails de restablecimiento de contraseña, mensajes de bienvenida y notificaciones de cuenta usando el sistema de plantillas de Courier con soporte completo de tokens.

Notificaciones de registro de eventos

Cuando se combina con el módulo RNG, Courier gestiona todas las comunicaciones de registro de eventos. Los organizadores de eventos pueden crear emails de confirmación personalizados, mensajes de recordatorio y actualizaciones que se envían a los registrados a través del sistema de colas.

Mensajería multicanal

Extiende Courier con módulos de canales adicionales (SMS, notificaciones push) para soportar mensajería multicanal. Configura las preferencias de canal para que los usuarios reciban mensajes a través de su canal preferido, con respaldo automático a alternativas si el canal principal falla.

Mensajes únicos de administración

Usa el submódulo Message Composer para permitir a los administradores enviar mensajes únicos rápidos a usuarios individuales directamente desde la interfaz de administración de Drupal, útil para comunicaciones personalizadas o respuestas de soporte.

Integración con módulos personalizados

Los desarrolladores pueden integrar Courier en módulos personalizados creando template collections, configurando contextos con los tokens apropiados y usando el servicio courier.manager para enviar mensajes con plantillas a cualquier entidad de identidad.

Tips

  • Instala el módulo Token para una mejor experiencia de navegación de tokens al editar plantillas de mensajes.
  • Usa Global Template Collections para hacer tus plantillas de mensajes exportables con la gestión de configuración.
  • Mantén 'Omitir cola' deshabilitado en sitios de producción para prevenir problemas de rendimiento con el envío inmediato de emails.
  • Define plugins IdentityChannel personalizados para soportar el envío de mensajes a tipos de entidad distintos a usuarios.
  • Usa la página de mantenimiento para limpiar mensajes atascados si tu cola se acumula.

Technical Details

Admin Pages 2
Configuración de Courier /admin/config/communication/courier

Configura los ajustes globales de Courier incluyendo las preferencias de canal para cada tipo de identidad y el comportamiento de la cola.

Mantenimiento de Courier /admin/config/communication/courier/maintenance

Herramientas de mantenimiento para gestionar la cola de mensajes de Courier, incluyendo la eliminación de mensajes atascados.

Permisos 2
Administrar Courier

Gestionar la configuración de Courier. Este permiso está restringido y solo debe otorgarse a administradores de confianza.

Omitir cola

Da a los usuarios la opción de omitir la cola de mensajes y enviar el mensaje en la misma petición. Usar la opción de omisión puede impactar significativamente el rendimiento.

Hooks 1
hook_courier_identity_channel_info_alter

Modifica la lista de plugins IdentityChannel descubiertos por el gestor de plugins.

Troubleshooting 3
Los mensajes no se están enviando

Verifica que cron se esté ejecutando regularmente para procesar la cola de mensajes. Comprueba que la configuración 'Omitir cola' esté deshabilitada en producción. Revisa la tabla courier_message_queue_item para mensajes atascados y usa la pestaña de Mantenimiento para limpiarlos si es necesario.

Los tokens no se están reemplazando en los mensajes

Asegúrate de que la template collection tenga el contexto correcto configurado con los tokens requeridos. El contexto define qué tokens están disponibles. También verifica que los valores de los tokens se estén pasando al llamar a sendMessage().

Los usuarios no están recibiendo emails

Verifica que la identidad del usuario tenga una dirección de email configurada. Comprueba las preferencias de canal en la configuración de Courier para asegurar que courier_email esté habilitado para el tipo de identidad de usuario. Revisa los logs de Drupal para cualquier error de entrega de email.

Security Notes 3
  • El permiso 'administer courier' está marcado como restringido y solo debe otorgarse a administradores de confianza.
  • El permiso 'courier bypass queue' puede impactar el rendimiento del sitio y debe usarse con moderación.
  • Las plantillas de mensajes soportan reemplazo de tokens - asegúrate de que los tokens estén correctamente escapados para prevenir vulnerabilidades XSS.