Ceci est une ancienne révision du document !
Nous utilisons Mailman pour gérer les listes MiNET. L'interface Web est accessible sur https://listes.minet.net. La configuration de base se trouve dans /etc/mailman/mm_cfg.py
.
Il y a aussi un Postfix avec une configuration de base, pour assurer la réception et l'envoi des mails.
Quelques emplacements utiles:
/var/lib/mailman/
/var/lib/mailman/lists
/var/log/mailman
, les fichiers de logs 'post' contiennent les infos sur chacun des envois sur les listes.Comme indiqué au dessus, mailman a besoin d'un serveur apache et d'un MTA. apt installera apache et exim avec mailman. Il faudra remplacer exim par postfix (parce qu'on utilise postfix à MiNET). Le second chasse le premier lorsqu'on l'installe.
apt-get install mailman postfix
La première chose à faire est de créer un mot de passe pour l'administration du site et un mot de passe maître pour la création des listes. Ceci permet de créer des listes avec l'interface web.
mmsitepass <motdepasse-admin-site> mmsitepass -c <motdepasse-creation-listes>
Pour que l'interface web puisse s'afficher, il faut aussi créer une liste par défaut.
newlist mailman Enter the email address of the person running the list: listmaster@minet.net Initial mailman password:
Attention, il n'y a pas de confirmation pour le mot de passe.
Cette commande va générer une liste d'alias qui doit plus ou moins ressembler à ça :
# mailman mailing list mailman: "|/usr/lib/mailman/mail/mailman post mailman" mailman-admin: "|/usr/lib/mailman/mail/mailman admin mailman" mailman-bounces: "|/usr/lib/mailman/mail/mailman bounces mailman" mailman-confirm: "|/usr/lib/mailman/mail/mailman confirm mailman" mailman-join: "|/usr/lib/mailman/mail/mailman join mailman" mailman-leave: "|/usr/lib/mailman/mail/mailman leave mailman" mailman-owner: "|/usr/lib/mailman/mail/mailman owner mailman" mailman-request: "|/usr/lib/mailman/mail/mailman request mailman" mailman-subscribe: "|/usr/lib/mailman/mail/mailman subscribe mailman" mailman-unsubscribe: "|/usr/lib/mailman/mail/mailman unsubscribe mailman"
Il faut coller cette liste dans /etc/aliases
puis lancer en root la commande :
newaliases
Une configuration pour apache est fournie avec mailman. Elle se trouve dans /etc/mailman/apache.conf
.
Il suffit de mettre un lien symbolique vers ce fichier dans /etc/apache2/sites-enabled
cd /etc/apache2/sites-enables ln -s /etc/mailman/apache.conf . /etc/init.d/apache2 restart
Vous pouvez accéder à l'interface web à partir de ipdelamachine/mailman
NB: Le fichier de configuration par défaut à changer et pour joindre le site http://nomdomaine/cgi-bin/mailman/admin/mailman .Tenter aussi un a2enmod cgid .
Il faut d'abord modifier /etc/mailman/mm_cfg.py
pour que mailman utilise postfix.
MTA = 'postfix'
Pour le reste de la configuration de Postfix, rendez-vous dans /etc/postfix/main.cf
:
myorigin = /etc/mailname # appending .domain is the MUA's job. append_dot_mydomain = no readme_directory = no myhostname = listes.minet.net alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases alias_database = hash:/etc/aliases mydestination = listes, listes.minet.net, localhost.localdomain, localhost relayhost = mx.minet.net:10025 mynetworks = 127.0.0.0/8 192.168.102.25 192.168.102.26 mailbox_size_limit = 0 # Nécessaire pour mailman recipient_delimiter = + inet_interfaces = localhost 192.168.102.29 mailman_destination_recipient_limit = 1
/usr/lib/mailman/bin/check_perms -f
Et on redémarre le tout :
/etc/init.d/postfix restart /etc/init.d/mailman start
En plus de l'interface Web, il est possible de gérer les listes en ligne de commande.
Pour supprimer une liste : Sur la machine, en root, utiliser la commande :
rmlist lenomdelaliste
Ci-joint un petit script en python qui permet de récupérer des infos sur les listes. Par exemple, pour générer les statistiques des envois sur les 7 derniers mois, utiliser en root :
python stats_listes.py 7
Mailman a une fâcheuse tendance à stocker des archives, y compris pour les listes privées. La commande ci-dessous permet de vider les messages et les fichiers attachés sur les listes privées datant de plus de 30 jours.
find /var/lib/mailman/archives/private/ -ctime +30 | xargs rm -rf