Documente le fil d'informations et la messagerie

CLAUDE.md gagne les deux sections et, surtout, les pièges qui coûteraient
une soirée à retrouver : `db.execute` qui rend les colonnes brutes, les
deux interrupteurs de boucle qu'il ne faut pas confondre, la rotation du
jeton Microsoft, l'adresse d'expédition lue chez le fournisseur, et la
raison pour laquelle les mots de passe temporaires ne passent jamais par
la file.

README et .env.example décrivent les trois transports, le piège des sept
jours côté Google, et le repli SMTP par variables d'environnement qui
permet un premier déploiement sans démarche préalable.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014QsLjRAnuLwivqxCbM4WeP
This commit is contained in:
Claude committed 2026-09-14 16:23:32 +00:00
1 parent 0c8542f894
commit 39eb8cfc13
3 files changed
+167 -4

No files matched your search

+26
View File
@@ -72,3 +72,29 @@ FACEBOOK_PAGE_ACCESS_TOKEN=
LINKEDIN_ORGANIZATION_URN=
LINKEDIN_ORGANIZATION_ID=
LINKEDIN_ACCESS_TOKEN=
# ---- Boîte mail de l'association ----
# La configuration se fait dans Backend › Boîte mail : on y branche Google
# (API Gmail), Microsoft (API Graph) ou un serveur SMTP, et les secrets sont
# stockés chiffrés. Rien à mettre ici dans le cas normal.
#
# Les jetons et mots de passe utilisent la même clé que les réseaux sociaux
# (SOCIAL_TOKEN_KEY, avec repli sur AUTH_SECRET).
#
# `off` arrête la file d'envoi sans toucher au reste (le libérateur de
# publications programmées a son propre interrupteur, PROMO_SCHEDULER).
#MAIL_WORKER=off
# Débit de la file, en messages par passage (défaut : 20). Gmail plafonne
# autour de 500 destinataires par jour sur un compte gratuit.
#MAIL_RATE_PER_MINUTE=20
# --- Repli avant toute configuration depuis le backoffice ---
# Permet un premier déploiement sans passer par l'écran. Dès qu'un compte est
# enregistré dans Backend › Boîte mail, il prime sur ces variables.
SMTP_HOST=
SMTP_PORT=465
SMTP_SECURE=true
SMTP_USER=
SMTP_PASSWORD=
SMTP_FROM=
SMTP_FROM_NAME=