Fournisseurs & expéditeur
Le TenantEmailConfig permet à chaque tenant de choisir SMTP, Resend ou SendGrid via un factory pattern, avec expéditeur et reply-to par tenant. Les identifiants sont chiffrés au repos. Les liens dans les emails utilisent l'URL de base du tenant — https://{customDomain} si vérifié, sinon https://{slug}.studeia.com.
Templates
Un moteur de templates Handlebars (variables + mise en page brandée) inclut 40 templates par défaut (10 slugs × 4 locales). Les templates sont modifiables et disposent d'un aperçu dans l'interface d'administration.
Livraison, préférences & digest
- EmailService gère le rate limiting Redis, les nouvelles tentatives et une vérification de l'opt-out avant l'envoi.
- Préférences par utilisateur ; désinscription via JWT signé (sans fallback prévisible).
- DigestService envoie des résumés quotidiens/hebdomadaires.
- Logs + webhooks enregistrent le statut de livraison (EmailLog).
Automatisations & événements natifs
L'action d'automatisation send_email envoie via ce service (slug de template ou subject+HTML inline, avec cible trigger_user, users_with_tag, course_students ou adresse personnalisée). Les événements natifs tels que l'inscription déclenchent également des emails avec template.