Mailing Lists · 6 min read · Sep 09, 2025

Comment Installer Et Configurer Mailman (Avec Postfix) Sur Debian Squeeze

Comment Installer Et Configurer Mailman (Avec Postfix) Sur Debian Squeeze

Version 1.0
Auteur : Falko Timme
Suivez-moi sur Twitter

Mailman est un gestionnaire de listes de diffusion open-source, c’est-à-dire qu’il peut être utilisé pour gérer des discussions par e-mail et des listes de newsletters. C’est probablement le gestionnaire de listes de diffusion le plus populaire et le plus utilisé sur Internet. Ce tutoriel explique comment installer et configurer Mailman sur un serveur Debian Squeeze avec un serveur de messagerie Postfix.

Je ne donne aucune garantie que cela fonctionnera pour vous !

1 Remarque Préliminaire

Dans ce tutoriel, je vais configurer un hôte virtuel avec le nom d’hôte lists.example.com où j’installerai Mailman. lists.example.com est également la partie correcte des adresses e-mail de la liste de diffusion qui seront configurées dans Mailman, c’est-à-dire que les e-mails à une liste de diffusion devront être envoyés à l’adresse @lists.example.com.

Comme votre nom d’hôte sera différent, veuillez ajuster ce tutoriel en conséquence. Assurez-vous également que votre nom d’hôte existe dans le DNS.

Mailman peut être utilisé avec de nombreux serveurs de messagerie (par exemple, Postfix, Exim, Sendmail, Qmail). J’utiliserai Postfix dans ce tutoriel. Assurez-vous d’avoir une installation fonctionnelle de Postfix, par exemple comme montré dans ce tutoriel : Utilisateurs Virtuels Et Domaines Avec Postfix, Courier, MySQL Et SquirrelMail (Debian Squeeze)

2 Installer Mailman Et Apache

Comme Mailman est livré avec une interface web, nous avons besoin d’un serveur web en plus de Mailman. Je choisis Apache. Mailman et Apache peuvent être installés comme suit :

apt-get install mailman apache2

Vous verrez les questions/messages suivants :

Langues à prendre en charge : <– fr (Français)
Liste de site manquante
Mailman a besoin d’une soi-disant “liste de site”, qui est la liste à partir de laquelle les rappels de mot de passe et autres sont envoyés. Cette liste doit être créée avant que Mailman ne démarre. Pour créer la liste, exécutez “newlist mailman” et suivez les instructions à l’écran. Notez que vous devez également démarrer Mailman après cela, en utilisant /etc/init.d/mailman start. <– Ok

Mailman est livré avec un fichier de configuration Apache, /etc/mailman/apache.conf, que nous copions dans /etc/apache2/sites-available/mailman.conf :

cp /etc/mailman/apache.conf /etc/apache2/sites-available/mailman.conf

Ouvrez /etc/apache2/sites-available/mailman.conf…

vi /etc/apache2/sites-available/mailman.conf

… et ajoutez la configuration vhost suivante au fichier (il y a déjà un vhost pour lists.example.net dans le fichier qui est commenté - veuillez ne pas utiliser ce vhost car ma configuration vhost diffère un peu bien qu’elle semble assez similaire) :

| [...] ServerName lists.example.com DocumentRoot /var/www/lists ErrorLog /var/log/apache2/lists-error.log CustomLog /var/log/apache2/lists-access.log combined Options FollowSymLinks AllowOverride None Alias /pipermail/ /var/lib/mailman/archives/public/ Alias /images/mailman/ /usr/share/images/mailman/ ScriptAlias /admin /usr/lib/cgi-bin/mailman/admin ScriptAlias /admindb /usr/lib/cgi-bin/mailman/admindb ScriptAlias /confirm /usr/lib/cgi-bin/mailman/confirm ScriptAlias /create /usr/lib/cgi-bin/mailman/create ScriptAlias /edithtml /usr/lib/cgi-bin/mailman/edithtml ScriptAlias /listinfo /usr/lib/cgi-bin/mailman/listinfo ScriptAlias /options /usr/lib/cgi-bin/mailman/options ScriptAlias /private /usr/lib/cgi-bin/mailman/private ScriptAlias /rmlist /usr/lib/cgi-bin/mailman/rmlist ScriptAlias /roster /usr/lib/cgi-bin/mailman/roster ScriptAlias /subscribe /usr/lib/cgi-bin/mailman/subscribe ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/ ScriptAlias / /usr/lib/cgi-bin/mailman/listinfo |

La deuxième à dernière ligne ScriptAlias / /usr/lib/cgi-bin/mailman/listinfo est optionnelle ; elle fait que lorsque vous allez à http://lists.example.com/, vous serez redirigé vers http://lists.example.com/listinfo. Cela a du sens si vous n’avez aucun fichier à servir dans le document racine /var/www/lists.

Ensuite, créez le document racine /var/www/lists, activez la configuration vhost lists.example.com et redémarrez Apache :

mkdir /var/www/lists
a2ensite mailman.conf
/etc/init.d/apache2 restart

Parce que nous utilisons un vhost ici (lists.example.com), nous devons ajuster les variables suivantes dans /etc/mailman/mm_cfg.py :

vi /etc/mailman/mm_cfg.py

| [...] DEFAULT_URL_PATTERN = 'http://%s/' [...] DEFAULT_EMAIL_HOST = 'lists.example.com' [...] DEFAULT_URL_HOST = 'lists.example.com' [...] |

