Installation d'un système de mailing-list sous debian

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’ Favicon de web.archive.orgÉcole Ouverte Francophone. J’ai donc opté pour Favicon de web.archive.orgmailman du projet Favicon de web.archive.orgGNU.

Nous considérerons pour ce tutoriel qu’un serveur Favicon de www.postfix.orgpostfix est déjà en place et fonctionnel.

L’installation en elle-même sous Favicon de www.debian.orgdebian 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.