mlmmj pour « Mailing List Management Made Joyful » est un gestionnaire de mailing liste (ou « MLM« ) inspiré par « ezmlm » offrant les fonctionnalités courantes de ce type d’outils :
- archivage,
- gestion des rebonds,
- modération,
- modification des entêtes,
- préfixage des sujets,
- etc.
Contrairement aux grands noms du secteurs tels que Mailman ou le très complet Sympa, mlmmj est redoutablement léger. Il nécessite peu de dépendances et s’interface avec les principaux Mails Transferts Agents (postfix, sendmail, qmail, exim4).
Les listes créées via mlmmj sont gérées par mail.
Il nécessite peu de modifications de la configuration des MTAs et assure un service complet et suffisant pour la plupart des besoins.
Une interface php permet un accès web aux archives des listes.
Installation
Sur un serveur de mail « postfix », la bonne surprise commence dès l’installation avec une liste de dépendances (quasi) vierge (exemple sous Debian) :
Si mlmmj n’est pas disponible dans la liste des paquets de votre distribution, le passage par les sources ne présentera pas de difficulté particulière. Rendez vous sur le site du projet (http://mlmmj.org) rubrique « Downloads« , télécharger la dernière version des sources, les extraire, les compiler et installer le programme via les traditionnels « tar », « configure », « make » et « make install » :
... |
Une fois de plus, la faible quantité de dépendances facilite considérablement le travail.
Afin de « sécuriser » l’outil, choisir un utilisateur qui exécutera les traitements sur les mails destinés aux listes (au besoin créer l’utilisateur) :
Dans notre exemple nous utiliserons « list » du groupe « list« .
Enfin choisir le répertoire qui stockera les différentes listes de diffusions (« /var/spool/mlmmj/ » par exemple) et y appliquer les droits de l’utilisateur gérant les listes :
Créer une mailing liste
La création d’une mailing liste commence par l’invocation de mlmmj-make-ml (« mlmmj make mailing liste ») à qui nous préciserons l’utilisateur/groupe propriétaire des listes (option « -c »), la localisation des listes (option « -s »), et le nom de la liste (option « -L »), qui donne pour la création de la liste « adminsys » :
Cette commande aura pour effet de créer l’arborescence nécessaire à la gestion de la mailing liste « adminsys » sous « /var/spool/mlmmj ».
La liste est prête à recevoir et traiter les mails.
Intégration dans postfix
Si vous utilisez un autre MTA que postfix, je vous renvoie aux documentations disponibles sur le site du projet (http://mlmmj.org/documentation/).
La première étape consiste à créer un alias virtuel (ou directement un alias) pour la liste nouvellement créée. Dans « main.cf » nous pouvons ajouter la consultation du fichier d’expression régulière « mailing_listes.reg » pour trouver les alias virtuels définis :
Si vous n’utilisiez pas d’alias virtuels ajoutez simplement cette directive :
Le fichier d’alias virtuel contient une expression régulière matchant l’adresse de la liste et de ses dérivées :
Ensuite, nous « routons » les mails à destination de la mailing liste vers « mlmmj » en utilisant la couche transport :
Tous comme pour « virtual_alias_map« , si l’entrée n’existe pas, la créer.
Le fichier « transport.reg » contient lui aussi une expression régulière matchant la mailing liste et leurs appliques « la méthode » de transport « mlmmj« en lui passant le paramètre « adminsys » :
Dernière étape : définition d’une méthode de transport nommée « mlmmj » transmettant les mails du MTA (postfix) au gestionnaire de mailing liste (mlmmj) dans « /etc/postfix/master.cf » :
A ce stade, l’outil est en place.
Personnaliser la liste
Préfixer les sujets
Créer un fichier nommé « prefix« , contenant la chaîne de caractère destinée à préfixer les sujets, dans le répertoire « control » de la mailing liste :
Modification des entêtes
Les entêtes personnalisées sont à inscrire dans le fichier « customheaders » du répertoire contrôle de la mailing liste :
Restrictions d’accès
Via le fichier « access » du répertoire « control » de la mailing liste, il est possible de contrôler les contenus et entêtes des messages. Je vous renvoie à la documentation d’mlmmj pour plus de détails sur ce point http://mlmmj.org/docs/readme-access/
Limiter les diffusions sur la liste
Pour n’autoriser QUE les personnes ayant souscrit à poster sur la liste, créer le fichier « subonlypost » dans le répertoire « control » de la liste :
Protéger les diffuseurs
Il est possible de retirer des entêtes des messages diffusés via « /rep_mailing_list/control/delheaders ». Par exemple, pour retirer les serveurs ayant fait transiter le message :
Être prévenu quand quelqu’un s’abonne/se désabonne
Adapter le chemin vers la mailing liste bien sur.
Restreindre l’accès à l’historique
Il semble logique que seul les abonnés puissent récupérer un ancien mail de la liste. Il faut cependant le préciser en créant le fichier « control/subonlyget » :
Plus encore ?
La page d’aide http://mlmmj.org/docs/tunables/ contient une liste des paramètres modifiables.
Personnaliser les échanges avec les utilisateurs
Les fichiers envoyés par mlmmj aux utilisateurs sont stockés dans le répertoire « text » de la liste de diffusion. Vous pouvez les modifier comme il vous plaira.