Mailman et les listes de diffusion sous Postfix
Introduction
Je vous propose ici un article sur la configuration de Mailman. Un système de gestion de liste de diffusion. Cet article fait suite à la mise en place d’un serveur de mails sous Debian Squeeze (Postfix, Dovecot, Mysql) serveur de mails postfix-dovecot-mysql-smtps-imaps»
Installation de MAILMAN
Installation des paquets mailman et apache2 (pour la partie interface web d’administration)
# aptitude install mailman apache2
I faut vérifier les permissions après installation de Mailman
# check_perms
La sortie de la commande précédente montre pas mal d’anomalies dans l’attribution des droits. Il faut les ajuster
# check_perms -f
Puis on repasse le « check »
# check_perms
On s’aperçoit qu’il reste des droits encore de travers ! Alors radicalement, on ajuste les droits de la façon suivante :
# cd /var/lib/mailman;chown -R list:list *
Configuration de MailMan à proprement parlant
# vi /etc/mailman/mm_cfg.py
Je prends pour exemple un domaine « lists.beo.org »
[...] DEFAULT_URL_PATTERN = 'http://%s/' [...] DEFAULT_EMAIL_HOST = 'lists.beo.org' [...] DEFAULT_URL_HOST = 'lists.beo.org' [...]
Configuration de Postfix
# postconf -e 'relay_domains = lists.beo.org'
# postconf -e 'mailman_destination_recipient_limit = 1'
On poursuit dans master.cf
# vi /etc/postfix/master.cf
… vérifier que mailman est bien activé
[...] mailman unix - n n - - pipe flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user} [...]
Configuration du transport dans Postfix
Je choisis de faire les configurations dans un fichier mais il est possible d’ajouter une table Mysql pour compléter les configurations de la base déjà en place.
# postconf -e 'transport_maps = hash:/etc/postfix/transport'
# vi /etc/postfix/transport
lists.beo.com mailman:
On joue le fichier sur Postfix pour générer la base transport notamment.
# postmap -v /etc/postfix/transport
Zou, on redémarre Postfix
# /etc/init.d/postfix restart
On termine la configuration en créant la première liste
# newlist mailman
On ajoute maintenant les alias de la liste dans la base Mysql (Cf. article sur la configuration d’un serveur mails). Il est tout à fait possible d’ajouter les alias dans le fichier alias par défaut de Postfix (/etc/aliases)
INSERT INTO virtual_alias_maps VALUES ('mailman@beo.org','mailman@lists.beo.org'); INSERT INTO virtual_alias_maps VALUES ('mailman-admin@beo.org', 'mailman-admin@lists.beo.org'); INSERT INTO virtual_alias_maps VALUES ('mailman-bounces@beo.org','mailman-bounces@lists.beo.org'); INSERT INTO virtual_alias_maps VALUES ('mailman-confirm@beo.org','mailman-confirm@lists.beo.org'); INSERT INTO virtual_alias_maps VALUES ('mailman-join@beo.org','mailman-join@lists.beo.org'); INSERT INTO virtual_alias_maps VALUES ('mailman-leave@beo.org','mailman-leave@lists.beo.org'); INSERT INTO virtual_alias_maps VALUES ('mailman-owner@beo.org','mailman-owner@lists.beo.org'); INSERT INTO virtual_alias_maps VALUES ('mailman-request@beo.org','mailman-request@lists.beo.org'); INSERT INTO virtual_alias_maps VALUES ('mailman-subscribe@beo.org','mailman-subscribe@lists.beo.org'); INSERT INTO virtual_alias_maps VALUES ('mailman-unsubscribe@beo.org','mailman-unsubscribe@lists.beo.org');
Configuration Apache2
Création d’un fichier dédié à un vhost mailman
# vi /etc/apache2/sites-enabled/mailman.conf
<VirtualHost *:80> ServerName lists.beo.org DocumentRoot /var/www/lists ErrorLog /var/log/apache2/lists-error.log CustomLog /var/log/apache2/lists-access.log combined <Directory /var/lib/mailman/archives/> Options FollowSymLinks AllowOverride None </Directory> 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 </VirtualHost>
Active le site
# a2ensite mailman.conf
On redémarre le tout
# /etc/init.d/postfix restart;/etc/init.d/mailman restart;/etc/init.d/apache2 restart
L’interface d’administration sera accessible sur http://lists.beo.org/
Tests
# newlist list1
On ajoute un alias dans la base Postfix
INSERT INTO virtual_alias_maps VALUES ('maliste@beo.org','list1@lists.beo.org');
Voila…il reste à envoyer un mail à maliste@beo.org !
Références
http://freemars.org/howto/mailman.html
http://www.howtoforge.com/how-to-install-and-configure-mailman-with-postfix-on-debian-squeeze
Cet article Mailman et les listes de diffusion sous Postfix est apparu en premier sur PointRoot.org.