Gestion de listes de diffusion

Un petit test de plus sur mon installation de serveur en attendant qu’OVH répare les VPS, on va ajouter un gestionnaire de mailinglist.

Préambule

Comme à mon habitude je choisi arbitrairement mailman. Et je ne sais même pas si il y en a d’autres qui existent !
On utilise un répertoire de notre sous domaine de gestion créé dans l’article précédent pour gérer les listes de diffusions.
A noter que ce sous domaine est en SSL donc certains paramètres changent.

Mailman

On installe la paquetage en choisissant les langues qu’on souhaite proposer et celle par défaut :

apt-get install mailman

On modifie la configuration de mailman pour s’accorder avec notrestructure de serveur et notre configuration du serveur mail :

nano /etc/mailman/mm_cfg.py

from Defaults import *
MAILMAN_SITE_LIST = ‘mailman’
DEFAULT_URL_PATTERN = ‘https://%s/mailman/’
PRIVATE_ARCHIVE_URL = ‘/mailman/private’
IMAGE_LOGOS = ‘/images/mailman/’
DEFAULT_EMAIL_HOST = ‘scribox.org’
DEFAULT_URL_HOST = ‘manager.scribox.org’
add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
DEFAULT_SERVER_LANGUAGE = ‘en’
USE_ENVELOPE_SENDER = 0
DEFAULT_SEND_REMINDERS = 0
MTA=None

On initialise le programme en ajoutant la première liste mailman et on répond aux quelques questions à propos de la liste :

newlist mailman

On ajoute en fin de fichier les alias mails pour la gestion des listes et on prend en compte ces changements :

nano /etc/aliases


# Mailman aliases
mailman: “|/var/lib/mailman/mail/mailman post mailman”
mailman-admin: “|/var/lib/mailman/mail/mailman admin mailman”
mailman-bounces: “|/var/lib/mailman/mail/mailman bounces mailman”
mailman-confirm: “|/var/lib/mailman/mail/mailman confirm mailman”
mailman-join: “|/var/lib/mailman/mail/mailman join mailman”
mailman-leave: “|/var/lib/mailman/mail/mailman leave mailman”
mailman-owner: “|/var/lib/mailman/mail/mailman owner mailman”
mailman-request: “|/var/lib/mailman/mail/mailman request mailman”
mailman-subscribe: “|/var/lib/mailman/mail/mailman subscribe mailman”
mailman-unsubscribe: “|/var/lib/mailman/mail/mailman unsubscribe mailman”

newaliases

Et on redémarre le service :

/etc/init.d/mailman restart

Exim

Maintenant on va créer la configuration d’Exim pour Mailman.
En premier les options générales :

nano /etc/exim4/conf.d/main/04_mailman_options

# Mailman macro definitions
MM_HOME=/var/lib/mailman
MM_UID=list
MM_GID=list
domainlist mm_domains=manager.scribox.org
MM_WRAP=MM_HOME/mail/mailman
MM_LISTCHK=MM_HOME/lists/${lc::$local_part}/config.pck

On continue avec les alias :

/etc/exim4/conf.d/router/450_mailman_aliases

mailman_router:
driver = accept
domains = +mm_domains
require_files = MM_LISTCHK
local_part_suffix_optional
local_part_suffix = -admin : \
-bounces : -bounces+* : \
-confirm : -confirm+* : \
-join : -leave : \
-owner : -request : \
-subscribe : -unsubscribe
transport = mailman_transport

Enfin les transports :

/etc/exim4/conf.d/transport/40_mailman_pipe

mailman_transport:
driver = pipe
command = MM_WRAP \
‘${if def:local_part_suffix \
{${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} \
{post}}’ \
$local_part
current_directory = MM_HOME
home_directory = MM_HOME
user = MM_UID
group = MM_GID

On fait prendre en compte les modifications par Exim puis on le redémarre :

update-exim4.conf
/etc/init.d/exim4 restart

Apache

Comme dit plus haut on utilise un sous-domaine créé précédemment pour accueillir nos listes de diffusions, de plus Mailman utilise CGI donc la configuration sera un peu différente de ce qu’on a déjà fait dans les articles précédents.
On ajoute les Alias :

nano /etc/apache2/conf.d/mailman

Alias /pipermail /var/lib/mailman/archives/public
Alias /images/mailman /usr/share/images/mailman
<directory /var/lib/mailman/archives/public>
DirectoryIndex index.html
</directory>

On modifie la configuration existante de l’hôte virtuel de notre sous domaine :

a2dissite manager.scribox.org
nano /etc/apache2/sites-available/manager.scribox.org

Voici à quoi ressemble notre fichier en complet avec les modifications du jour :

<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/apache2/apache.pem
ServerAdmin ma.vrai@.mail
ServerName manager.scribox.org
ServerAlias www.manager.scribox.org
DocumentRoot /var/www/manager.scribox.org
<Directory /var/www/manager.scribox.org/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
# On ajoute la redirection vers les listes
RedirectMatch ^/mailman$ /mailman/listinfo
</Directory>

# On ajoute le repertoire de gestions de listes
ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/
<directory “/usr/lib/cgi-bin/mailman”>
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</directory>
</VirtualHost>

Et on remet tout en route :

a2ensite manager.scribox.org
service apache2 reload

Vérification

On peut vérifier si tout fonctionne bien dans notre navigateur web https://manager.scribox.org/mailman :
mailman_web.png
PS: Si on change la configuration de mailman comme par exemple l’URL d’accès, les listes déjà créées ne prendront pas en compte ces changements !

Au suivant

On a déjà installé pas mal de trucs ! Alors pendant qu’on est chaud on va s’installer un réducteur d’URLs perso.

Sources

Atbildēt

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti kā *