Désolé, mais le manuel est encore en version de relecture et n'est pas encore disponible sur le web ! Il le sera d'ici peu sur le site d'Alexis de Lattre. Je me permet de l'envoyer en attachment à la liste, merci de m'envoyer vos corrections (argh, ça va être horrible) en privé ! Je joins aussi un script écrit et dont l'utilisation est décrite dans le manuel.
Quelques liens interéssants : http://xtrmntr.org/ORBman/download/ http://xtrmntr.org/ORBman/ifile.procmail.html http://www.nongnu.org/ifile/ http://www.jbertram.net/projects/ifile/ifile.html Désolé, mais c'est plus facile que de répondre à chaque demande individuellement. Je précise encore une fois que ce manuel n'a PAS été relu ! (écrit hier...) Il sera, après mes examens, largement commenté sur http://napul.be.tf et ajouté en annexe à la formation d'Alexis de Lattre. Bien à vous, Ploum From: Philippe Monroux <[EMAIL PROTECTED]> Date: 090103 > Le jeu 09 jan 2003, à 01 h 17 min 17 s (UTC +0100), > Ploum a écrit : > > > Perso, j'utilise un filtre bayésien qui "apprend" comment je range mes > > mails sans que je lui donne aucune expression. Il les classe dans une > > vingtaine de mailboxes selon des critères que je ne connais pas, juste > > en observant comment je bouge les messages quand il s'est trompé. Au > > bout d'une centaine de mails, ile taux de réussite varie entre 85 et > > 98% selon le style de mail ! (si tu es interressé, contacte moi, j'ai > > écris un tutoriel sur la manière de l'utiliser avec mutt sous debian). > > Comme pas mal de monde est intéressé, pourrait-on avoir le lien sur la > liste ? > > Merci > > -- > Philippe Monroux > Reunion island. > > > -- > To UNSUBSCRIBE, email to [EMAIL PROTECTED] > with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
<appendix id="la-9"><title id="ta-9">Tri intelligent des mails</title> <important><para> Cette formation va te permettre d'apprendre à ton ordinateur de trier automatiquement tes mails. Nous allons pour ce faire utiliser ifile, un filtre "bayesien"[FIXME : à traduire en français] ansi que les scripts de Martin Macok. Il est impératif que mutt, procmail, fetchmail et postfix fonctionnent correctement. Par mesure de précaution, je te conseille de sauvegarder tes fichiers .muttrc, .procmailrc et de rajouter "keep" dans ton fetchmailrc durant la durée des essais. </para></important> <sect1><title>L'idée</title> <para> L'idée est d'apprendre à ton ordinateur tes préférences de classement de courier. Que ce soit pour séparer le spam du reste mais aussi pour trier tes mailing-list, tes mails professionnels ou de loisir, les mails traitant d'un sujet précis, etc. </para> <para> Certes, ce classement ne sera pas parfait de suite. Mais l'astuce consiste à, chaque fois que le programme se trompe, le gronder afin qu'il comprenne ses erreurs. En pratique, une simple touche dans mutt enverra le mail dans le répertoire de ton choix tout en signalant à ifile l'erreur commise. </para> <para>Pour réaliser cet exploit, ifile utilise des critêres sur la redondance des mots particuliers, les en-têtes, etc. Ces critêres ne sont pas intelligibles pour un humain, ce qui fait sa force comparé à des simples filtres que tu aurais écrit dans procmailrc. </para> <important><para>Attention, n'oublie jamais que ifile n'est pas infaillible. Ainsi, si tu rediriges ton spam vers la poubelle, n'oublie jamais qu'un message important à l'allure de spam peut s'y glisser ! Ce problème est d'ailleurs aussi vrai avec spamassassin et d'autres filtres.</para></important> <sect2><title>L'installation</title> <para>On va tout d'abord télécharger la dernière version de ifile (1.2.1 à l'heure où j'écris ces lignes) sur <ulink url="http://savannah.nongnu.org/files/?group=ifile">ce site web</ulink>. L'installation est tout à fait standard, on décompresse, on compile et le root installe : <screen> <prompt>% </prompt><userinput>tar xvzf ifile-1.2.1.tar.gz</userinput> <prompt>% </prompt><userinput>cd ifile-1.2.1/</userinput> <prompt>% </prompt><userinput>./configure</userinput> <prompt>% </prompt><userinput>su</userinput> <prompt># </prompt><userinput>make install</userinput> </screen> </para> <para> Ifile n'est, tout seul, qu'un analyseur de texte. Tu vas donc lui adjoindre quelques scripts, écrits par <ulink url="http://xtrmntr.org/ORBman/download">Martin Mallock</ulink>, qui automatisent certaines fonctions. Choisis le plus récent (ifile.procmail-0.3.tgz à l'heure où j'écris ces lignes). Ici, il n'y a rien à installer. On va simplement mettre les scripts dans le répertoire /usr/local/bin de façon à ce qu'il soient accessibles depuis tout le système. <screen> <prompt>% </prompt><userinput>tar xvzf ifile.procmail-0.3.tgz</userinput> <prompt>% </prompt><userinput>cd ifile.procmail-0.3/bin/</userinput> <prompt>% </prompt><userinput>su</userinput> <prompt># </prompt><userinput>cp * /usr/local/bin/</userinput> </screen> </para> <para>Martin a (très bien) conçu ses scripts afin de trier le spam du non-spam. Si tu ne désires pas plus de ce genre de filtres, alors je te conseille de suivre <ulink url="http://xtrmntr.org/ORBman/ifile.procmail.html>ses instructions</ulink>. Si tu désires faire un tri dans toutes tes mailboxes, lis attentivement ce qui suit. Nous allons créer un fichier .mailboxes dans lequel tu stockeras la liste de tes boîtes de réception ainsi que le raccourci clavier associé à cette boîte. Par défaut, il s'appelle .mailboxes et se trouve dans ton home, mais tu peux personnaliser en étant attentif au reste de cette formation. Tu peux télécharger une exemple ici [Fixme: à faire] où écrire le tien à t'inspirant de cet exemple : <programlisting> inbox:<f1> friends:<f2> boulot:<f3> serieux:<f4> famille:<f8> linux:<f9> blagues:<Esc><f1> ifile-list:<Esc><F8> mailsystem:<Esc><F9> spam:<Esc><F11> </programlisting> Les touches suivent la nomenclature de mutt et doivent être séparée du nom de ta boîte par ":". Par exemple, si un spam est reçu dans la boîte "linux", une pression sur <Esc> et <F11> en même temps enverra automatiquement le message vers la boîte "spam" tout en signalant au passage à ifile "ce message est un spam". Au contraire, un mail important reçu dans "spam" peux être de suite réenvoyé dans "boulot" par la touche <f3>. Au plus vous allez utiliser ce système, au moins ifile se trompera ! </para> <para> Il faut maintenant apprendre à ifile les mailboxes que tu utilises. Pour chaque mailbox que tu as entré dans le fichier .mailboxes, tapes : <screen> <prompt>% </prompt><userinput>ifile.learn.mailbox nom_de_la_boite ~/mail/nom_de_la_boite</userinput> </screen> Tu peux rentrer cette commande quand tu le désire, dès que tu crées une nouvelle boîte. Tant que cette commande n'est pas rentrée pour une boîte précise, les raccourcis vers cette boîte se contenteront d'envoyer le message dans la boîte sans en informer ifile. </para> <para> Afin d'utiliser tout ça dans mutt, tu vas télécharger le petit script que j'ai écrit grâce à l'aide de Jack Bertram [Fixme: ajouter le lien vers son site][Fixme : ajouter le lien vers le script]. Comme les autres copies ce script dans le répertoire /usr/local/bin. </para> <para> Nous allons maintenant modifier ton .muttrc. [Fixme: téléchargement de mon muttrc avec des couleurs partout ;)] Tout d'abord, tu peux supprimer toutes les entrées "mailboxes" de ton fichier .muttrc. Par prudence, mieux vaut simplement les commenter. Si tu utilises le fichier d'Alexis, il te suffit de commenter la ligne qui commence par : <programlisting> mailboxes `zsh -c "sed -n 's#^[[:space:]]*\([[:a ... </programlisting> ensuite, rajoute à la fin de ce fichier : <programlisting> source "mutt_macro < /home/mon_user/.mailboxes|" </programlisting> Si un raccourci clavier est défini pour plusieurs commandes, seule la dernière sera prise en compte. En mettant ton fichier à la fin, tu t'assures de donner la priorité aux macros ifile. Mais, si tu as suivi mon exemple, tu ne sauras plus accéder à l'aide avec F1. Lorsque tu te trouves dans un message et que tu ne te souviens plus de la touche que tu as assignée pour envoyer le message vers "linux", tape "?" et, dans la liste, tu trouveras ta commande sous la description: "Relearn a linux". </para> <para> Pour rendre le système parfaitement opérationnel, il ne manque plus qu'à dire à procmail d'utiliser ifile pour trier les mails à la place de spamassassin. [Fixme: download de mon procmailrc] Par défaut, le fichier est tout simple : <programlisting> # .procmailrc # Fichier de configuration de Procmail, un programme qui trie les mails # Formation Linux Debian par Alexis de Lattre # http://www.via.ecp.fr/~alexis/formation-linux/ # Modifié par Ploum - ceci n'est pas l'original # Plus d'informations dans "man procmailrc" # et des exemples dans "man procmailex" # Pas de blabla... VERBOSE=off # Répertoire contenant les mailboxes MAILDIR=$HOME/mail # Fichier de log de procmail LOGFILE=$HOME/.procmail.log #cette ligne sert à éliminer les doublons. #tu peux la supprimer :0 Wh: msgid.lock | formail -D 8192 msgid.cache #ifile donne à chaque mail un header après analyse :0 fBw | ifile.inject-learn.header #à chaque header correspond une mailbox. :0: * ^X-Ifile-Hint: \/.+ $MATCH </programlisting> Tu remarques que tu peux toujours définir tes anciens filtres procmail ou même spamassassin si tu le désires. Mais ce n'est à priori pas utile. </para> <para> Une fois que tu es sûr que tout marche, tu peux retirer l'option "keep" de ton fetchmailrc. Si tu es un peu curieux, tu peux ouvrir le fichier ~/.idata (mais ne l'édite jamais !). C'est dans ce fichier que ifile stocke ses statistiques sur chaque mot qu'il rencontre. Rassure-toi, le fichier ne grossira pas outre mesure, ifile éliminant les mots trop courrants. </para> [Fixme : relire ce machin]
#!/usr/bin/perl while (<>) { ($mailbox, $key) = split(/:/, $_); chomp $key; $key{$mailbox} = $key; push @mailboxes, $mailbox; } foreach $mbox1 (@mailboxes) { foreach $mbox2 (@mailboxes) { print "folder-hook $mbox1 'macro pager $key{$mbox2} \"|ifile.relearn.message $mbox1 $mbox2\\ns=$mbox2\\n\\n\\t\" \"Relearn a\ $mbox2 \"'\n"; } print "mailboxes ~/mail/$mbox1 \n" }