 jouons avec bogofilter bogofilter est un logiciel libre sous gnu gpl de détection de pourriel il reconnait un pourriel grâce à un modèle statistique reposant sur les mots utilisés il fonctionne par un mode d apprentissage l objet de ce texte n est pas de mettre en place bogofilter mais plutôt de tenter de comprendre comment il fonctionne je considére que les bases de l utilisation d interprétateur de commande sont connus étant le prompt premier pas avec bogofilter créons un fichier nommé fauxmail avec un texte quelconque echo test fauxmail ensuite nous allons demander à bogofilter de considérer le contenu de ce fichier ici le mot test comme n étant pas un pourriel option n bogofilter n v fauxmail created directory home gnunux bogofilter 1 word 1 message comme écrit le répertoire caché bogofilter est créé dans son répertoire personnel a l intérieur il se trouve le fichier wordlistdb ce fichier contient la liste des mots connus dans un pourriel spam en anglais un courriel ham en anglais et la date de la dernière apparition ce fichier n est pas lisible avec un éditeur de texte pour en connaître le contenu il suffit de faire bogoutil d bogofilter wordlistdb encoding 2 0 20060815 msgcount 1 0 20060815 wordlistversion 20040500 0 20060815 head test 0 1 20060815 déclarons maintenant un pourriel option s echo ceci n est qu un test fauxmail bogofilter s v fauxmail 4 word 1 message bogoutil d bogofilter wordlistdb encoding 2 0 20060815 msgcount 1 1 20060815 wordlistversion 20040500 0 20060815 head ceci 1 0 20060815 head n est 1 0 20060815 head qu un 1 0 20060815 head test 1 1 20060815 nous voyons ici que ceci a été trouvé une fois dans un pourriel et test a été trouvé dans un pourriel et dans un courriel détection de pourriel testons la capacité de bogofilter de détecter un pourriel bogofilter v fauxmail xbogosity spam tests bogofilter spamicity 0999964 version 103 pour avoir plus de détail bogofilter vvv fauxmail xbogosity spam tests bogofilter spamicity 0999964 version 103 n pgood pbad fw u head test 2 1000000 1000000 0500176 head ceci 1 0000000 1000000 0991605 head n est 1 0000000 1000000 0991605 head qu un 1 0000000 1000000 0991605 npqssxmd 3 0000070 0999997 0999964 0017800 0520000 0375000 seules les lignes finissant par sont pris en compte testons maintenant sur des mots inconnus echo et voila le résultat fauxmail bogofilter vvv fauxmail xbogosity unsure tests bogofilter spamicity 0520000 version 103 n pgood pbad fw u head rã sultat 0 0000000 0000000 0520000 head voila 0 0000000 0000000 0520000 npqssxmd 0 0000000 0000000 0520000 0017800 0520000 0375000 ajoutons ces mots en tant que courriel bogofilter n v fauxmail 2 words 1 message testons maintenant un phrase avec des mots de pourriels et des mots de courriels echo voila ce n est qu un résultat fauxmail bogofilter vvv fauxmail xbogosity unsure tests bogofilter spamicity 0500865 version 103 n pgood pbad fw u head rã sultat 1 0500000 0000000 0009094 head voila 1 0500000 0000000 0009094 head n est 1 0000000 1000000 0991605 head qu un 1 0000000 1000000 0991605 npqssxmd 4 0014041 0015772 0500865 0017800 0520000 0375000 nous voyons que bogofilter n est pas capable de déterminer si le fichier est un pourriel unsure ajoutons encore des mots en tant que pourriel echo il me faut plus de mot fauxmail bogofilter s v fauxmail 4 words 1 message ajoutons pour le test à la phrase précédente echo il me faut plus de mot pour le test fauxmail bogofilter vvv fauxmail xbogosity spam tests bogofilter spamicity 0999964 version 103 n pgood pbad fw u head test 2 0500000 0500000 0500176 head pour 0 0000000 0000000 0520000 head faut 1 0000000 0500000 0991605 head mot 1 0000000 0500000 0991605 head plus 1 0000000 0500000 0991605 npqssxmd 3 0000070 0999997 0999964 0017800 0520000 0375000 le texte est bien vu comme pourriel spam  test avec un courriel voici un courriel minimaliste que nous allons enregistré dans le fichier mail date tue 15 aug 2006 151452 0200 cest subject test from gnunux gnunuxnet to pourriel gnunuxnet contenttype text plain charset iso88591 contenttransferencoding 8bit il me faut plus de mot pour le test demandons à bogofilter si le courriel est un pourriel ou non bogofilter vvv mail xbogosity unsure tests bogofilter spamicity 0520000 version 103 n pgood pbad fw u faut 0 0000000 0000000 0520000 from gnunux 0 0000000 0000000 0520000 from gnunuxnet 0 0000000 0000000 0520000 head contenttransferencoding 0 0000000 0000000 0520000 head contenttype 0 0000000 0000000 0520000 head date 0 0000000 0000000 0520000 head bit 0 0000000 0000000 0520000 head charset 0 0000000 0000000 0520000 head iso88591 0 0000000 0000000 0520000 head plain 0 0000000 0000000 0520000 head text 0 0000000 0000000 0520000 mot 0 0000000 0000000 0520000 plus 0 0000000 0000000 0520000 pour 0 0000000 0000000 0520000 subj test 0 0000000 0000000 0520000 test 0 0000000 0000000 0520000 to gnunuxnet 0 0000000 0000000 0520000 to pourriel 0 0000000 0000000 0520000 npqssxmd 0 0000000 0000000 0520000 0017800 0520000 0375000 alors que la phrase seul est bien détecté comme pourriel ici bogofilter n a pas su le détecter comme tel en effet il cherche head test et non test puisque nous n avions pas de fichier ayant la forme d un courriel il a considéré que la liste de mot faisait parti de l entete pour corriger ce problème nous allons extraire la liste des mots dans le fichier listedemot bogoutil d bogofilter wordlistdb listedemot nous allons ensuite l éditer pour supprimer tout les head et reinitialisons la liste rm bogofilter wordlistdb bogoutil l bogofilter wordlistdb listedemot ainsi le courriel sera considéré comme pourriel bogofilter vvv mail xbogosity spam tests bogofilter spamicity 0999964 version 103 n pgood pbad fw u test 2 0500000 0500000 0500176 from gnunux 0 0000000 0000000 0520000 from gnunuxnet 0 0000000 0000000 0520000 head contenttransferencoding 0 0000000 0000000 0520000 head contenttype 0 0000000 0000000 0520000 head date 0 0000000 0000000 0520000 head bit 0 0000000 0000000 0520000 head charset 0 0000000 0000000 0520000 head iso88591 0 0000000 0000000 0520000 head plain 0 0000000 0000000 0520000 head text 0 0000000 0000000 0520000 pour 0 0000000 0000000 0520000 subj test 0 0000000 0000000 0520000 to gnunuxnet 0 0000000 0000000 0520000 to pourriel 0 0000000 0000000 0520000 faut 1 0000000 0500000 0991605 mot 1 0000000 0500000 0991605 plus 1 0000000 0500000 0991605 npqssxmd 3 0000070 0999997 0999964 0017800 0520000 0375000 nous voyons ici que bogofilter fait la différence entre l entête le sujet le destinataire l emeteur le corps dans le calcul de la probabilité  jouons avec bogofilter a priori il y a une erreure ici bogoutil l bogofilter wordlistdb listedemot je pense qu il faut utiliser l option d et ici bogoutil d bogofilter wordlistdb listedemot je pense qu il faut utiliser l option l autrement il manque quelques signes dollars sur certaines lignes de commandes et sur la dernière ligne faire la différence fait la différence merci pour ton article  jouons avec bogofilter effectivement il y avait une inversion dans les options tout doit etre corrigé maintenant  courriels  