Chapitre 11. Monter un serveur de mailing-listes

Table des matières
1. Monter le serveur
1.1. Installer et configurer Ecartis
1.2. Créer une mailing-list
1.3. Configurer la mailing-list
1.4. Le fichier des abonnés
1.5. Administrer la mailing-list
1.6. Poster dans la mailing-list
2. Archivage Web des mailing-lists
2.1. Configuration de base
2.2. Options avancées
2.3. Archivage par mois

Vos serveurs DNS et mail fonctionnent bien ? Vous avez appris à faire des alias qui pointent vers plusieurs comptes et/ou adresses mail, mais vous voudriez aller plus loin pour communiquer au sein d'une communauté ? Alors suivez ce qui suit pour mettre en place des mailing-lists avec archivage sur le Web...

1. Monter le serveur

1.1. Installer et configurer Ecartis

Je vous propose d'installer Ecartis, qui est un manager de mailing-lists robuste et performant. Commencez par installer le package :


# apt-get install ecartis

Ecartis possède un fichier de configuration global /etc/ecartis/ecartis.cfg. Editez-le et personnalisez les paramètres suivants en vous aidant des commentaires (dans la plupart des cas, il suffira de remplacer localhost par le nom de domaine de la machine) :

  • mailserver

  • listserver-address

  • listserver-admin

  • list-owner

Ajoutez les aliases nécessaires au bon fonctionnement d'Ecartis :


# cat /usr/share/doc/ecartis/examples/aliases >> /etc/aliases
# newaliases

1.2. Créer une mailing-list

Nous allons créer une première mailing-list bruit, qui servira à des fins de test, pour se familiariser avec Ecartis :


# /usr/lib/ecartis/ecartis -newlist bruit

Creating new list 'bruit'...
List admin e-mail:

Il vous demande l'adresse mail de l'administrateur de la mailing-list : entrez votre adresse mail ; c'est avec cette adresse que vous pourrez administrer la mailing-list.

Il crée ensuite le répertoire et les fichiers nécessaires au bon fonctionnement de la mailing-list dans le répertoire /var/lib/ecartis/lists/ :


 Writing config file...done.
 Creating default user file...done.

Enfin, il affiche une liste d'alias à créer dans votre serveur de mail :


Sending aliases for sendmail/Exim/Postfix/Zmailer to stdout.

# Aliases for 'bruit' mailing list.
bruit: "|/usr/lib/ecartis/ecartis -s bruit"
bruit-request: "|/usr/lib/ecartis/ecartis -r bruit"
bruit-repost: "|/usr/lib/ecartis/ecartis -a bruit"
bruit-admins: "|/usr/lib/ecartis/ecartis -admins bruit"
bruit-moderators: "|/usr/lib/ecartis/ecartis -moderators bruit"
bruit-bounce: "|/usr/lib/ecartis/ecartis -bounce bruit"

Copiez-collez le bloc ci-dessus, qui comprend les 6 alias nécessaires au fonctionnement de la mailing-list, dans le fichier d'alias de votre serveur de mail (dans notre cas : /etc/aliases) puis mettez à jour la base d'alias :


# newaliases

La mailing-list est maintenant crée... passons à la configuration !

1.3. Configurer la mailing-list

La configuration de la mailing-list se fait dans le fichier /var/lib/ecartis/lists/bruit/config. Il existe un très grand nombre de paramètres de configuration, et le fichier de configuration installé par défaut les explique tous dans les commentaires (mais en anglais...).

Les paramètres les plus importants que vous devez absolument personnaliser sont les suivants (certains ont déjà été décommentés et personnalisés à la création de la liste) :

2. Archivage Web des mailing-lists

2.1. Configuration de base

Vous avez envie d'archiver une mailing-list sur le Web ? MHonArc est l'outil qu'il vous faut :


# apt-get install mhonarc

