Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[Mailman] Passerelle mail -> news groupe modéré

11 réponses
Avatar
Gérald Niel
Bonjour,

je sèche sur un problème avec mailman que j'utile avec succès pour
relayer la hiérarchie grisbi vers les listes listes.grisbi.org.
Sauf le le groupe grisbi.info -> info@listes.grisbi.org.

L'adresse de modération du groupe est un alias vers l'adresse de la ML.

La ML est modéré, avec une liste d'adresse approuvée automatiquement.

Dans le sens news -> mail je n'utilise pas le cron de Mailman mais le
pseudo feed news2mail.

Lorsque le message sur la ML est publié, après approbabtion je ne le
vois pas sur le groupe modéré.
Je ne vois pas non plus trace de le connexion de mailman dans les logs
du serveur.

Que je configure en Moderated ou open list, moderated group ça ne
change rien.

Je loupe quelque chose ?

L'idée est que les message qui sont publiés sur cette liste le soient
sur le groupe avec l'entête Approved.

@+
--
On ne le dira jamais assez, l'anarchisme, c'est l'ordre sans le
gouvernement ; c'est la paix sans la violence. C'est le contraire
précisément de tout ce qu'on lui reproche, soit par ignorance, soit
par mauvaise foi. -+- Hem Day -+-

10 réponses

1 2
Avatar
Gérald Niel
Le Vendredi 07 octobre 2016 à 15:42 UTC, Gérald Niel écrivait sur
fr.comp.mail :
je sèche sur un problème avec mailman que j'utile avec succès pour
relayer la hiérarchie grisbi vers les listes listes.grisbi.org.
Sauf le le groupe grisbi.info ->

D'abord on commence par regarder les logs, et on s'apperçoit alors
qu'on a une typo dans le hostname du serveur nntp.
Désolé pour le bruit.
Y'aurait pas autant de spam sur la liste fufa que j'utiliserais bien
ça pour modérer moi… ça marche nickel !
Bon… ceci-dit… pour ce qu'il y a à modérer…
@+
--
On ne le dira jamais assez, l'anarchisme, c'est l'ordre sans le
gouvernement ; c'est la paix sans la violence. C'est le contraire
précisément de tout ce qu'on lui reproche, soit par ignorance, soit
par mauvaise foi. -+- Hem Day -+-
Avatar
Gérald Niel
(suivi sur fr.comp.lang.python)
Bonjour,
Le Vendredi 07 octobre 2016 à 20:19 UTC, Gérald Niel écrivait sur
fr.comp.mail :
Le Vendredi 07 octobre 2016 à 15:42 UTC, Gérald Niel écrivait sur
fr.comp.mail :
je sèche sur un problème avec mailman que j'utile avec succès pour
relayer la hiérarchie grisbi vers les listes listes.grisbi.org.
Sauf le le groupe grisbi.info ->

D'abord on commence par regarder les logs, et on s'apperçoit alors
qu'on a une typo dans le hostname du serveur nntp.
Désolé pour le bruit.

