Mailman

Mailman est un logiciel libre permettant la gestion de discussions par courrier électronique et de listes de bulletins d'information électroniques. De nombreuses listes de discussions sur le libre (dont toutes les listes de discussions de Ubuntu) utilisent Mailman comme logiciel de gestion de liste de diffusion. Il est puissant, facile à installer et à gérer.

Installation

Mailman fournit une interface Web aux administrateurs et utilisateurs en s'appuyant sur un serveur de courriel externe pour envoyer et recevoir les courriels. Il fonctionne parfaitement avec les serveur de courriel suivants :

  • Postfix

  • Exim

  • Sendmail

  • Qmail

Nous allons découvrir comment installer et configurer Mailman avec le serveur Apache, et le serveur de courriel Postfix ou bien Exim. Si vous désirez installer Mailman avec un serveur de courriel différent, veuillez visitez la section des références.

Vous avez seulement besoin d'un serveur de courrier et Postfix est l'agent de transfert de courrier (MTA) par défaut d'Ubuntu.

Apache2

Pour installer apache2, reportez-vous à Installation pour plus de détails.

Postfix

Pour les instructions sur l'installation et la configuration de Postfix, référez vous à Postfix

Exim4

Pour installer Exim4, référez vous à Exim4.

Une fois que exim4 est installé, les fichiers de configuration sont stockés dans le répertoire /etc/exim4. Dans Ubuntu, par défaut, les fichiers de configuration exim4 sont répartis dans différents fichiers. Vous pouvez changer ce comportement en modifiant la variable suivante dans le fichier /etc/exim4/update-exim4.conf :

dc_use_split_config='true'

Mailman

Pour installer Mailman, lancez la commande suivante dans un terminal:

sudo apt install mailman 

Il copie les fichiers d'installation dans le répertoire /var/lib/mailman. Il installe les scripts CGI dans le répertoire /usr/lib/cgi-bin/mailman. Il crée l'utilisateur Linux list. Il crée le groupe Linux list. Le processus mailman appartiendra à cet utilisateur.

Configuration

Cette section suppose que vous avez installé mailman, apache2, and postfix or exim4 avec succès. Maintenant vous devez juste les configurer.

Apache2

Un exemple de fichier de configuration pour Apache est livré avec Mailman et placé dans /etc/mailman/apache.conf. Pour qu'Apache utilise le fichier de configuration, il devra être copié vers /etc/apache2/sites-available :

sudo cp /etc/mailman/apache.conf /etc/apache2/sites-available/mailman.conf

Ceci configurera un nouvel VirtualHost d'Apache pour le site d'administration de Mailman. À présent, activez la nouvelle configuration et redémarrez Apache :

sudo a2ensite mailman.conf
sudo systemctl restart apache2.service

Mailman utilise apache2 pour exécuter ses scripts CGI. Les scripts CGI de Mailman sont installés dans le répertoire /usr/lib/cgi-bin/mailman. Donc, l'url de mailman sera http://hostname/cgi-bin/mailman/.. Vous pouvez modifier le fichier de configuration /etc/apache2/sites-available/mailman.conf si vous souhaitez changer ce comportement.

Postfix

Pour l'intégration de Postfix, nous associerons le domaine lists.example.com avec les listes de diffusion. Veuillez remplacer lists.example.com par le domaine de votre choix.

Vous pouvez utiliser la commande postconf pour ajouter les configurations nécessaires à /etc/postfix/main.cf:

sudo postconf -e 'relay_domains = lists.example.com'
sudo postconf -e 'transport_maps = hash:/etc/postfix/transport'
sudo postconf -e 'mailman_destination_recipient_limit = 1'

Dans /etc/postfix/master.cf, vérifiez bien que vous avez le transport suivant :

mailman   unix  -       n       n       -       -       pipe
  flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
  ${nexthop} ${user}

Il appelle le script postfix-to-mailman.py quand un courriel est destiné à une liste de diffusion.

Associez le nom de domaine lists.example.com au transport Mailman grâce au transport map. Modifiez le fichier /etc/postfix/transport :

lists.example.com      mailman:

À présent, faites construire la carte de transport par Postfix en saisissant ceci dans un terminal :

sudo postmap -v /etc/postfix/transport

Ensuite redémarrez Postfix pour activer les nouvelles configurations :

sudo systemctl restart postfix.service

Exim4

Une fois Exim4 installé, vous pouvez démarrez le serveur Exim en utilisant la commande suivante dans un terminal :

sudo systemctl start exim4.service

Afin que Mailman puisse fonctionner avec Exim4, vous devez configurer ce dernier. Comme dit précédemment, par défaut, Exim4 utilise plusieurs fichiers pour son paramétrage. Référez-vous au site Web d'Exim. Pour utiliser Mailman, il vous faudra ajouter un fichier de configuration à :

  • Principal

  • Transport

  • Routeur

. Exim crée ensuite un fichier de configuration maître en triant tous ces petits fichiers de paramètres. L'ordre dans lequel se trouvent ces fichiers est donc très important.

Principal

