Skip to content

Configurer les emails

This content is not available in your language yet.

Cenaclo n’envoie aucun email par un service de l’éditeur. Le routeur email Listmonk tourne dans votre stack, avec sa propre base sur le Postgres déjà présent, et il relaie vos messages par le serveur SMTP que vous fournissez. Les adresses de vos membres ne quittent donc jamais votre serveur.

C’est le seul réglage réellement à votre charge après l’installation : les deux parcours de déploiement démarrent sans SMTP, et Cenaclo fonctionne — mais aucun email ne part tant que vous n’avez pas branché le vôtre.

Les deux parcours déploient les mêmes trois éléments :

  • le job listmonk-db-init, qui crée la base listmonk sur le Postgres de l’instance ;
  • le service listmonk (image listmonk/listmonk:v6.0.0), joignable uniquement sur le réseau interne de la stack ;
  • le job listmonk-seed, exécuté à chaque déploiement avant le démarrage du backend.

Le seed provisionne l’utilisateur d’API LISTMONK_API_USER (cenaclo_backend par défaut) et son jeton, applique la configuration SMTP demandée, crée la liste cenaclo-waitlist si elle manque, crée ou met à jour les modèles d’emails transactionnels en français et en anglais, puis écrit le résultat dans un fichier .seed.env placé sur un volume partagé. Le backend charge ce fichier au démarrage.

Conséquence pratique : vous n’avez aucun secret d’email à recopier côté backend. Le jeton d’API est régénéré à chaque déploiement et repris automatiquement.

Un compte SMTP transactionnel convient : Amazon SES, Mailgun, Postmark, Brevo, Scaleway Transactional Email, ou le relais SMTP de votre hébergeur. Renseignez ensuite ces variables.

Variable Rôle Valeur par défaut
LISTMONK_SEED_SMTP_MODE skip ne touche jamais au SMTP, external applique les variables ci-dessous skip en Coolify, external en Compose
LISTMONK_SMTP_HOST Hôte SMTP de votre fournisseur vide
LISTMONK_SMTP_PORT Port SMTP 587
LISTMONK_SMTP_USERNAME Identifiant SMTP vide
LISTMONK_SMTP_PASSWORD Mot de passe ou jeton SMTP vide
LISTMONK_SMTP_TLS_TYPE Chiffrement de la connexion STARTTLS
LISTMONK_SMTP_TLS_SKIP_VERIFY Désactive la vérification du certificat 0
LISTMONK_FROM_EMAIL Expéditeur affiché, sur un domaine que vous contrôlez Cenaclo <[email protected]>

Laissez LISTMONK_SMTP_TLS_SKIP_VERIFY à 0. Le passer à 1 accepte n’importe quel certificat et ouvre la porte à une interception du trafic SMTP.

  1. Ouvrez la configuration de la ressource, onglet Environment Variables.
  2. Passez LISTMONK_SEED_SMTP_MODE à external.
  3. Renseignez LISTMONK_SMTP_HOST, LISTMONK_SMTP_PORT, LISTMONK_SMTP_USERNAME, LISTMONK_SMTP_PASSWORD et LISTMONK_FROM_EMAIL.
  4. Cliquez Deploy. Le job listmonk-seed rejoue et applique la configuration.

Renseignez les mêmes variables dans infra/compose/.env, où LISTMONK_SEED_SMTP_MODE vaut déjà external, puis recréez la stack :

Fenêtre de terminal
docker compose --env-file infra/compose/.env -f infra/compose/docker-compose.yml up -d

Aucun des deux parcours livrés n’expose l’interface d’administration Listmonk : le modèle Coolify ne lui assigne pas de domaine et le Compose ne publie pas son port sur l’hôte. C’est volontaire — cette interface donne accès aux adresses de vos membres. Le chemin d’exploitation supporté est donc celui des variables ci-dessus. Le compte d’administration existe malgré tout (LISTMONK_ADMIN_USER, admin par défaut) et son mot de passe est généré par Coolify ou fixé par LISTMONK_ADMIN_PASSWORD en Compose.

Sans authentification du domaine, vos emails partent mais finissent en indésirables, ou sont rejetés. Publiez les trois enregistrements DNS sur le domaine utilisé dans LISTMONK_FROM_EMAIL :

  • SPF — un enregistrement TXT sur le domaine, autorisant les serveurs de votre fournisseur SMTP à émettre pour lui.
  • DKIM — le ou les enregistrements TXT de signature fournis par votre service SMTP, sur le sélecteur qu’il indique.
  • DMARC — un enregistrement TXT sur _dmarc.votre-domaine. Démarrez en p=none le temps de vérifier les rapports, puis durcissez vers p=quarantine ou p=reject.

L’expéditeur doit rester sur un domaine que vous contrôlez. N’envoyez jamais depuis une adresse d’un domaine tiers que vous ne pouvez pas authentifier.

Chaque modèle existe en français et en anglais.

  • Compte et accès : lien de connexion, vérification d’adresse, réinitialisation de mot de passe, récupération d’accès administrateur.
  • Notifications : mention, live démarré, rappel d’événement, résumé quotidien, résumé hebdomadaire.
  • Exploitation : alerte de signalement de contenu illicite aux modérateurs, alerte de dépassement du quota de stockage.

Sans SMTP, ces envois échouent proprement : le backend démarre quand même, mais les flux qui dépendent d’un email — inscription par lien de connexion, vérification d’adresse, réinitialisation de mot de passe — restent bloqués côté utilisateur.

Cenaclo journalise tous les emails transactionnels. Le backoffice d’administration expose ce journal sur /admin/emails, avec le détail de chaque envoi.

Statuts possibles : queued, sent, delivered, bounced, complained, failed et broadcast_sent. La colonne de motif porte l’erreur exacte retournée par le routeur ou par le fournisseur.

Lisez-les dans cet ordre :

  1. Aucune entrée dans le journal — l’action côté produit n’a pas déclenché d’envoi. Le problème est en amont de l’email.
  2. Statut failed — le routeur a refusé l’envoi. Le motif indique presque toujours un SMTP absent ou des identifiants invalides. Vérifiez la sortie du job listmonk-seed puis les journaux du service listmonk.
  3. Statut sent mais rien reçu — le message est parti. Regardez les indésirables, puis vos enregistrements SPF, DKIM et DMARC.
  4. Statut bounced ou complained — le destinataire ou son fournisseur a rejeté le message. Le motif porte le détail.

D’autres pannes classiques des deux parcours sont recensées dans Dépannage.