Cette version propose une nouvelle fonctionnalité d'entraînement de SpamAssassin par l'utilisation de répertoires IMAP dédiés à l'apprentissage des hams ou des spams. Le script a été mis à jour de façon à assurer la compatibilité avec python de la version 2.4 à 2.6.
NdM: La licence sous laquelle est distribuée le script est un peu particulière puisqu'il est indiqué que "You may use isbg under any OSI approved open source license such as those listed at http://opensource.org/licenses/alphabetical.". isbg est un script python, destiné à être utilisé en cronjob, qui permet de soumettre les messages d'une boite IMAP à une instance de SpamAssassin ne résidant pas forcément sur le serveur IMAP, résolvant l'urticant problème de disposer d'un filtre à spams efficace tout en conservant ses messages chez un fournisseur « populaire » comme laposte.net ou free.fr.
Avec la fonctionnalité d'entraînement de SpamAssassin, vous pouvez entraîner ce dernier lorsqu'il rate un spam ou remonte un faux positif en déplaçant le message concerné vers un répertoire spécifique, configurable à votre discrétion.
Le script a été écrit initialement par Roger Binns, qui ne l'utilisait plus depuis quelques années. Il l'a donné à la communauté au début du mois de novembre 2009.
Aller plus loin
- Projet isbg (30 clics)
- SpamAssassin (7 clics)
- Dépôt isbg (15 clics)
- Liste de diffusion d'isbg (2 clics)
# Imap pour apprendre uniquement ?
Posté par zyphos . Évalué à 6.
Et garder le scan sur SMTP ?
J'ai peur que sur de grosses boites (3Go), isbg ne prenne trop de ressources à tout scanner à la recherche de spam.
Auto réponse après analyse du code:
- Oui on peut-l'utiliser pour apprendre uniquement
Comme il n'y a plus d'objectifs fixés pour le futur j'en donne de nouveaux. :p
Le programme semble pas mal du tout, ce qui serait bien, c'est d'en faire une API ou un module. Bref utiliser des classes, pour facilement l'intégrer dans une application plus grosse. ;) Pour l'instant tout le code est linéaire, sauf l'implantation de l'IMAPS)
Exemple d'utilisation en API:
from isbg import isbg
imap_learn = isbg()
imap_learn.learn(server_url, user, pwd, mailbox)
Autre suggestion, à la création de la première version à mon avis cela n'existait pas, mais pourquoi ne pas réutiliser une implantation IMAPS déjà existante ? Par exemple:
http://twistedmatrix.com/trac/wiki/TwistedMail comme cela plus besoins de maintenir la partie IMAPS bas niveau.
Encore un petite suggestion, pour la gestion des paramètres d'entrées, je suggère d'utiliser OptParse, http://docs.python.org/library/optparse.html
Qui est assez bullet proof et extensible.
Et encore une, permettre de scanner pour apprentissage toutes les boîtes principales accessibles par un utilisateur. Exemple: Un utilisateur postmaster qui à accès à toutes les boîtes emails, et qui les scannerait toutes d'un coup.
Encore bravo pour le projet, je vais pouvoir jeter le script Perl que j'utilisais pour l'apprentissage du Spam, Hams via Cyrus.
[^] # Re: Imap pour apprendre uniquement ?
Posté par Thomas Lecavelier . Évalué à 2.
isbg tient à jour un index des UID des messages qu'il a déjà parcouru: le premier run prend du temps (surtout s'il y a 3Go de mails dans inbox…) mais ensuite, sur la base d'un run toutes les 15min par cronjob, c'est très rapide.
Hum… ne jamais répondre en lisant un commentaire, la réponse devient inutile :)
Bonne idée pour l'utilisation d'IMAPS existante, si ce n'est que je ne suis pas un fan inconditionnel des dépendances.
Pour la modularisation, ce serait vraiment chouette, mais je ne suis absolument pas « pythoneux » mais rubyste… Du coup je serais plus à l'aise en le réécrivant (je me suis aperçu que réécrire isbg en ruby m'aurait pris moins de temps que de le mettre à jour).
Des objections à une réécriture?
Sinon… je vois l'intérêt de l'apprentissage global, mais à ce niveau là, c'est plutôt à un plugin sur serveur IMAP de faire cela.
Merci pour le feedback.
[^] # Re: Imap pour apprendre uniquement ?
Posté par zyphos . Évalué à 1.
Pour l'instant, je suis dans ma période Python. Après le Basic, le Pascal, l'ASM, C/C++, PHP, Javascript, Perl, Java, j'en oublie sûrement...
Après un aperçu rapide du Ruby, Il a quelques avantages sur Python:
- le 'super' d'une classe n'a pas besoins de rappeler tous les arguments.
- tout est object, même les nombres. a.abs (en python: abs(a) est moins trivial je trouve)
Désavantage par rapport à Python:
- Il faut mettre un 'end' pour la fin de chaque bloc. (Pourquoi allonger le code pour rien ?)
- Le 'tout est vrai' dans l'évaluation de valeur est ennuyant. En python un 'if a:' est très pratique à l'usage. Exemple en Ruby 0 => true , [] => true
- le nommage des constructeur de classe, 'initialize'. Cela fait un mot réservé en plus (encore une source de problème en plus lors du débogage)... En Python c'est '__init__'
Bref les désavantages, ne me motive pas pour l'instant à migrer vers ce langage, ce malgré toutes les louanges de RoR que l'on retrouve partout.
[^] # Re: Imap pour apprendre uniquement ?
Posté par Antoine (site web personnel) . Évalué à 1.
>>> (-1).__abs__()
1
:-)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.