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.

Vus : 2972
Publié par pointroot.org : 17