Ce coup là j'ai une vrai question ! ;)
Ce n'est pas un problème en soit c'est juste pour faire les choses
proprement.
Comme je l'expliquais dans le premier article j'utilise Mailman pour
relayer les groupes de la hiérarchie grisbi.* vers des listes de
diffusion. Ça fait presque dix ans que le truc fonctionne sans broncher.
Ayant changé de machine récement, j'ai un peu modifié la config. Je
n'utilise plus gate_news appelé par crontab pour relayer les articles
sur les listes mais le feed news2mail de Inn. Ce qui permet de
conserver le message-id original coté liste de diffusion.
Du coup Mailman ne sait pas qu'il a déjà reçu l'article et le renvoi
donc au serveur qui lui renvoit une erreur car Injection-Info est dans
les en-têtes. Donc tout va bien, pas de doublons, mais du bruit dans
les logs pour rien et une connexion inutile.
Là où j'ai besoin d'aide, connait pas bien Python, c'est pour rajouter
(et écrire surtout) un Handlers pour vérifier la présence de l'entête
avant 'ToUsenet' et ne pas envoyer l'article.
Voir remplacer 'ToUsenet' par une version qui gérerais ça.
Quelqu'un pour me mettre sur la piste ?
(je vais aussi poster sur la ML mailman, mais en anglais c'est moins
facile !)
--
On ne le dira jamais assez, l'anarchisme, c'est l'ordre sans le
gouvernement ; c'est la paix sans la violence. C'est le contraire
précisément de tout ce qu'on lui reproche, soit par ignorance, soit
par mauvaise foi. -+- Hem Day -+-
Avatar
Doug713705
Le 08-10-2016, Gérald Niel nous expliquait dans
fr.comp.lang.python
() :
Là où j'ai besoin d'aide, connait pas bien Python, c'est pour rajouter
(et écrire surtout) un Handlers pour vérifier la présence de l'entête
avant 'ToUsenet' et ne pas envoyer l'article.
Voir remplacer 'ToUsenet' par une version qui gérerais ça.
Quelqu'un pour me mettre sur la piste ?
(je vais aussi poster sur la ML mailman, mais en anglais c'est moins
facile !)

Il faudrait déjà avoir un bout de code d'exemple de handler.
J'ai la flemme de fouiller mailman qui est quand même une belle usine à
gaz.
Après la vérification de la présence de l'entête devrait être triviale
et probablement se faire à base de regexp (module re):
https://docs.python.org/2/library/re.html
Je ne crois pas qu'il y ait de version de mailman en python3 mais je ne
crois pas non plus qu'il y ait de grandes différences sur ce module
entre python2.7 et python3.
--
Je ne connaîtrai rien de tes habitudes
Il se peut même que tu sois décédée
Mais j'demanderai ta main pour la couper
-- H.F. Thiéfaine, L'ascenceur de 22H43
Avatar
Gérald Niel
Le Samedi 08 octobre 2016 à 10:18 UTC, Doug713705 écrivait sur
fr.comp.lang.python :
Il faudrait déjà avoir un bout de code d'exemple de handler.
J'ai la flemme de fouiller mailman qui est quand même une belle usine à
gaz.

En fait ça se passe là
Mailman/Queue/NewsRunner.py
Les Handler c'est visiblement pour ne pas toucher au code. J'ai pas
encore tout compris non plus. C'est expliqué là
<https://wiki.list.org/DOC/4.67%20How%20do%20I%20implement%20a%20custom%20handler%20in%20Mailman%2C%20e.g.%20to%20mung%20headers%20or%20filter%20posts%20based%20on%20regex%20searches%20of%20the>
Et il y a la pipeline 'ToUsenet',
mais tout ça j'ai pas encore tout compris non plus. ;)
Bon… de toutes façons, ça ne sais pas trop gérer les x-post et
follow-up.
Alors je vais peut être revenir à l'utilisation de gate_news dans la
crontab de mailman plutôt que le feed news2mail.
Mais j'aimerais bien arriver à détecter si il y a x-post et FW pour
placer le bon reply-to avant de publier par mail.
Et pour Pyhton 3, c'est là:
https://wiki.list.org/DEV/Mailman%203.0
@+
--
On ne le dira jamais assez, l'anarchisme, c'est l'ordre sans le
gouvernement ; c'est la paix sans la violence. C'est le contraire
précisément de tout ce qu'on lui reproche, soit par ignorance, soit
par mauvaise foi. -+- Hem Day -+-
Avatar
yves
Le Sat, 08 Oct 2016 05:51:20 +0000, Gérald Niel a écrit:
Bonjour,
Là où j'ai besoin d'aide, connait pas bien Python, c'est pour rajouter
(et écrire surtout) un Handlers pour vérifier la présence de l'entête
avant 'ToUsenet' et ne pas envoyer l'article.

Un MOOC en français sur python a démarré il y a 15 jours.
Dure sept semaines en tout.
Le titre "Python : des fondamentaux à l'utilisation du langage"
https://www.fun-mooc.fr/courses/inria/41001S03/session03/info
Si l'écriture du Handler n'est pas trop urgente...
@+
--
Yves
Avatar
Doug713705
Le 08-10-2016, Gérald Niel nous expliquait dans
fr.comp.lang.python
() :
Il faudrait déjà avoir un bout de code d'exemple de handler.
J'ai la flemme de fouiller mailman qui est quand même une belle usine à
gaz.

