Introduction

Ce que l'on veut: du "true mailman virtual hosting", c-a-d, que foo@bar.com soit une liste differente de foo@quux.com.

Principe de base

  1. changer le nom de la liste pour foo_bar.com (ou similaire) tout en conservant l'adresse de mailing etant foo@bar.com

  2. faire que le "nom" de la liste inclu le domaine (ie la facon "propre")

La facon #2 est compliquée car elle demande beaucoup plus de connaissances des mécanismes internes de mailman.

Ce qui est réaliste de faire est #1: on ne change que le nom de la liste et la façon dont l'adresse est générée.

Il est certain que les alias autour de mailman doivent suivre sinon tout ceci est inutile. Mais pour l'instant on focuse sur mailman.

Dépendances

Vous devez avoir Mailman, AlternC et alternc-mailman d'installé.

Pour appliquer une patch, vous avez besoin du package patch au minimum ou sinon patchutils qui est plus complet.

aptitude install patchutils

Application des patchs

Téléchargez les patches:

Télécharger la patch pour le mailman de jessie:

et la mettre ici: /usr/share/alternc-mailman/patches/patches/

# cd /
# patch -p1 < /usr/share/alternc-mailman/patches/patches/mailman-true-virtual-2.1.18.patch  
patching file usr/lib/mailman/bin/newlist
patching file usr/lib/mailman/bin/rmlist
patching file usr/lib/mailman/Mailman/Gui/General.py
patching file usr/lib/mailman/Mailman/Handlers/CookHeaders.py
patching file usr/lib/mailman/Mailman/MailList.py
patching file etc/mailman/postfix-to-mailman.py

touch /usr/share/alternc-mailman/patches/mailman-true-virtual.applied

If using postfix-to-mailman.py

mlist = mlist + "-" + domain

just before "from Mailman.Utils import list_exists", and the script will recognize the new format.

(from http://marcob.noblogs.org/post/2008/12/16/real-virtual-hosts-mailman-postfix)

Si la patch est appliquée après l'install de alternc

Les listes vont avoir le host_name (avec with_list, vous allez voir que m.host_name == listes.xyz.net en fonction de ce que c'était avant). Vous pouvez surment juste corriger le host name si le host name est changé ? J'imagine !

>>> m.Lock()
>>> m.host_name='communautique.qc.ca'
>>> m.Save()                           # c'est un alias de m.YOLOCommit()
>>> m.Unlock()

Anciennement nécessaire: patch sur alternc-mailman

Dans le temps, on devait appliquer une patch sur alternc. Maintenant Alternc-mailman fait la détection de l'utilisation de la virtual mailman grâce au fichier qu'on "touch".

voir : https://github.com/AlternC/alternc-mailman/blob/master/bureau/class/m_mailman.php#L164

cd /usr/lib/alternc/
patch -p0 < alternc-mailman-vhost-fix.patch

Cette patch est dans l'ancien svn de koumbit...

Anciennement nécessaire: Problème avec Mailman 2.1.11 (Debian lenny)

Vous devez modifier le fichier modèle de configuration de mailman dans AlternC ou modifier directement le /etc/mailman/mm_cfg.py

Le problème est que par défaut Mailman 2.1.11 ajoute une validation au nom de la liste lors de la création. @ est nécessaire pour la patch du virtual mailman et est retiré par le nouveau mailman. http://sourceforge.net/project/shownotes.php?release_id=605074

Pour contourner le problème on doit être ajouter la ligne suivante:

ACCEPTABLE_LISTNAME_CHARACTERS ='[-+_.= a-z0-9@]'

Dev notes

Implantation notes

ToDo

Résultat

saul:/usr/lib/mailman/bin# /var/lib/mailman/bin/newlist test@koumbit.net anarcat@anarcat.ath.cx test

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:

## test-koumbit.net mailing list
test-koumbit.net:              "|/var/lib/mailman/mail/mailman post test-koumbit.net"
test-koumbit.net-admin:        "|/var/lib/mailman/mail/mailman admin test-koumbit.net"
test-koumbit.net-bounces:      "|/var/lib/mailman/mail/mailman bounces test-koumbit.net"
test-koumbit.net-confirm:      "|/var/lib/mailman/mail/mailman confirm test-koumbit.net"
test-koumbit.net-join:         "|/var/lib/mailman/mail/mailman join test-koumbit.net"
test-koumbit.net-leave:        "|/var/lib/mailman/mail/mailman leave test-koumbit.net"
test-koumbit.net-owner:        "|/var/lib/mailman/mail/mailman owner test-koumbit.net"
test-koumbit.net-request:      "|/var/lib/mailman/mail/mailman request test-koumbit.net"
test-koumbit.net-subscribe:    "|/var/lib/mailman/mail/mailman subscribe test-koumbit.net"
test-koumbit.net-unsubscribe:  "|/var/lib/mailman/mail/mailman unsubscribe test-koumbit.net"

Apr 22 00:42:03 saul postfix/qmgr[14669]: E3A54105832E: from=<test-bounces@koumbit.net>, size=2437, nrcpt=1 (queue active)

Mais surtout:

saul:/usr/lib/mailman/bin# /var/lib/mailman/bin/newlist test@insomniaque.org anarcat@anarcat.ath.cx test

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:

## test-insomniaque.org mailing list
test-insomniaque.org:              "|/var/lib/mailman/mail/mailman post test-insomniaque.org"
test-insomniaque.org-admin:        "|/var/lib/mailman/mail/mailman admin test-insomniaque.org"
test-insomniaque.org-bounces:      "|/var/lib/mailman/mail/mailman bounces test-insomniaque.org"
test-insomniaque.org-confirm:      "|/var/lib/mailman/mail/mailman confirm test-insomniaque.org"
test-insomniaque.org-join:         "|/var/lib/mailman/mail/mailman join test-insomniaque.org"
test-insomniaque.org-leave:        "|/var/lib/mailman/mail/mailman leave test-insomniaque.org"
test-insomniaque.org-owner:        "|/var/lib/mailman/mail/mailman owner test-insomniaque.org"
test-insomniaque.org-request:      "|/var/lib/mailman/mail/mailman request test-insomniaque.org"
test-insomniaque.org-subscribe:    "|/var/lib/mailman/mail/mailman subscribe test-insomniaque.org"
test-insomniaque.org-unsubscribe:  "|/var/lib/mailman/mail/mailman unsubscribe test-insomniaque.org"

Hit enter to notify test@insomniaque.org owner...

saul:/usr/lib/mailman/bin# Apr 22 00:38:26 saul postfix/smtpd[19424]: connect from saul[127.0.0.1]
Apr 22 00:38:26 saul postfix/smtpd[19424]: 6F201105832E: client=saul[127.0.0.1]
Apr 22 00:38:26 saul postfix/cleanup[18368]: 6F201105832E: message-id=<mailman.0.1082608705.19423.test-insomniaque.org@insomniaque.org>
Apr 22 00:38:26 saul postfix/qmgr[14669]: 6F201105832E: from=<test-bounces@insomniaque.org>, size=2523, nrcpt=1 (queue active)

J'ai aussi le même résultat quand je créé la liste de AlternC, maintenant.

Suggestion

Présentement, alternc-mailman est correctement configuré. C'est seulement notre configuration locale à nous qui était bidon. Ce qu'il faudrait, par contre, dans alternc-mailman, ça serait un moyen d'appliquer la patch de vhosting à mailman automatiquement... C'est dans le bugtracker d'alternc, je crois. -- TheAnarcat 2005-02-26 19:13:19


CategoryConfiguration

VirtualMailman (last edited 2017-06-28 08:22:47 by SeBas)