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)

[shell]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’);[/shell]

Configuration Apache2

Création d’un fichier dédié à un vhost mailman

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

[shell]<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>[/shell]

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

Be Sociable, Share!

2 thoughts on “Mailman et les listes de diffusion sous Postfix

  1. Bonjour,
    J’ai installé mailman avec la méthode « http://doc.ubuntu-fr.org/mailman » arrivé au bout (avec difficultés) en fait je m’aperçois qu’il est en local, j’ai un nom de domaine, maiquez.net, j’ai beau demander de l’aide, mais rien à faire, il semble que personne n’est en mesure de m’aider, mon site actuel est en cours de rénovation et doublé d’une généalogie.
    Pourriez-vous m’aider à le faire fonctionner?
    Merci de votre aide

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *