Installation réalisée sur bulbe.nos-oignons.net le 16 avril 2013.

L'installation se conforme à la documentation officielle, aux spécificités Debian près (principallement, certain chemins changent).

Installation

L'installation du paquet Debian se fait par :

apt-get install mailman

Configuration de Mailman

La configuration se fait dans mm_cfg.py.

Quelques paramêtres locaux :

DEFAULT_URL_PATTERN          =  'https://%s/mailman/'
DEFAULT_URL_HOST             =  'nos-oignons.net'
DEFAULT_EMAIL_HOST           =  'nos-oignons.net'
POSTFIX_STYLE_VIRTUAL_DOMAIN = ['nos-oignons.net', 'nos-oignons.org', 'nos-oignons.fr']
DEB_LISTMASTER               =  'postmaster@nos-oignons.net'
DEFAULT_SERVER_LANGUAGE      =  'fr'

Le choix du MTA (les conséquences sont décrites plus bas) :

MTA='Postfix'

Et l'activation de SpamAssassin pour les listes :

GLOBAL_PIPELINE.insert(1, 'SpamAssassin')

Anonymat des e-mails responsables des listes

Mailman a le défaut d'afficher publiquement la liste des e-mails responsables de l'administration. Alors on applique un petit patch pour éviter le spam et les pénibles :

cd /usr/lib/mailman && patch -p1 < /tmp/anonymize-the-owner-e-mail-address-in-HTML.diff

Pour éviter que cette modification se fasse écraser par une mise à jour sans qu'on ne le remarque, on met le paquet on hold :

echo mailman hold | dpkg --set-selections

Intégration avec Postfix

Mailman est configuré dans un mode où il produit des aliases pour Postfix, qui sont valables quel que soit le domaine spécifié.

On modifie donc /etc/postfix/main.cf afin d'ajouter ce fichier aux alias_maps.

alias_maps = hash:/etc/aliases,
             hash:/var/lib/mailman/data/aliases

Note : il n'est pas nécessaire d'ajout ce fichier dans alias_database, car Mailman s'occupe de générer le fichier .db tout seul.

Comme spécifié dans main.cf, paramètre alias_maps, ils sont stockés dans le fichier /var/lib/mailman/data/aliases. Ce dernier ne figure pas dans alias_database car le fichier .db associé ne doit pas être regénéré par la commande new_aliases.

Intégration avec Apache

Pour permettre l'accès à l'interface web d'administration, on va inclure la configuration spécifique pour Apache. Pour cela, on ajoute dans le VirtualHost HTTPS :

Include /etc/mailman/apache.conf

On modifie également ce dernier fichier pour avoir :

#ScriptAlias /cgi-bin/mailman/ /usr/lib/cgi-bin/mailman/
ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/

Ce qui nous donne de plus jolies URLs.

Afin que les archives publiques soient disponibles, il est nécesaire de rendre la répertoire /var/lib/mailman/archives/private via une ACL :

setfacl -m g:www-data:x /var/lib/mailman/archives/private