En fait ça se passe là
Mailman/Queue/NewsRunner.py

Il y a un mailman installé sur l'une des machines que je gère.
J'y jetterai un oeil.
Les Handler c'est visiblement pour ne pas toucher au code. J'ai pas
encore tout compris non plus. C'est expliqué là
<https://wiki.list.org/DOC/4.67%20How%20do%20I%20implement%20a%20custom%20handler%20in%20Mailman%2C%20e.g.%20to%20mung%20headers%20or%20filter%20posts%20based%20on%20regex%20searches%20of%20the>

Je n'ai pas encore lu cette doc mais j'imagine que c'est l'équivalent
d'un "hook" dans INN.
Et il y a la pipeline 'ToUsenet',
mais tout ça j'ai pas encore tout compris non plus. ;)
Bon… de toutes façons, ça ne sais pas trop gérer les x-post et
follow-up.
Alors je vais peut être revenir à l'utilisation de gate_news dans la
crontab de mailman plutôt que le feed news2mail.
Mais j'aimerais bien arriver à détecter si il y a x-post et FW pour
placer le bon reply-to avant de publier par mail.
Et pour Pyhton 3, c'est là:
https://wiki.list.org/DEV/Mailman%203.0

Ce qui compte c'est de savoir si ton mailman est une version qui utilise
python3 ou pas car il pourrait y avoir quelques subtiles différences, y
compris dans le code du handler.
Sinon, de mon coté, j'ai trouvé ça ce matin dans mes logs INN:
controlchan[13899]: skipping newgroup m (pgpverify failed) in
Tu as changé la clef ou elle n'est pas déclarée à l'ISC mais quelle
qu'en soit la raison mon serveur ne dispose pas de la clef publique
correspondante et est incapable de vérifier que tu es l'auteur de ce
newgroup. J'imagine que je ne suis pas le seul NM dans ce cas.
--
C'est juste une fille comme toi et moi,
Enfin je crois plutôt comme toi,
Une fille qui s'amuse dans la vie
Et qui n'a pas honte quand elle rit.
-- H.F. Thiéfaine, Groupie 89 turbo 6
Avatar
Doug713705
Le 08-10-2016, Gérald Niel nous expliquait dans
fr.comp.lang.python
() :
Le Samedi 08 octobre 2016 à 10:18 UTC, Doug713705 écrivait sur
fr.comp.lang.python :
Il faudrait déjà avoir un bout de code d'exemple de handler.
J'ai la flemme de fouiller mailman qui est quand même une belle usine à
gaz.

En fait ça se passe là
Mailman/Queue/NewsRunner.py
Les Handler c'est visiblement pour ne pas toucher au code. J'ai pas
encore tout compris non plus. C'est expliqué là
<https://wiki.list.org/DOC/4.67%20How%20do%20I%20implement%20a%20custom%20handler%20in%20Mailman%2C%20e.g.%20to%20mung%20headers%20or%20filter%20posts%20based%20on%20regex%20searches%20of%20the>

Bon, j'ai jeté un oeil à ce bazar.
Ce n'est pas bien compliqué et un exemple de handler est foruni:
https://wiki.list.org/DOC/4.67%20How%20do%20I%20implement%20a%20custom%20handler%20in%20Mailman%2C%20e.g.%20to%20mung%20headers%20or%20filter%20posts%20based%20on%20regex%20searches%20of%20the?action=AttachFile&do=view&target=MyHandler.py
(Et oui, ça existe encore des URLs aussi pourraves !)
Et il y a la pipeline 'ToUsenet',
mais tout ça j'ai pas encore tout compris non plus. ;)