Le mécanisme d'archivage des mailing-list que je vous propose de mettre en place va faire intervenir procmail, un programme de tri des mails. Si vous n'êtes pas encore familier avec procmail, je vous invite à lire et mettre en oeuvre le chapitre Le mail en console au préalable.

L'avantage d'utiliser procmail est qu'il va nous permettre une gestion simple des permissions. Tout d'abord, il faut décider d'un utilisateur à qui appartiendra le répertoire utilisé pour l'archivage Web : dans cet exemple, il s'agit de l'utilisateur toto et l'archivage se fait dans son répertoire ~/public_html/archive-bruit/. Cet utilisateur devra être abonné à la mailing-list et recevra donc les mails. A chaque réception d'un mail de la mailing-list, son procmail lance l'exécution de MHonArc qui convertit le mail en HTML et met à jour les pages Web d'index.

Note

Rappel : le procmail d'un utilisateur s'exécute avec les droits de l'utilisateur.

Nous prenons donc comme exemple l'utilisateur toto qui archive la mailing-list bruit dans le sous-répertoire archive-bruit de son public_html sur le système dont le nom DNS est serveur.exemple.org (ce serveur pouvant recevoir du mail).

Commencez par abonner toto@serveur.exemple.org à la mailing-list bruit.

Ensuite, écrivez un fichier .procmailrc dans le home de l'utilisateur toto, qui pourrait ressembler à ça :


# ~/.procmailrc
# Fichier de configuration de Procmail

# Je ne veux pas trop de messages dans les logs
VERBOSE=off

# Fichier de log de procmail
LOGFILE=$HOME/.procmail.log

# Répertoire de stockage des archives (doit être créé au préalable)
REPERTOIRE=$HOME/public_html/archive-bruit

# J'envoie les mails de la mailing-list "bruit" sur le programme "mhonarc"
# pour archivage
:0
* ^X-list: bruit
| mhonarc -add -quiet -umask 022 -outdir $REPERTOIRE

# Je trashe tous les autres mails
:0
/dev/null

Quelques précisions sur les options de la commande mhonarc utilisée dans le .procmailrc :

  • -add : archive les messages au fur et à mesure de leur arrivée ;

  • -quiet : n'écrit dans les logs que les messages d'erreur ;

  • -umask 022 : met les permissions 644 sur les fichiers HTML crées ;

  • -outdir $REPERTOIRE : écrit les fichiers HTML dans le répertoire spécifié dans la variable REPERTOIRE (le répertoire doit être crée au préalable).

Dès réception du premier mail, les archives seront accessibles à l'adresse http://serveur.exemple.org/~toto/archive-bruit/threads.html. Si cela ne marche pas, consultez les logs de procmail dans ~toto/.procmail.log et mettez éventuellement le paramètre VERBOSE à on dans .procmailrc pour avoir plus de détails dans les logs.

Si vous voulez restreindre l'accès aux archives Web, la configuration se fait au niveau d'Apache avec un fichier .htaccess, et non au niveau de procmail ou de mhonarc !

2.3. Archivage par mois

Il suffit de modifier le fichier procmail en se basant sur l'exemple ci-dessous :


# ~/.procmailrc
# Fichier de configuration de Procmail

# Je ne veux pas trop de messages dans les logs
VERBOSE=off

# Fichier de log de procmail
LOGFILE=$HOME/.procmail.log

# Répertoire de stockage des archives (doit être crée au préalable)
REPERTOIRE=$HOME/public_html/archive-bruit

# Stocke la date du mois
DATE=`/bin/date +%Y-%m`

# J'envoie les mails de la mailing-list "bruit" sur le programme "mhonarc"
# pour un archivage par mois
:0
* ^X-list: bruit
| mkdir -m 755 -p $REPERTOIRE/$DATE ; mhonarc -add -quiet -umask 022 -outdir $REPERTOIRE/$DATE

# Je trashe tous les autres mails
:0
/dev/null