Richard Dern

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’ É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.

Échanger autour de ce texte

Si vous souhaitez réagir publiquement, un fil dédié vous attend.

Ouvrir le fil de discussion

Taxonomies

Tags