La mise en place d’une mailing-list pour assurer la communication entre personnes m’a semblé être intéressant pour un projet lors de ma formation à l’ École Ouverte Francophone. J’ai donc opté pour mailman du projet GNU.
Nous considérerons pour ce tutoriel qu’un serveur postfix est déjà en place et fonctionnel.
L’installation en elle-même sous debian se fait via la commande suivante:
apt-get install mailman
On doit ensuite rajouter les lignes suivantes au fichier « /etc/postfix/main.cf »:
owner_request_special = no
unknown_local_recipient_reject_code = 550
mailman_destination_recipient_limit = 1
Et les lignes suivantes au fichier « /etc/postfix/master.cf »:
mailman unix - n n - - pipe
flags=FR user=list
argv=/etc/mailman/postfix-to-mailman.py ${nexthop} ${user}
On ajuste le fichier « /etc/maiman/mm__cfg.py »:
DEFAULT_URL_PATTERN = 'http://%s/mailman/'
PRIVATE_ARCHIVE_URL = 'mailman/private'
IMAGE_LOGOS = '/images/mailman/'
DEFAULT_EMAIL_HOST = 'mail.host.tld'
DEFAULT_URL_HOST = 'host.tld'
Et on relance les services:
/etc/init.d/postfix reload
/etc/init.d/mailman restart
A ce moment, mailman va râler parce qu’il n’existe pas encore la liste par défaut (appelée « mailman « ). On va donc la créer avec la commande suivante:
newlist mailman
Après avoir répondu aux quelques questions (n’oubliez pas de spécifier un mot de passe), mailman vous communique une liste d’alias à indiquer dans votre fichiers d’alias, généralement « /etc/aliases ». Il s’agit du fichier renseigné dans la directive « alias_database » du fichier « /etc/postfix/main.cf ».
Une fois ces lignes ajoutées, lancez la commande:
postalias /etc/aliases
Relancez postfix et mailman.
A noter qu’une directive existe pour ne pas avoir à refaire ces étapes lors de la création d’une nouvelle mailing-list, mais sur ma configuration, postfix ne prenait pas en compte les alias: je devais éditer le fichier « /etc/aliases » à la main.
Configurez ensuite un nouvel hôte virtuel dans Apache, dans le but de pouvoir gérer vos mailing-list via une interface web, mais surtout pour permettre aux autres personnes de s’y abonner facilement. Voici mon fichier spécifique à cet hôte virtuel:
<VirtualHost *:80>
ServerName mailman.host.tld
ServerAdmin contact@host.tld
ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/
<Directory "/usr/lib/cgi-bin/mailman/">
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
Alias /images/mailman/ /usr/share/images/mailman/
<Directory "/usr/share/images/mailman/">
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Alias /pipermail/ /var/lib/mailman/archives/public/
<Directory "/var/lib/mailman/archives/public">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<IfModule mod_rewrite.c>
RewriteEngine on
# Redirect to SSL if available
# <IfModule mod_ssl.c>
# RewriteCond %{HTTPS} !^on$ [NC]
# RewriteRule . https://%{HTTP_HOST}%{REQUEST_URI} [L]
# </IfModule>
# Redirect root access to mailman list
RewriteRule ^$ /mailman/listinfo [R=permanent,L]
RewriteRule ^/$ /mailman/listinfo [R=permanent,L]
</IfModule>
</VirtualHost>
Vous voilà en mesure de gérer vos listes de diffusion depuis l’interface web, dont l’adresse sera celle de votre hôte virtuel.
Richard Dern