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
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.
Références
GNU Mailman - Manuel d'installation
Guide partique - Utiliser Exim4 avec Mailman 2.1
Vous pouvez également consulter la page du wiki Ubuntu pour Mailman (en anglais).