Bon, là je ne sais pas de quoi tu parles, je n'ai pas de pipeline
ToUsenet chez moi mais si je comprends bien cette doc:
https://wiki.list.org/DOC/4.67%20How%20do%20I%20implement%20a%20custom%20handler%20in%20Mailman%2C%20e.g.%20to%20mung%20headers%20or%20filter%20posts%20based%20on%20regex%20searches%20of%20the?action=show&redirect=DOC%2F4.67+How+do+I+implement+a+custom+handler+in+Mailman%3F
Il faut, une fois le handler écrit, il faut configurer le pipeline
(ToUsenet dans ton cas ?) pour qu'il prenne en charge le handler.
Typiquement le pipeline est simplement la suite de traitement que subi
un mail avant d'être accepeté ou rejeté.
L'acceptation ou le rejet dépendant du retour faits par les handlers
enregistré dans le pipeline.
Simple, efficace, pythonic quoi :)
En gros, il te faut commencer par écrire ton handler en te basant sur
l'exemple et suivre la doc pour enregistrer ce handler dans le pipeline
qui va bien.
Pour le handler, en regardant très vite fait, il faudra simplement que
tu check que le header de ton choix a bien la bonne valeur et si ce
n'est pas le cas tu le balance en DISCARD.
en gros:
<Tous les imports>
DISCARD = re.compile(r'Je ne veux pas voir ça', re.IGNORECASE)
def process(mlist, msg, msgdata):
if DISCARD.search(msg['ton_header']):
# Discard silencieusement les messages
Moderate.do_discard(mlist, msg)
else:
# Accept le message
msgdata['approved'] = 1
msgdata['adminapproved'] = 1
return
Et tu dégages tout le reste qui ne concerne que l'analyse du corps du
message.
Bon, c'est "en gros", ça ne fonctionnera probablement pas tel quel, il
va falloir s'assurer que ton_header est bien visible depuis ton handler
et que "Moderate.do_discard(mlist, msg)" et les "msgdata[..." feront
bien le boulot attendu dans ton cas qui n'est pas un envoi vers la liste
mais, si j'ai bien compris, vers Usenet.
--
Je ne connaîtrai rien de tes habitudes
Il se peut même que tu sois décédée
Mais j'demanderai ta main pour la couper
-- H.F. Thiéfaine, L'ascenceur de 22H43
Avatar
Gérald Niel
Le Samedi 08 octobre 2016 à 18:56 UTC, Doug713705 écrivait sur
fr.comp.lang.python :
controlchan[13899]: skipping newgroup m (pgpverify failed) in
Tu as changé la clef ou elle n'est pas déclarée à l'ISC mais quelle
qu'en soit la raison mon serveur ne dispose pas de la clef publique
correspondante et est incapable de vérifier que tu es l'auteur de ce
newgroup. J'imagine que je ne suis pas le seul NM dans ce cas.

<http://news.grisbi.org/public-key.asc>
Normalement est est dans le fichier de l'ISC.
Pas modifié (juste retiré une des adresses mail).
@+
--
On ne le dira jamais assez, l'anarchisme, c'est l'ordre sans le
gouvernement ; c'est la paix sans la violence. C'est le contraire
précisément de tout ce qu'on lui reproche, soit par ignorance, soit
par mauvaise foi. -+- Hem Day -+-
Avatar
Doug713705
Le 09-10-2016, Gérald Niel nous expliquait dans
fr.comp.lang.python
(<slrnnvkd7g.2os.gerald.niel+) :
controlchan[13899]: skipping newgroup m (pgpverify failed) in

Tu as changé la clef ou elle n'est pas déclarée à l'ISC mais quelle
qu'en soit la raison mon serveur ne dispose pas de la clef publique
correspondante et est incapable de vérifier que tu es l'auteur de ce
newgroup. J'imagine que je ne suis pas le seul NM dans ce cas.

<http://news.grisbi.org/public-key.asc>
Normalement est est dans le fichier de l'ISC.

Oui mais elle n'a pas l'air d'être identique ou pas du même format:
ftp://ftp.isc.org/pub/pgpcontrol/PGPKEYS
Pas modifié (juste retiré une des adresses mail).

