Les listes de discussions sont gérées par Mailman.

Les interactions avec Mailman se font par e-mail, par le web et à travers quelques outils en ligne de commande.

Machines

Mailman est actuellement installé sur bulbe.nos-oignons.net.

Fichiers

Configuration

La configuration de Mailman est groupée dans /etc/mailman. Voici les fichiers les plus importants :

/etc/mailman/mm_cfg.py

Fichier principal de configuration. C'est un script Python.

/etc/nginx/sites-available/https

La configuration de Nginx contient un bloc `location /mailman`.

Scripts

Les listes ag et membres sont gérées par des scripts qui garantissent que toute adresse inscrite à membres est inscrite à ag.

/etc/mailman/extends/membres-extend.py

Ce script refuse les demandes d'inscriptions à membres de la part d'adresses qui ne sont pas inscrites à ag.

Attention : Il est important que le même message soit renvoyé, que l'inscription provienne d'un membre de ag ou non. Dans le cas contraire, il est possible de tester l'appartenance d'une adresse à ag, et donc l'appartenance d'une personne à l'association.

/etc/mailman/extends/ag-extend.py

Ce script désabonne automatiquement de membres lors du désabonnement d'ag.

Données

Les données de Mailman se trouvent dans /var/lib/mailman. Ce qu'on y trouve de remarquable :

/var/lib/mailman/lists
Le répertoire qui contient les données des listes. Chaque liste a son propre sous-répertoire.
/var/lib/mailman/data/aliases
Le fichier au format aliases généré automatiquement par Mailman et utilisé par Postfix.
/var/lib/mailman/archives/private

Le répertoire qui contient les archives des listes au format mbox et HTML. On trouve un sous-répertoire par liste.

Ce dernier est traversable par le groupe www-data via une ACL afin de permettre l'accès aux archives par le serveur web.

/var/lib/mailman/archives/public
Le répertoire qui contient des liens symboliques vers les archives des listes dont les archives sont publiques.

Configuration

Mailman est configuré avec :

  • @nos-oignons.net comme domaine par défaut pour les listes ;
  • https://nos-oignons.net/mailman/ comme adresse de base pour l'interface web ;
  • le français comme langue.

Le serveur de mail sait comment transmettre les messages à Mailman grâce au fichier aliases mentionné plus haut.

Mailman s'occupe également de filtrer les messages à travers SpamAssassin. Les variable de configuration SPAMASSASSIN_DISCARD_SCORE et SPAMASSASSIN_MEMBER_BONUS (dans /etc/mailman/mm_cfg.py) permettent de jouer sur les scores qui modéreront automatiquement les messages.

Procédures

Supprimer un mail des archives

todo: à documenter

De mémoire, c'est un truc genre mutt -f ~list/archives/LISTE/LISTE.mbox, supprimer le message, et ensuite il faut lancer bin/arch LISTE.

Changer le mot de passe d'administration d'une liste

Pour changer le mot de passe d'administration d'une liste, il faut utiliser :

/var/lib/mailman/bin/change_pw -l LISTE

Changer l'adresse web de l'interface d'administration

Pour changer l'adresse web de l'interface d'administration d'une liste, il faut faire :

withlist -l LISTE
m.web_page_url = https://example.org/cgi-bin/mailman/
m.Save()

On termine avec Ctrl+D pour sortir du shell Python.