Proveedores & remitente
El TenantEmailConfig permite a cada tenant elegir SMTP, Resend o SendGrid mediante un factory pattern, con remitente y reply-to por tenant. Las credenciales se cifran en reposo. Los enlaces en los emails usan la URL base del tenant — https://{customDomain} si está verificado, de lo contrario https://{slug}.studeia.com.
Plantillas
Un motor de plantillas Handlebars (variables + layout de marca) incluye 40 plantillas predeterminadas (10 slugs × 4 locales). Las plantillas son editables y tienen vista previa en la UI de administración.
Entrega, preferencias & digest
- EmailService gestiona el rate limiting en Redis, reintentos y una verificación de opt-out antes de enviar.
- Preferencias por usuario; unsubscribe vía JWT firmado (sin fallback predecible).
- DigestService envía resúmenes diarios/semanales.
- Registros + webhooks registran el estado de entrega (EmailLog).
Automatizaciones & eventos nativos
La acción de automatización send_email envía a través de este servicio (slug de plantilla o subject+HTML inline, con destino trigger_user, users_with_tag, course_students o dirección personalizada). Los eventos nativos como la matrícula también disparan emails con plantilla.