Groumpf, j'ai supprimé celle que j'avais dans le porte de clef de
l'utilisateur 'news' et importé ceelel que stockée chez grisbi.org mais
effectivement elles ont la même signature:
pub 2048R/C86CC6E1 2008-11-16
uid Control Grisbi
uid Control Grisbi
En attenant je ne sais même pas quel groupe a été créé sur grisbi.* :-(
Mais je vais attendre de bien comprendre la situation avant de le créer
à la main si besoin.
Je foutoute sur fr.comp.usenet.serveurs, Julien nous éclairera
peut-être encore une fois sur les arcanes mystérieuses d'INN :)
Il me semble qu'il y a eu quelques problèmes liés à gpg/pgp il n'y a pas
si longtemps (qui sont peut-être encore d'actualité) qui empéchaient
certains serveurs (dont celui de free me semble t-il) d'honnorer les
newgroup/rmgroup.
Pour information voici la version de gpgp que j'utilise :
news $ gpg --homedir=/etc/news/pgp --version
gpg (GnuPG) 1.4.12
Home: /etc/news/pgp
Algorithmes pris en charge :
Clef publique : RSA, RSA-E, RSA-S, ELG-E, DSA
Chiffrement : 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
CAMELLIA128, CAMELLIA192, CAMELLIA256
Hachage : MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression : Non compressé, ZIP, ZLIB, BZIP2
--
Dans cet étrange carnaval
On a vendu l'homo sapiens
Pour racheter du Neandertal
-- H.F. Thiéfaine, Aligator 427
Avatar
Gérald Niel
Le Samedi 08 octobre 2016 à 21:16 UTC, Doug713705 écrivait sur
fr.comp.lang.python :
Bon, j'ai jeté un oeil à ce bazar.
Ce n'est pas bien compliqué et un exemple de handler est foruni:
https://wiki.list.org/DOC/4.67%20How%20do%20I%20implement%20a%20custom%20handler%20in%20Mailman%2C%20e.g.%20to%20mung%20headers%20or%20filter%20posts%20based%20on%20regex%20searches%20of%20the?action=AttachFile&do=view&target=MyHandler.py

Pas compliqué… ;) Faut connaitre un peu python quand même.
Bon, là je ne sais pas de quoi tu parles, je n'ai pas de pipeline
ToUsenet chez moi mais si je comprends bien cette doc:

C'est un Handler, en fait.
Il faut, une fois le handler écrit, il faut configurer le pipeline
(ToUsenet dans ton cas ?) pour qu'il prenne en charge le handler.

Voilà c'est ça. J'ai fini par comprendre.
Donc soit c'est ToUsenet qu'il faut que je remplace.
Soit que j'en écrive un à placer juste avant (ou à la récéption) qui
va tester la présence de l'entête 'X-Newsgroups' (rajouté par
news2mail à la place de 'Newsgroups').
Et fixer fromusenet = 1 pour msgdata. C'est ce qui est vérifié dans
ToUsenet, entre autres, et fixé par gate_news (le script appelé par
cron).
Pour le handler, en regardant très vite fait, il faudra simplement que
tu check que le header de ton choix a bien la bonne valeur et si ce
n'est pas le cas tu le balance en DISCARD.

C'est presque ça.
Bon ça va m'occuper un peu. ;)
Ceci dit, gate_news ça ne fonctionne pas si mal.
Et les msid sont conservés à présent (c'était pas le cas avec ma
vieille version qui tournait sur l'ancien serveur).
À part ça… pour modérer un groupe c'est pas mal du tout comme
solution. En tout cas moins artisanal ce qui existe pour tu sais quel
groupe ! ;) Et d'ailleurs en parlant de ça et de clef PGP, celle de
Control ne passe plus avec gpg2. Je crois qu'elle utilise sha-1 (pgp2
donc). Ça va coincer sur pas mal de serveur (dont le mien) si ils
utilisent gpg2.
@+
--
On ne le dira jamais assez, l'anarchisme, c'est l'ordre sans le
gouvernement ; c'est la paix sans la violence. C'est le contraire
précisément de tout ce qu'on lui reproche, soit par ignorance, soit
par mauvaise foi. -+- Hem Day -+-
1 2