Envoyer tes emails#
Roucoule rend tes emails ; tu les envoies depuis ta machine via le client open-source @roucoule/send. Ce document explique comment.
Pourquoi ce design#
- Tes identifiants SMTP ne quittent jamais ta machine, ni chiffrés, ni en clair.
- Tu pilotes l'envoi : batch personnalisé, retry custom, intégration dans ton CI existant.
- Tu peux orchestrer l'envoi via GitHub Actions ou un autre CI au moment de la release de ton blog.
Installation#
Deno (JSR)#
deno install -gA jsr:@roucoule/sendNode (npm)#
npm install -g @roucoule/send
# ou en one-shot via npx :
npx @roucoule/send --feed-id feed_xxx art_yyyLes deux exposent la même commande roucoule-send.
Premier envoi en 3 étapes#
- Crée un token API dans
/me. - Configure le client en lançant
roucoule-sendsans argument : un wizard interactif te demande l'URL Roucoule, le token, et tes identifiants SMTP. Tout est stocké dans~/.config/roucoule/config.json(mode0600). - Prépare ton article dans l'UI Roucoule (sujet personnalisé, intro perso, clic « Marquer comme prêt à envoyer »), puis :
roucoule-send --feed-id feed_xxx art_yyyLe client fetch le package depuis Roucoule, envoie chaque email via ton SMTP, et notifie Roucoule de la complétion en remontant un résultat par destinataire.
Comment ça marche sous le capot#
Roucoule expose un endpoint stable
GET /api/v1/feeds/{id}/articles/{aid}/package qui retourne tous les emails
personnalisés rendus (un par destinataire actif), avec les headers
List-Unsubscribe. Le client envoie via ton SMTP, puis appelle
POST .../mark-sent en remontant le résultat de chaque destinataire
(status: sent|failed, error?). Roucoule en dérive la liste des envois et
expose les succès et les échecs dans l'UI admin. Voir docs/api pour
le détail du format et des codes d'erreur.
Automatiser via GitHub Action#
Le repo @roucoule/send contient un template GitHub Action dans
examples/github-action.yml. À copier dans .github/workflows/ du repo de ton
blog. Tu déclenches manuellement (workflow_dispatch) en passant l'article-id en
input ; les secrets SMTP vivent dans GitHub Secrets.
Pourquoi déclenchement manuel ? Roucoule te laisse personnaliser chaque article (sujet custom, intro perso) avant de marquer « prêt à envoyer ». Cette étape volontaire reste dans l'UI Roucoule ; le CI ne fait que la dernière ligne droite SMTP.
Délivrabilité#
Le SMTP utilisé doit avoir SPF, DKIM et DMARC bien configurés sur le domaine du
From:. Teste avec mail-tester.com avant ton
premier envoi en volume.
Écrire ton propre client#
L'API est entièrement documentée dans docs/api : token Bearer,
format du package, codes d'erreur. Le contrat est stable, tu peux construire ton
propre client (Python, Rust, shell + curl, n'importe).