Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
mailman [Le 27/04/2010, 19:05]
PiccoLo
mailman [Le 02/03/2023, 00:40] (Version actuelle)
sefran Ajout tag
Ligne 1: Ligne 1:
-{{tag>hardy jaunty ​serveur}}+{{tag>Xenial ​serveur ​mda BROUILLON}}
  
 ---- ----
Ligne 8: Ligne 8:
 {{serveur:​mailman.jpg }} {{serveur:​mailman.jpg }}
  
-**Mailman** est une application libre pour gérer des listes de diffusion électroniques,​ les listes de discussion et les « newsletters » (traduisez littéralement par « lettres ​de nouveautés ​»). La plupart des listes de diffusions de logiciel libre utilisent Mailman comme programme de gestion des messages. Ce dernier est performant, facile à installer et facile à maintenir. ​+**Mailman** est une application libre pour gérer des listes de diffusion électroniques,​ les listes de discussion et les « newsletters » (traduisez littéralement par « lettres ​d'​information »). La plupart des listes de diffusions de logiciel libre utilisent Mailman comme programme de gestion des messages. Ce dernier est performant, facile à installer et facile à maintenir. 
 + 
 +<note warning>​Avant de commencer, déterminez bien la version (et stratégie) que vous souhaitez utiliser :​ \\ 
 +la version inclue par défaut dans le [[pu>​allpackages|dépôt principale de Xenial (16.04)]] est la 2.1 qui est la plus répandue alors que la dernière release est la  [[https://​docs.mailman3.org/​en/​latest/​|v. 3.1]] avec des ruptures importantes:​ installation via pip (python), django… API REST… docker.</​note>​
  
  
Ligne 15: Ligne 18:
  
 Il est nécessaire,​ pour la suite de ce tutoriel, de connaître les commandes Linux, [[:​tutoriel:​comment_editer_un_fichier|savoir éditer un fichier]], et démarrer/​arrêter un service sous Linux. Il est aussi requis que vous soyez actuellement sous un système Ubuntu, que vous ayez un accès root (super-utilisateur),​ et bien sûr que vous souhaitiez utiliser le programme Mailman. Il est nécessaire,​ pour la suite de ce tutoriel, de connaître les commandes Linux, [[:​tutoriel:​comment_editer_un_fichier|savoir éditer un fichier]], et démarrer/​arrêter un service sous Linux. Il est aussi requis que vous soyez actuellement sous un système Ubuntu, que vous ayez un accès root (super-utilisateur),​ et bien sûr que vous souhaitiez utiliser le programme Mailman.
- 
-Enfin, il est nécessaire que vous ayez une connexion internet, et que vous ayez configuré le fichier « /​etc/​apt/​sources.list » (voir [[:​depots|la page des dépôts]]). 
- 
- 
  
  
 ==== Apache2 ==== ==== Apache2 ====
  
-[[Apache2]] est déjà disponible dans les dépôts, donc [[:​tutoriel:​comment_installer_un_paquet|installez-le]] ​avec les paquets **apache2 apache2-common** [[apt://​apache2,​apache2-common|{{apt.png}}]]. +[[Apache2]] est déjà disponible dans les dépôts, donc [[:​tutoriel:​comment_installer_un_paquet|installez-le]].
 ==== Exim4 ==== ==== Exim4 ====
  
-[[:​tutoriel:​comment_installer_un_paquet|Installez les paquets]] **exim4 exim4-base exim4-config**[[apt://exim4,exim4-base,exim4-config|{{apt.png}}]].+<note important>​L'​installation d'​exim4 **supprimera postfix** si celui ci est présent. (cf. [[:​exim4-satellite|installation d'​exim4]])</​note>​ 
 +[[:​tutoriel:​comment_installer_un_paquet|Installez les paquets]] **[[apt>exim4,exim4-base,exim4-config|exim4 exim4-base exim4-config]]**.
  
 Une fois Exim4 installé, les fichiers de configuration se trouvent dans « /etc/exim4/ ». Dans Ubuntu, par défaut, les fichiers de configuration de Exim4 sont répartis en plusieurs fichiers. Une fois Exim4 installé, les fichiers de configuration se trouvent dans « /etc/exim4/ ». Dans Ubuntu, par défaut, les fichiers de configuration de Exim4 sont répartis en plusieurs fichiers.
  
 Vous pouvez changer ceci en éditant la variable ci-dessous dans « /​etc/​exim4/​update-exim4.conf.conf » : Vous pouvez changer ceci en éditant la variable ci-dessous dans « /​etc/​exim4/​update-exim4.conf.conf » :
- +<​file>​ 
-  dc_use_split_config='​true'​ # ='​false'​ pour désactiver l'​option+  dc_use_split_config='​true'​ # ='​false'​ pour désactiver l'​option</​file>​
  
 Si vous faites face à un problème durant l'​installation et que vous êtes incapable de résoudre ce dernier, référez-vous à la liste de diffusion appropriée pour plus d'​assistance. Si vous faites face à un problème durant l'​installation et que vous êtes incapable de résoudre ce dernier, référez-vous à la liste de diffusion appropriée pour plus d'​assistance.
Ligne 39: Ligne 38:
 ==== Mailman ==== ==== Mailman ====
  
-[[:​tutoriel:​comment_installer_un_paquet|Installez le paquet]] **mailman**.+[[:​tutoriel:​comment_installer_un_paquet|Installez le paquet]] **[[apt>mailman]]**.
  
 Cette dernière copiera les fichiers d'​installation dans le dossier « /​var/​lib/​mailman » et installera les scripts CGI dans le dossier « /​usr/​lib/​cgi-bin/​mailman ». Cette dernière copiera les fichiers d'​installation dans le dossier « /​var/​lib/​mailman » et installera les scripts CGI dans le dossier « /​usr/​lib/​cgi-bin/​mailman ».
Ligne 56: Ligne 55:
  
 Mailman utilise Apache pour créer un rendu de ses scripts CGI. Les scripts de Mailman se trouvent dans le dossier « /​usr/​lib/​cgi-bin/​mailman ». Dans le fichier « /​etc/​apache2/​apache2.conf », rajoutez une ligne : Mailman utilise Apache pour créer un rendu de ses scripts CGI. Les scripts de Mailman se trouvent dans le dossier « /​usr/​lib/​cgi-bin/​mailman ». Dans le fichier « /​etc/​apache2/​apache2.conf », rajoutez une ligne :
-  ​ScriptAlias /mailman/ /​usr/​lib/​cgi-bin/​mailman/​ +<file xml>ScriptAlias /mailman/ /​usr/​lib/​cgi-bin/​mailman/​</​file>​ 
-Ceci aura pour effet de poser le répertoire /​usr/​lib/​cgi-bin/​mailman/​ à la racine du serveur, c'​est-à-dire en http://​votre_domaine/​mailman. Faites de même pour que les archives soient accessibles en http://​votre_domaine/​archives : +Ceci aura pour effet de poser le répertoire ​**/​usr/​lib/​cgi-bin/​mailman/​** à la racine du serveur, c'​est-à-dire en http://​votre_domaine/​mailman. Faites de même pour que les archives soient accessibles en http://​votre_domaine/​archives : 
-Alias /archives/ /​var/​lib/​mailman/​archives/​public/​+   ​Alias /archives/ /​var/​lib/​mailman/​archives/​public/​
  
 Vous pouvez évidemment fignoler les préférences,​ par exemple en ajoutant dans ce même fichier : Vous pouvez évidemment fignoler les préférences,​ par exemple en ajoutant dans ce même fichier :
-<code><​Directory /​usr/​lib/​cgi-bin/​mailman/>​+<file xml><​Directory /​usr/​lib/​cgi-bin/​mailman/>​
     AllowOverride None     AllowOverride None
     Options ExecCGI     Options ExecCGI
Ligne 72: Ligne 71:
     Order allow,deny     Order allow,deny
     Allow from all     Allow from all
-</​Directory></​code>+</​Directory></​file>
  
 +Pensez à activer le module cgi de Apache2 par la commande suivante :
  
 +  sudo a2enmod cgi
  
 ==== Exim4 ==== ==== Exim4 ====
Ligne 96: Ligne 97:
  
 <​file>​ <​file>​
- # start +# start 
- # Home dir for your Mailman installation -- aka Mailman'​s prefix +# Home dir for your Mailman installation -- aka Mailman'​s prefix 
- # directory. +# directory. 
- # By default this is set to "/​usr/​local/​mailman"​ +# By default this is set to "/​usr/​local/​mailman"​ 
- # On a Red Hat/Fedora system using the RPM use "/​var/​mailman"​ +# On a Red Hat/Fedora system using the RPM use "/​var/​mailman"​ 
- # On Debian using the deb package use "/​var/​lib/​mailman"​ +# On Debian using the deb package use "/​var/​lib/​mailman"​ 
- # This is normally the same as ~mailman +# This is normally the same as ~mailman 
- ​MM_HOME=/​var/​lib/​mailman +MM_HOME=/​var/​lib/​mailman 
- # +
- # User and group for Mailman, should match your --with-mail-gid +# User and group for Mailman, should match your --with-mail-gid 
- # switch to Mailman'​s configure script. ​ Value is normally "​mailman"​ +# switch to Mailman'​s configure script. ​ Value is normally "​mailman"​ 
- ​MM_UID=list +MM_UID=list 
- ​MM_GID=list +MM_GID=list 
- # +
- # Domains that your lists are in - colon separated list +# Domains that your lists are in - colon separated list 
- # you may wish to add these into local_domains as well +# you may wish to add these into local_domains as well 
- ​domainlist mm_domains=bluestar.co.in +domainlist mm_domains=bluestar.co.in 
- # +
- # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 
- # +
- # These values are derived from the ones above and should not need +# These values are derived from the ones above and should not need 
- # editing unless you have munged your mailman installation +# editing unless you have munged your mailman installation 
- # +
- # The path of the Mailman mail wrapper script +# The path of the Mailman mail wrapper script 
- ​MM_WRAP=MM_HOME/​mail/​mailman +MM_WRAP=MM_HOME/​mail/​mailman 
- # +
- # The path of the list config file (used as a required file when +# The path of the list config file (used as a required file when 
- # verifying list addresses) +# verifying list addresses) 
- ​MM_LISTCHK=MM_HOME/​lists/​${lc::​$local_part}/​config.pck +MM_LISTCHK=MM_HOME/​lists/​${lc::​$local_part}/​config.pck 
- # end+# end
 </​file>​ </​file>​
  
Ligne 133: Ligne 134:
  
 <​file>​ <​file>​
-  ​mailman_transport:​ +mailman_transport:​ 
-   ​driver = pipe + ​driver = pipe 
-   ​command = MM_WRAP \ + ​command = MM_WRAP \ 
-               ​'${if def:​local_part_suffix \ +             ​'${if def:​local_part_suffix \ 
-                     ​{${sg{$local_part_suffix}{-(\\w+)(\\+.*)?​}{\$1}}} \ +                   ​{${sg{$local_part_suffix}{-(\\w+)(\\+.*)?​}{\$1}}} \ 
-                     ​{post}}'​ \ +                   ​{post}}'​ \ 
-               ​$local_part +             ​$local_part 
-    current_directory = MM_HOME +  current_directory = MM_HOME 
-    home_directory = MM_HOME +  home_directory = MM_HOME 
-    user = MM_UID +  user = MM_UID 
-    group = MM_GID+  group = MM_GID
 </​file>​ </​file>​
  
Ligne 151: Ligne 152:
  
 <​file>​ <​file>​
-  ​mailman_router:​ +mailman_router:​ 
-   ​driver = accept + ​driver = accept 
-   ​require_files = MM_HOME/​lists/​$local_part/​config.pck + ​require_files = MM_HOME/​lists/​$local_part/​config.pck 
-   ​local_part_suffix_optional + ​local_part_suffix_optional 
-   ​local_part_suffix = -bounces : -bounces+* : \ + ​local_part_suffix = -bounces : -bounces+* : \ 
-                       ​-confirm+* : -join : -leave : \ +                     ​-confirm+* : -join : -leave : \ 
-                       ​-owner : -request : -admin +                     ​-owner : -request : -admin 
-   ​transport = mailman_transport+ ​transport = mailman_transport
 </​file>​ </​file>​
  
Ligne 167: Ligne 168:
   DEFAULT_URL_HOST = '​votre_domaine.fr'​   DEFAULT_URL_HOST = '​votre_domaine.fr'​
 L'​adresse de la liste sera du type **nom_liste@votre_domaine.fr**. L'​adresse de la liste sera du type **nom_liste@votre_domaine.fr**.
 +
 +[[https://​wiki.list.org/​DOC/​How%20do%20I%20configure%20postfix_to_mailman.py%3F|infos sur postfix_to_mailman.py]]
  
 Créez ensuite une liste de diffusion, ici « mailman »: Créez ensuite une liste de diffusion, ici « mailman »:
-<​code>​ +<​code ​bash>sudo newlist mailman
-sudo newlist mailman+
  
 Entrez l'​adresse courriel du gestionnaire de la liste : utilisateur@serveur.com Entrez l'​adresse courriel du gestionnaire de la liste : utilisateur@serveur.com
Ligne 193: Ligne 195:
 </​code>​ </​code>​
  
-Nous avons configuré Exim afin qu'il reconnaisse tous les courriels de Mailman. Ainsi, il n'est plus obligatoire de créer des entrées dans « /​etc/​aliases ». Si vous avez effectué un changement quelconque, merci de vous assurez du fait que vous ayez redémarré tous les services, avant de passer à la section suivante.+Nous avons configuré Exim afin qu'il reconnaisse tous les courriels de Mailman. Ainsi, il n'est plus obligatoire de créer des entrées dans « /​etc/​aliases ». Si vous avez effectué un changement quelconque, merci de vous assurer ​que vous ayez redémarré tous les services, avant de passer à la section suivante.
  
 Enfin, démarrez Mailman : Enfin, démarrez Mailman :
Ligne 199: Ligne 201:
   sudo /​etc/​init.d/​mailman start   sudo /​etc/​init.d/​mailman start
  
 +Pour avoir le site web en français, modifier la ligne suivante du fichier:
 +<file - /​etc/​mailman/​mm_cfg.py>​
 +DEFAULT_SERVER_LANGUAGE = '​fr'​
 +</​file>​
 ===== Administration ===== ===== Administration =====
  
 {{ serveur:​mailman-webbased-admin2.png }} {{ serveur:​mailman-webbased-admin2.png }}
  
-Nous allons maintenant voir comment administrer Mailman. Cette étape considère que l'​installation de ce dernier a correctement été effectuée. ​+Nous allons maintenant voir comment administrer Mailman. Cette étape considère que l'​installation de ce dernier a correctement été effectuée.
  
 Mailman fournit une administration web facile d'​utilisation. Pour y accéder, entrez le lien suivant dans votre navigateur internet : http://​serveur/​cgi-bin/​mailman/​admin Mailman fournit une administration web facile d'​utilisation. Pour y accéder, entrez le lien suivant dans votre navigateur internet : http://​serveur/​cgi-bin/​mailman/​admin
Ligne 211: Ligne 217:
 Vous pouvez créer une nouvelle liste de diffusion en utilisant l'​utilitaire « ''​newlist''​ » en ligne de commande. Alternativement,​ vous pourez utiliser l'​interface web pour en créer une nouvelle. Vous pouvez créer une nouvelle liste de diffusion en utilisant l'​utilitaire « ''​newlist''​ » en ligne de commande. Alternativement,​ vous pourez utiliser l'​interface web pour en créer une nouvelle.
  
 +==== Gestion des rebonds ====
 +Les rebonds (bounces) correspondent à des refus de distribution du serveur de mail du destinataire. Les rebonds sont tracés dans le fichier /​var/​log/​mailman/​bounce
  
 ===== Utilisateurs ===== ===== Utilisateurs =====
  
-Mailman fournit aussi une interface web pour les utilisateurs. Pour y accéder, entrez le lien suivant dans votre navigateur : +Mailman fournit aussi une interface web pour les utilisateurs. Pour y accéder, entrez le lien suivant dans votre navigateur :
 http://​serveur/​cgi-bin/​mailman/​listinfo http://​serveur/​cgi-bin/​mailman/​listinfo
  
Ligne 256: Ligne 264:
 Considérons que notre handler personnalisé a bien été créé et est sauvegardé dans le répertoire « Mailman/​Handlers » sous le doux nom « MonHandler ». Il faut alors choisir où insérer le code créé. Considérons que notre handler personnalisé a bien été créé et est sauvegardé dans le répertoire « Mailman/​Handlers » sous le doux nom « MonHandler ». Il faut alors choisir où insérer le code créé.
 Pour cela je vous laisse vous reporter à la liste de handlers que nous avons vu plus haut (le champ GLOBAL_PIPELINE dans le fichier « Defaults.py »). Pour cela je vous laisse vous reporter à la liste de handlers que nous avons vu plus haut (le champ GLOBAL_PIPELINE dans le fichier « Defaults.py »).
-Pour l’exemple nous allons le positionner avant le handler « Moderate ». +Pour l’exemple nous allons le positionner avant le handler « Moderate ».
 Une fois que l’on sait où placer notre code, il existe plusieurs moyens de le faire prendre en compte par l’application : Une fois que l’on sait où placer notre code, il existe plusieurs moyens de le faire prendre en compte par l’application :
     * L’insertion globale qui va l’appliquer à toutes les listes sans modifier les autres handlers. Nous allons alors éditer le fichier de configuration de Mailman (/​etc/​mailman/​mm_cfg.py) et y ajouter la ligne suivante :     * L’insertion globale qui va l’appliquer à toutes les listes sans modifier les autres handlers. Nous allons alors éditer le fichier de configuration de Mailman (/​etc/​mailman/​mm_cfg.py) et y ajouter la ligne suivante :
Ligne 332: Ligne 340:
 Pourquoi l’insérer avant « Cleanse » ? En fait on l’insère plutôt après « AvoidDuplicates ». Si nous l’avions inséré n’importe où avant ce handler, Mailman aurait considéré que vous n’étiez pas l’expéditeur du mail (vu que le nom de domaine est différent) et vous aurait donc envoyé une copie de votre propre mail malgré le fait que vous ayez configuré l’option « Recevez les messages que vous envoyez à la liste ? » à « Non ». Pourquoi l’insérer avant « Cleanse » ? En fait on l’insère plutôt après « AvoidDuplicates ». Si nous l’avions inséré n’importe où avant ce handler, Mailman aurait considéré que vous n’étiez pas l’expéditeur du mail (vu que le nom de domaine est différent) et vous aurait donc envoyé une copie de votre propre mail malgré le fait que vous ayez configuré l’option « Recevez les messages que vous envoyez à la liste ? » à « Non ».
  
 +==== Migrer MailMan entre 2 serveurs ====
 +
 +<​code>​
 +for list in <​vos_listes_ici>;​ do
 +echo $list
 +rsync -az --progress -e ssh <​ancien_serveur>:/​var/​lib/​mailman/​archives/​public/​$list /​var/​lib/​mailman/​archives/​public/​
 +rsync -az --progress -e ssh <​ancien_serveur>:/​var/​lib/​mailman/​archives/​private/​$list /​var/​lib/​mailman/​archives/​private/​
 +rsync -az --progress -e ssh <​ancien_serveur>:/​var/​lib/​mailman/​archives/​private/​${list}.mbox /​var/​lib/​mailman/​archives/​private/​
 +rsync -az --progress -e ssh <​ancien_serveur>:/​var/​lib/​mailman/​lists/​$list /​var/​lib/​mailman/​lists/​
 +done
 +# Vérifier les listes visibles sur le nouveau serveur
 +list_lists
 +# Si utilisation sur un nom DNS qui n'est pas dédié aux listes mailman, on regénère les aliases à utiliser dans le MTA
 +/​usr/​lib/​mailman/​bin/​genaliases
 +# Démarrage du service
 +/​etc/​init.d/​mailman start
 +# Paramétrer le serveur web et le MTA (comme une nouvelle installation)
 +# Vérifier le bon fonctionnement
 +</​code>​
 +
 +Ressources :
 +  * [[http://​wiki.list.org/​display/​DOC/​How+do+I+move+a+list+to+a+different+server-Mailman+installation.]]
 +  * [[https://​www.mail-archive.com/​mailman-users@python.org/​msg08534.html]]
 +
 +==== Mailman ne fonctionne qu'en local après migration vers Precise 12.04 (Relay access denied) ====
 +
 +Si l'​envoi de mails depuis l'​extérieur sur la liste échoue ou que mailman n'​arrive pas à envoyer les mails à tous les destinataires,​ cela peut provenir d'un problème de résolution DNS.
 +
 +Un exemple de log Postfix :
 +<​code>​May ​ 1 10:46:08 server-mail postfix/​smtpd[17869]:​ warning: hostname ns.****.** does not resolve to address 192.168.1.11:​ No address associated with hostname
 +May  1 10:46:08 server-mail postfix/​smtpd[17869]:​ connect from unknown[192.168.1.11]
 +May  1 10:46:08 server-mail postfix/​smtpd[17869]:​ Anonymous TLS connection established from unknown[192.168.1.11]:​ TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)
 +May  1 10:46:08 server-mail postfix/​smtpd[17869]:​ CCE521FCD0: client=unknown[192.168.1.11],​ sasl_method=PLAIN,​ sasl_username=truc
 +May  1 10:46:08 server-mail postfix/​cleanup[17874]:​ CCE521FCD0: message-id=<​4F9FA2CF.1000208@****.**>​
 +May  1 10:46:08 server-mail postfix/​qmgr[3072]:​ CCE521FCD0: from=<​*****@****.**>,​ size=720, nrcpt=1 (queue active)
 +May  1 10:46:08 server-mail postfix/​smtpd[17869]:​ disconnect from unknown[192.168.1.11]
 +May  1 10:46:09 server-mail postfix/​pipe[17875]:​ CCE521FCD0: to=<​****@****.**>,​ relay=mailman,​ delay=0.38, delays=0.09/​0.01/​0/​0.29,​ dsn=2.0.0, status=sent (delivered via mailman service)
 +May  1 10:46:09 server-mail postfix/​qmgr[3072]:​ CCE521FCD0: removed
 +May  1 10:46:11 server-mail postfix/​smtpd[17869]:​ warning: hostname localhost does not resolve to address ::1: No address associated with hostname
 +May  1 10:46:11 server-mail postfix/​smtpd[17869]:​ connect from unknown[::​1]
 +May  1 10:46:11 server-mail postfix/​smtpd[17869]:​ NOQUEUE: reject: RCPT from unknown[::​1]:​ 554 5.7.1 <​*******@orange.fr>:​ Relay access denied; from=<​***-bounces@***>​ to=<​*******@****>​ proto=ESMTP helo=<​[127.0.1.1]></​code>​
 +
 +Ubuntu lors de la migration vers Precise modifie le fichier ''/​etc/​hosts'',​ il suffit d'​[[:​tutoriel:​comment_editer_un_fichier|éditer le fichier]] avec les droits d'​administrateur pour commenter les lignes suivantes :
 +<​code>::​1 localhost ip6-localhost ip6-loopback
 +fe00::0 ip6-localnet
 +ff00::0 ip6-mcastprefix
 +ff02::1 ip6-allnodes
 +ff02::2 ip6-allrouters
 +ff02::3 ip6-allhosts</​code>​
 +
 +[[https://​ubuntuforums.org/​showthread.php?​t=1970483|Source]]
  
 +===== Dbmail =====
 +[[dbmail#​mailman|Dbmail et Mailman]]
  
 +===== Lien =====
 +Site officiel [[http://​www.gnu.org/​software/​mailman/​]]
 ---- ----
  
 //​Contributeurs : [[utilisateurs:​Kmeleon]] ([[https://​wiki.ubuntu.com/​Mailman|traduction]]),​ [[utilisateurs:​Ner0lph]] (mise aux normes), [[utilisateurs:​piccolo]] (handlers).//​ //​Contributeurs : [[utilisateurs:​Kmeleon]] ([[https://​wiki.ubuntu.com/​Mailman|traduction]]),​ [[utilisateurs:​Ner0lph]] (mise aux normes), [[utilisateurs:​piccolo]] (handlers).//​
  • mailman.1272387935.txt.gz
  • Dernière modification: Le 18/04/2011, 14:41
  • (modification externe)