[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Migration PMail vers un _bon_ mailer sous linux...



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 <ph.monroux@wanadoo.fr> 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 debian-user-french-request@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
<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"
}



Reply to: