| 1 | Fonctionnement de Mailman |
| 2 | ========================= |
| 3 | |
| 4 | Mailman est un serveur de listes mails. |
| 5 | Il s'occupe de la gestion des abonnements, des archives ... |
| 6 | |
| 7 | La gestion sur les serveurs mail |
| 8 | -------------------------------- |
| 9 | |
| 10 | Un seul serveur mail a mailman installé et configuré pour envoyer des mails : c'est celui qui héberge le site web (à cause du RPC qui tourne en local). |
| 11 | Les autres MXs peuvent (éventuellement) recevoir des mails à destination d'une liste ; dans ce cas, ils transmettront au plus tôt à svoboda. |
| 12 | |
| 13 | Le serveur de développement peut aussi avoir mailman installé. |
| 14 | |
| 15 | La gestion sur le Web |
| 16 | --------------------- |
| 17 | |
| 18 | XMLRPC |
| 19 | ------ |
| 20 | |
| 21 | Le démon RPC tourne sous ``supervise``, un programme des daemontools, qui se charge de relancer un service (exécutable) s'il s'arrête. Quand tout se passe bien, on peut utiliser ``svc -[option]`` pour (re)lancer / arrêter / ... le démon RPC. |
| 22 | |
| 23 | Le RPC reçoit des commandes depuis le site web, qui viennent par XMLRPC. (Détails) |
| 24 | |
| 25 | Debug |
| 26 | ----- |
| 27 | |
| 28 | Mailman, comme postfix, possède plusieurs queues mail. |
| 29 | Elles sont dans plusieurs sous-dossiers de ``/var/lib/mailman/qfiles``. |
| 30 | |
| 31 | On dispose de |
| 32 | |
| 33 | * ``/var/lib/mailman/bin/show_qfiles`` pour inspecter le contenu d'un message (argument = fichier ``.pck`` du message) ; |
| 34 | * ``/var/lib/mailman/bin/unshunt`` pour libérer des messages. |
| 35 | * ``/var/lib/mailman/bin/discard`` pour supprimer un message en modération (dans le cas de spam vraiment massif). |
| 36 | |
| 37 | Mailman logge dans ``/var/log/mailman``. |
| 38 | |
| 39 | Archives |
| 40 | -------- |
| 41 | |
| 42 | Les archives de mailman se trouvent dans ``/var/lib/mailman/archives/private``. Par exemple la liste ma-liste@listes.example.org a ses archives dans un fichier MBOX situé dans ``/var/lib/mailman/archives/private/ma-liste.mbox/ma-liste.mbox``. |
| 43 | À Polytechnique.org, la visualisation de ces archives sur internet utilise Banana, qui communique avec mailman en NNTP pour obtenir les arborescences de messages. |
| 44 | |
| 45 | Pour supprimer un message, il suffit d'éditer le fichier MBOX avec par exemple Mutt:: |
| 46 | |
| 47 | cp ma-liste.mbox modif.mbox |
| 48 | mutt -f modif.mbox |
| 49 | |
| 50 | À la fin de l'édition du fichier mbox, Mutt a pu ajouter des entêtes suivants dans les messages:: |
| 51 | |
| 52 | Status: O |
| 53 | Content-Length: 357 |
| 54 | Lines: 15 |
| 55 | |
| 56 | Pour les supprimer, il suffit d'éxecuter la commande ``sed`` suivante:: |
| 57 | |
| 58 | sed '/^Status: /{N;N;/Content-Length: .*Lines: /d}' < modif.mbox > modif-clean.mbox |
| 59 | |
| 60 | À la fin du traitement, si ``ma-liste.mbox`` n'a pas été modifié (ie. si aucun message n'a été reçu), il est possible de régénérer les archives comme décrit sur http://wiki.list.org/pages/viewpage.action?pageId=4030681):: |
| 61 | |
| 62 | mv ma-liste.mbox OLD-ma-liste.mbox |
| 63 | mv modif-clean.mbox ma-liste.mbox |
| 64 | cd /var/lib/mailman |
| 65 | ./bin/arch ma-liste |
| 66 | |
| 67 | De plus, il faut vider le cache de banana concernant les archives de la liste:: |
| 68 | |
| 69 | rm ~web/prod/platal/spool/banana/MLArchives/ma-liste/* |