Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| mailman [Le 24/07/2009, 18:40] – Maj TAG et ajout de lien APT pour paquets à installer Zordhak | mailman [Le 02/03/2023, 00:40] (Version actuelle) – Ajout tag sefran | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag>hardy jaunty | + | {{tag>Xenial |
| ---- | ---- | ||
| Ligne 8: | Ligne 8: | ||
| {{serveur: | {{serveur: | ||
| - | **Mailman** est une application libre pour gérer des listes de diffusion électroniques, | + | **Mailman** est une application libre pour gérer des listes de diffusion électroniques, |
| + | |||
| + | <note warning> | ||
| + | la version inclue par défaut dans le [[pu> | ||
| Ligne 15: | Ligne 18: | ||
| Il est nécessaire, | Il est nécessaire, | ||
| - | |||
| - | Enfin, il est nécessaire que vous ayez une connexion internet, et que vous ayez configuré le fichier « / | ||
| - | |||
| - | |||
| ==== Apache2 ==== | ==== Apache2 ==== | ||
| - | [[Apache2]] est déjà disponible dans les dépôts, donc [[: | + | [[Apache2]] est déjà disponible dans les dépôts, donc [[: |
| ==== Exim4 ==== | ==== Exim4 ==== | ||
| - | [[: | + | <note important> |
| + | [[: | ||
| 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 « / | Vous pouvez changer ceci en éditant la variable ci-dessous dans « / | ||
| - | + | < | |
| - | dc_use_split_config=' | + | dc_use_split_config=' |
| Si vous faites face à un problème durant l' | Si vous faites face à un problème durant l' | ||
| Ligne 39: | Ligne 38: | ||
| ==== Mailman ==== | ==== Mailman ==== | ||
| - | [[: | + | [[: |
| Cette dernière copiera les fichiers d' | Cette dernière copiera les fichiers d' | ||
| 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 « / | Mailman utilise Apache pour créer un rendu de ses scripts CGI. Les scripts de Mailman se trouvent dans le dossier « / | ||
| - | | + | <file xml>ScriptAlias /mailman/ / |
| - | Ceci aura pour effet de poser le répertoire / | + | Ceci aura pour effet de poser le répertoire |
| - | Alias /archives/ / | + | |
| Vous pouvez évidemment fignoler les préférences, | Vous pouvez évidemment fignoler les préférences, | ||
| - | <code>< | + | <file xml>< |
| AllowOverride None | AllowOverride None | ||
| Options ExecCGI | Options ExecCGI | ||
| Ligne 72: | Ligne 71: | ||
| Order allow,deny | Order allow,deny | ||
| Allow from all | Allow from all | ||
| - | </ | + | </ |
| + | Pensez à activer le module cgi de Apache2 par la commande suivante : | ||
| + | sudo a2enmod cgi | ||
| ==== Exim4 ==== | ==== Exim4 ==== | ||
| Ligne 96: | Ligne 97: | ||
| < | < | ||
| - | # start | + | # start |
| - | # Home dir for your Mailman installation -- aka Mailman' | + | # Home dir for your Mailman installation -- aka Mailman' |
| - | # directory. | + | # directory. |
| - | # By default this is set to "/ | + | # By default this is set to "/ |
| - | # On a Red Hat/Fedora system using the RPM use "/ | + | # On a Red Hat/Fedora system using the RPM use "/ |
| - | # On Debian using the deb package use "/ | + | # On Debian using the deb package use "/ |
| - | # This is normally the same as ~mailman | + | # This is normally the same as ~mailman |
| - | | + | MM_HOME=/ |
| - | # | + | # |
| - | # 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' | + | # switch to Mailman' |
| - | | + | MM_UID=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 |
| - | # | + | # |
| - | # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= | + | # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= |
| - | # | + | # |
| - | # 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/ |
| - | # | + | # |
| - | # 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/ |
| - | # end | + | # end |
| </ | </ | ||
| Ligne 133: | Ligne 134: | ||
| < | < | ||
| - | | + | mailman_transport: |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | 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 |
| </ | </ | ||
| Ligne 151: | Ligne 152: | ||
| < | < | ||
| - | | + | mailman_router: |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| </ | </ | ||
| Ligne 168: | Ligne 169: | ||
| L' | L' | ||
| - | Créez ensuite une liste de diffusion, ici « ubuntu | + | [[https:// |
| - | < | + | |
| - | $ sudo newlist | + | Créez ensuite une liste de diffusion, ici « mailman |
| + | < | ||
| Entrez l' | Entrez l' | ||
| - | Mot de passe initial de la liste ubuntu | + | Mot de passe initial de la liste mailman |
| Pour achever la création de votre liste de diffusion, vous devez | Pour achever la création de votre liste de diffusion, vous devez | ||
| modifier votre fichier / | modifier votre fichier / | ||
| lignes suivantes et peut être exécuter le programme « newaliases »: | lignes suivantes et peut être exécuter le programme « newaliases »: | ||
| - | liste de diffusion ## ubuntu | + | liste de diffusion ## mailman |
| - | ubuntu: " | + | mailman: " |
| - | ubuntu-admin: | + | mailman-admin: |
| - | ubuntu-bounces: | + | mailman-bounces: |
| - | ubuntu-confirm: | + | mailman-confirm: |
| - | ubuntu-join: | + | mailman-join: |
| - | ubuntu-leave: | + | mailman-leave: |
| - | ubuntu-owner: | + | mailman-owner: |
| - | ubuntu-request: | + | mailman-request: |
| - | ubuntu-subscribe: | + | mailman-subscribe: |
| - | ubuntu-unsubscribe: | + | mailman-unsubscribe: |
| - | + | ||
| - | Tapez sur Entrée pour aviser le propriétaire de ubuntu... | + | |
| + | Tapez sur Entrée pour aviser le propriétaire de mailman... | ||
| </ | </ | ||
| - | 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 « / | + | 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 « / |
| Enfin, démarrez Mailman : | Enfin, démarrez Mailman : | ||
| Ligne 200: | Ligne 201: | ||
| sudo / | sudo / | ||
| + | Pour avoir le site web en français, modifier la ligne suivante du fichier: | ||
| + | <file - / | ||
| + | DEFAULT_SERVER_LANGUAGE = ' | ||
| + | </ | ||
| ===== Administration ===== | ===== Administration ===== | ||
| {{ serveur: | {{ serveur: | ||
| - | Nous allons maintenant voir comment administrer Mailman. Cette étape considère que l' | + | Nous allons maintenant voir comment administrer Mailman. Cette étape considère que l' |
| Mailman fournit une administration web facile d' | Mailman fournit une administration web facile d' | ||
| Ligne 212: | Ligne 217: | ||
| Vous pouvez créer une nouvelle liste de diffusion en utilisant l' | Vous pouvez créer une nouvelle liste de diffusion en utilisant l' | ||
| + | ==== 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 / | ||
| ===== 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:// | http:// | ||
| La liste de diffusion par défaut, « mailman », devrait apparaître à l' | La liste de diffusion par défaut, « mailman », devrait apparaître à l' | ||
| - | ===== FAQ ===== | + | ===== Handlers |
| + | ==== Principe ==== | ||
| + | Il peut être utile de modifier les mails que l’on envoie d’une manière n’étant pas prévue par Mailman. Dans cette optique on peut vouloir par exemple changer les en-têtes d’un mail, le corps des messages ou tout simplement effectuer une modération selon certains critères préprogrammés. | ||
| + | Le traitement des mails depuis leur réception jusqu’à leur renvoi à la liste est décomposé par Mailman en plusieurs phases, appelées « Handlers », dont l’ordre et l’usage est défini dans le fichier « Mailman/ | ||
| + | |||
| + | < | ||
| + | GLOBAL_PIPELINE = [ | ||
| + | ' | ||
| + | ' | ||
| + | … | ||
| + | ' | ||
| + | ' | ||
| + | ] | ||
| + | </ | ||
| + | |||
| + | Tous les handlers de cette liste sont des fichiers contenant du code en Python et sont situés dans le répertoire « Mailman/ | ||
| + | |||
| + | ==== Handlers personnalisés==== | ||
| + | === Avantages=== | ||
| + | Les handlers personnalisés ont plusieurs avantages : | ||
| + | * Ils permettent de ne pas modifier le code original de l’application. Cela évite les dommages collatéraux non prévus et facilite la maintenance ultérieure par une tierce personne. | ||
| + | * Ils ne seront pas affectés par une mise à jour de l’application. | ||
| + | * Ils permettent de n’être appliqués qu’à une collection spécifique de listes. Le code du handler n’a donc pas à effectuer de filtre pour savoir s’il doit, ou non, s’appliquer en fonction de la liste qui l’appelle. | ||
| + | * Tous les changements sont regroupés ce qui permet une désactivation ou suppression aisée du comportement modifié. | ||
| + | |||
| + | === Code=== | ||
| + | Un handler est codé en python. Il doit nécessairement définir la fonction « process(mlist, | ||
| + | * mlist est l’instance de la liste | ||
| + | * msg est l’instance du mail | ||
| + | * msgdata contient les méta-données du mail | ||
| + | Toutes les méthodes relatives à la liste ou au message peuvent donc être appelées à l’intérieur de cette fonction. | ||
| + | Toutes les modifications qui sont effectuées dans cette fonction affecteront le message et donc le traitement qui sera effectué par les handlers suivants. Il convient donc de placer le handler personnalisé au bon endroit dans le pipeline de traitement du mail. | ||
| + | |||
| + | === Insertion du handler=== | ||
| + | Considérons que notre handler personnalisé a bien été créé et est sauvegardé dans le répertoire « Mailman/ | ||
| + | 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 ». | ||
| + | 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 (/ | ||
| + | < | ||
| + | GLOBAL_PIPELINE.insert(GLOBAL_PIPELINE.index(' | ||
| + | </ | ||
| + | * Le remplacement global, qui va remplacer un des handlers par défaut par notre nouveau handler. Comme au dessus, nous allons ajouter dans le fichier de configuration de Mailman la ligne suivante : | ||
| + | < | ||
| + | GLOBAL_PIPELINE[GLOBAL_PIPELINE.index(' | ||
| + | </ | ||
| + | * L’insertion/ | ||
| + | < | ||
| + | mlist.pipeline = [ | ||
| + | ' | ||
| + | ' | ||
| + | … | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | … | ||
| + | ' | ||
| + | ' | ||
| + | ] | ||
| + | </ | ||
| + | Soit le pipeline global au complet ainsi que notre handler personnalisé inséré au bon endroit. Bien sûr si vous souhaitez remplacer « Moderate » par « MonHandler », vous supprimez « Moderate » du pipeline. | ||
| + | |||
| + | Ensuite pour l’appliquer à la liste « MaListe » il ne reste qu’à exécuter la commande : | ||
| + | < | ||
| + | bin/ | ||
| + | </ | ||
| + | |||
| + | |||
| + | Enfin redémarrez Mailman : | ||
| + | < | ||
| + | sudo / | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ===== FAQ ===== | ||
| + | ====Envoi de mails avec Exim==== | ||
| Si vous n' | Si vous n' | ||
| - | ==== 554 SMTP service not available | + | === 554 SMTP service not available === |
| Il suffit d' | Il suffit d' | ||
| exim : ALL | exim : ALL | ||
| - | ==== 553 sorry, your envelope sender domain must exist (# | + | === 553 sorry, your envelope sender domain must exist (#5.7.1) === |
| Modifiez le paramètre **primary_hostname** dans le fichier de configuration d' | Modifiez le paramètre **primary_hostname** dans le fichier de configuration d' | ||
| primary_hostname = mon_domaine.fr | primary_hostname = mon_domaine.fr | ||
| + | ==== Je ne reçois pas mes propres mails depuis mon entreprise ==== | ||
| + | Avec mon adresse professionnelle, | ||
| + | < | ||
| + | """ | ||
| + | """ | ||
| + | |||
| + | import re | ||
| + | |||
| + | def process(mlist, | ||
| + | from_val = msg.get(' | ||
| + | if from_val: | ||
| + | from_val = re.sub(' | ||
| + | del msg[' | ||
| + | msg[' | ||
| + | </ | ||
| + | |||
| + | Pour corriger le problème sur toutes les listes et éviter que cela arrive sur les listes futures, nous allons insérer ce handler de manière globale dans le pipeline : | ||
| + | < | ||
| + | GLOBAL_PIPELINE.insert(GLOBAL_PIPELINE.index(' | ||
| + | </ | ||
| + | |||
| + | 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 ==== | ||
| + | |||
| + | < | ||
| + | for list in < | ||
| + | echo $list | ||
| + | rsync -az --progress -e ssh < | ||
| + | rsync -az --progress -e ssh < | ||
| + | rsync -az --progress -e ssh < | ||
| + | rsync -az --progress -e ssh < | ||
| + | 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 | ||
| + | / | ||
| + | # Démarrage du service | ||
| + | / | ||
| + | # Paramétrer le serveur web et le MTA (comme une nouvelle installation) | ||
| + | # Vérifier le bon fonctionnement | ||
| + | </ | ||
| + | |||
| + | Ressources : | ||
| + | * [[http:// | ||
| + | * [[https:// | ||
| + | |||
| + | ==== Mailman ne fonctionne qu'en local après migration vers Precise 12.04 (Relay access denied) ==== | ||
| + | |||
| + | Si l' | ||
| + | |||
| + | Un exemple de log Postfix : | ||
| + | < | ||
| + | May 1 10:46:08 server-mail postfix/ | ||
| + | May 1 10:46:08 server-mail postfix/ | ||
| + | May 1 10:46:08 server-mail postfix/ | ||
| + | May 1 10:46:08 server-mail postfix/ | ||
| + | May 1 10:46:08 server-mail postfix/ | ||
| + | May 1 10:46:08 server-mail postfix/ | ||
| + | May 1 10:46:09 server-mail postfix/ | ||
| + | May 1 10:46:09 server-mail postfix/ | ||
| + | May 1 10:46:11 server-mail postfix/ | ||
| + | May 1 10:46:11 server-mail postfix/ | ||
| + | May 1 10:46:11 server-mail postfix/ | ||
| + | |||
| + | Ubuntu lors de la migration vers Precise modifie le fichier ''/ | ||
| + | < | ||
| + | fe00::0 ip6-localnet | ||
| + | ff00::0 ip6-mcastprefix | ||
| + | ff02::1 ip6-allnodes | ||
| + | ff02::2 ip6-allrouters | ||
| + | ff02::3 ip6-allhosts</ | ||
| + | |||
| + | [[https:// | ||
| + | ===== Dbmail ===== | ||
| + | [[dbmail# | ||
| + | ===== Lien ===== | ||
| + | Site officiel [[http:// | ||
| ---- | ---- | ||
| - | // | + | // |