3 Configurer Postfix

Maintenant, nous devons configurer Postfix. D’abord, exécutez :

postconf -e ‘relay_domains = lists.example.com’
postconf -e ‘mailman_destination_recipient_limit = 1’

Ensuite, ouvrez /etc/postfix/master.cf…

vi /etc/postfix/master.cf

… et assurez-vous d’avoir les lignes suivantes dans celui-ci (elles devraient y être par défaut) :

| [...] mailman unix - n n - - pipe flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user} [...] |

Ensuite, nous devons associer le domaine lists.example.com au transport mailman. Comment vous faites cela dépend de votre configuration Postfix. Par exemple, si vous avez configuré votre serveur selon le tutoriel Utilisateurs Virtuels Et Domaines Avec Postfix, Courier, MySQL Et SquirrelMail (Debian Squeeze), les transports sont stockés dans une base de données MySQL ; dans la plupart des autres configurations, le fichier /etc/postfix/transport est utilisé pour créer des transports. Je vais décrire les deux cas dans les chapitres 3.1 et 3.2.

3.1 Transports Dans Une Base De Données MySQL

Si vous avez configuré votre serveur selon le tutoriel Utilisateurs Virtuels Et Domaines Avec Postfix, Courier, MySQL Et SquirrelMail (Debian Squeeze), les transports sont stockés dans la table de transport dans la base de données MySQL mail. Pour créer le transport nécessaire, connectez-vous à MySQL…

mysql -u root -p

… et exécutez les commandes MySQL suivantes :

USE mail;
INSERT INTO transport (domain, transport) VALUES (‘lists.example.com’, ‘mailman:’);
quit;

Redémarrez Postfix ensuite :

/etc/init.d/postfix restart

3.2 Transports Dans /etc/postfix/transport

Si vous n’avez pas votre transport dans une base de données MySQL, vous utilisez probablement le fichier /etc/postfix/transport. Dans ce cas, vous pouvez configurer le transport nécessaire comme suit :

postconf -e 'transport_maps = hash:/etc/postfix/transport'

Ouvrez /etc/postfix/transport…

vi /etc/postfix/transport

… et ajoutez la ligne suivante :

| lists.example.com mailman: |

Exécutez

postmap -v /etc/postfix/transport

ensuite et redémarrez Postfix :

/etc/init.d/postfix restart   

4 Créer La Liste De Diffusion mailman

Avant de pouvoir commencer à utiliser Mailman, nous devons créer une liste de diffusion appelée mailman ; c’est obligatoire - sans cela, Mailman ne démarrera pas :

newlist --urlhost=lists.example.com --emailhost=lists.example.com mailman

Dans la plupart des cas, les commutateurs –urlhost et –emailhost ne sont pas nécessaires car notre vhost est déjà nommé lists.example.com, et nous l’avons également dans /etc/mailman/mm_cfg.py (DEFAULT_EMAIL_HOST et DEFAULT_URL_HOST), mais si vous voulez être sûr que Mailman utilise le bon nom d’hôte, utilisez ces commutateurs.

root@server1:~# newlist –urlhost=lists.example.com –emailhost=lists.example.com mailman
Entrez l’e-mail de la personne gérant la liste : <– spécifiez l’adresse e-mail de l’administrateur de la liste, par exemple [email protected]
Mot de passe initial mailman : <– mailman_password
Pour terminer la création de votre liste de diffusion, vous devez éditer votre fichier /etc/aliases (ou équivalent) en ajoutant les lignes suivantes, et éventuellement en exécutant le programme newaliases :

liste de diffusion mailman

mailman: “|/var/lib/mailman/mail/mailman post mailman”
mailman-admin: “|/var/lib/mailman/mail/mailman admin mailman”
mailman-bounces: “|/var/lib/mailman/mail/mailman bounces mailman”
mailman-confirm: “|/var/lib/mailman/mail/mailman confirm mailman”
mailman-join: “|/var/lib/mailman/mail/mailman join mailman”
mailman-leave: “|/var/lib/mailman/mail/mailman leave mailman”
mailman-owner: “|/var/lib/mailman/mail/mailman owner mailman”
mailman-request: “|/var/lib/mailman/mail/mailman request mailman”
mailman-subscribe: “|/var/lib/mailman/mail/mailman subscribe mailman”
mailman-unsubscribe: “|/var/lib/mailman/mail/mailman unsubscribe mailman”

Appuyez sur entrée pour notifier le propriétaire de mailman… <– ENTRER

root@server1:~#

Maintenant, ouvrez /etc/aliases et ajoutez les alias que vous voyez dans la sortie de la commande newlist (cela doit être fait manuellement pour chaque nouvelle liste que vous créez) :

vi /etc/aliases

| [...] ## liste de diffusion mailman mailman: "|/var/lib/mailman/mail/mailman post mailman" mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman" mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman" mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman" mailman-join: "|/var/lib/mailman/mail/mailman join mailman" mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman" mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman" mailman-request: "|/var/lib/mailman/mail/mailman request mailman" mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman" mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman" |

Chaque fois que vous modifiez /etc/aliases, vous devez exécuter

newaliases
/etc/init.d/postfix restart

ensuite.

Maintenant, nous pouvons enfin démarrer Mailman :

/etc/init.d/mailman start

root@server1:~# /etc/init.d/mailman start
Démarrage du maître qrunner de Mailman : mailmanctl.
root@server1:~#

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.