Tous les fichiers de configuration appartenant à la catégorie Principal sont stockés dans le répertoire /etc/exim4/conf.d/main/. Vous pouvez ajouter le contenu suivant dans un nouveau fichier, nommé 04_exim4-config_mailman :

# start
# Home dir for your Mailman installation -- aka Mailman's prefix
# directory.
# On Ubuntu this should be "/var/lib/mailman"
# This is normally the same as ~mailman
MM_HOME=/var/lib/mailman
#
# User and group for Mailman, should match your --with-mail-gid
# switch to Mailman's configure script.  Value is normally "mailman"
MM_UID=list
MM_GID=list
#
# Domains that your lists are in - colon separated list
# you may wish to add these into local_domains as well
domainlist mm_domains=hostname.com
#
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#
# These values are derived from the ones above and should not need
# editing unless you have munged your mailman installation
#
# The path of the Mailman mail wrapper script
MM_WRAP=MM_HOME/mail/mailman
#
# The path of the list config file (used as a required file when
# verifying list addresses)
MM_LISTCHK=MM_HOME/lists/${lc::$local_part}/config.pck
# end

Transport

Tous les fichiers de configuration appartenant à la catégorie Transport sont stockés dans le répertoire /etc/exim4/conf.d/transport/. Vous pouvez ajouter le contenu suivant dans un nouveau fichier, nommé 40_exim4-config_mailman :

  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

Routeur

Tous les fichiers de configuration appartenant à la catégorie Routeur sont stockés dans le répertoire /etc/exim4/conf.d/router/. Vous pouvez ajouter le contenu suivant dans un nouveau fichier, nommé 101_exim4-config_mailman :

  mailman_router:
   driver = accept
   require_files = MM_HOME/lists/$local_part/config.pck
   local_part_suffix_optional
   local_part_suffix = -bounces : -bounces+* : \
                       -confirm+* : -join : -leave : \
                       -owner : -request : -admin
   transport = mailman_transport

L'ordre des fichiers de configuration des catégories Principal et Transport n'est pas important. Mais l'ordre des fichiers de configuration de la catégorie Routeur doit être respecté. Ce fichier particulier doit se trouver avant le fichier 200_exim4-config_primary. Ces deux fichiers de configuration contiennent le même type d'information, le premier fichier étant prioritaire. Pour plus de détails, veuillez vous reporter à la section « Références ».

Mailman

Une fois mailman installé, vous pouvez le lancer avec la commande suivante :

sudo systemctl start mailman.service

Une fois mailman installé, vous devez créer la liste de diffusion par défaut. Exécutez la commande suivante pour créer la liste de diffusion :

sudo /usr/sbin/newlist mailman
  Enter the email address of the person running the list: bhuvan at ubuntu.com
  Initial mailman password:
  To finish creating your mailing list, you must edit your /etc/aliases (or
  equivalent) file by adding the following lines, and possibly running the
  `newaliases' program:

  ## mailman mailing list
  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"

  Hit enter to notify mailman owner...

  # 

Nous avons configuré soit Postfix soit Exim4 pour reconnaître les messages de mailman. Ainsi, il n'est pas obligatoire de créer de nouvelles entrées dans /etc/aliases. Si vous avez apporté des modifications aux fichiers de configuration, assurez-vous de redémarrer les services concernés avant de continuer dans la prochaine section.

Exim4 n'utilise pas les alias ci-dessus pour faire suivre les courriers à Mailman car il utilise une approche découverte. Afin de supprimer les alias à la création de la liste, vous pouvez ajouter la ligne MTA=None dans le fichier de configuration de Mailman, /etc/mailman/mm_cfg.py

Administration

Nous supposons que vous avez fait une installation par défaut. Les scripts cgi de mailman se trouvent toujours dans le répertoire /usr/lib/cgi-bin/mailman/. Mailman fournit un outil d'administration par internet. Pour accéder à cette page, ouvrez l'adresse suivante dans votre navigateur :

http://hostname/cgi-bin/mailman/admin

La liste de diffusion par défaut, mailman, apparaîtrasur cet écran. Si vous cliquez sur le nom de la liste, il vous sera demandé de vous authentifier avec votre mot de passe. Si vous saisissez le bon mot de passe, alors vous pourrez modifier les paramètres d'administration de cette liste de diffusion. Vous pouvez créer une nouvelle liste de diffusion, en ligne de commande, avec l'utilitaire /usr/sbin/newlist. Sinon, vous pouvez aussi créer une nouvelle liste de diffusion en utilisant l'interface Web.

Utilisateurs

Mailman fournit aux utilisateurs une interface Web. Pour accéder à cette page, ouvrez votre navigateur à l'adresse suivante :

http://hostname/cgi-bin/mailman/listinfo

La liste de diffusion par défaut, mailman, apparaîtrasur cet écran. Si vous cliquez sur le nom de la liste, vous verrez apparaître le formulaire d'inscription. Vous pourrez alors saisir votre adresse électronique, votre nom (facultatif) et votre mot de passe afin de vous y inscrire. Un courriel d'invitation vous sera adressé. Vous pourrez alors suivre les instructions de ce courriel pour vous inscrire.