Gestion des abonnements aux listes mail

Coin offre un module optionnel pour que les adhérent·e·s puissent s'abonner/désabonner aux listes mail de l'asso. de manière autonome (listes de discussions et/ou de diffusion).

Coin n'est pas lui-même un serveur de listes mail. Il se contente de s'interfacer avec ce dernier pour lui pousser des liste d'inscrit·e·s.

Il existe une interface membre pour auto-gérer ses propres abonnements, et une interface admin pour gérer l'ensemble des abonnements lorsqu'on possède les droits admin dans coin.

vue adhérent vue admin
Vues adhérent·e et admin

Fonctionnement

Coin stocke les abonnements des membres aux listes dans sa base de données, en utilisant l'adresse mail de la fiche membre.

Il synchronise ensuite ces listes vers le serveur de listes mail en appelant une commande pour chaque liste gérée. Cette commande est configurable, et reçoit sur son entrée standard la liste des emails inscrits (une adresse mail par ligne).

Si le serveur de base données est sur une machine différente du serveur Coin, il est possible d'utiliser la commande ssh qui appelle un script distant.

La synchronisation sera faite :

À la suppression d'un·e adhérent·e.

Avertissements

Mise en place

1. Activer l'app maillist

Il faut activer l'app maillists, cela fonctionne comme les autres apps optionelles. Il faut ensuite lancer la commande suivante pour mettre à jour la base de données :

./manage.py migrate

2. Configurer la synchronisation.

Il y a un paramètre obligatoire à renseigner dans votre fichier. settings_local.py : MAILLIST_SYNC_COMMAND.

Il s'agit de la commande à lancer pour « pousser » la d'emails inscrits à une liste mail donnée. Vous pouvez utiliser des variable dans la commande à lancer :

Si par exemple votre serveur de listes attend un bête fichier texte avec une adresse par ligne dans /etc/lists/nomdelaliste :

MAILLIST_SYNC_COMMAND = 'cat /etc/lists/{short_name}'

Si le ce même serveur se situe sur un autre serveur, on pourra utiliser par exemple :

MAILLIST_SYNC_COMMAND = "ssh coin@mail.example.com 'cat /etc/lists/{short_name}'"

Des cas d'usages plus complexes (ex: inscription via une API HTTP). sont envisageables en recourant à un petit script sur mesure.

3. Renseigner les listes

Se rendre dans l'admin de coin et dans la nouvelle catégorie « Listes mail », renseigner les listes mail que l'on souhaite voir gérées par coin.

La synchronisation devrait se faire à chaque (dé)inscription que vous faites à une liste.