BeMail: Créer des filtres
Vous avez toujours souhaité que BeMail vous trie le courrier dès sa
réception ?
Bien que les fonctions intégrées de recherche de BeOS soient très
évoluées et puissent être lancées d'un terminal (voir Requêtes depuis le Terminal), le
problème avec BeMail est que vous ne pouvez pas faire de recherche sur tous les
attributs qu'il faudrait ("CC:").
Le script BASH qui suit recherche les nouveaux courriers dans lesquels se trouve le
mot cherché, ici "beusertalk." Ensuite il déplace les
résultats dans un dossier de destination, ici le dossier "Nouveau"
(/boot/home/mail/BeUserTalk/Nouveau/). Bien que ce soit loin d'être parfait le but
initial visé est plus ou moins atteint.
Le deuxième problème est de rendre le processus automatique, pour que
le filtre agisse dès la réception du courrier. Après un certain
nombre de tentatives infructueuses, j'ai finalement adopté la solution suivante:
J'ai nommé le sript "mailbox" et je l'ai placé dans le dossier
"mail" /boot/home/mail/. (Vous avez probablement déjà là
un lien symbolique nommé "mailbox" qui pointe vers le dossier
"in"). Maintenant quand je fais un double-clic dans la boîte aux lettres
de la Barre d'Applications (DeskBar), il lance le script plutôt que d'ouvrir le
dossier "in".
Pour finir le travail si le script déplace des nouveaux courriers dans le
dossier Nouveau, il l'ouvre, et la dernière ligne du script ouvre le dossier In.
#!/bin/sh
targetfolder=$HOME/mail/BeUserTalk/Nouveau/
searchword=beusertalk
movedmail=no
# cherche les nouveaux courriers
newmail=$(query "((MAIL:status=='*[nN][eE][wW]*')&&(BEOS:TYPE=='text/x-email'))")
# parcourt les fichiers et remplace les espaces
# par des antislash
for i in ${newmail// /\\}; do
# remplace les antislash par des espaces
file="${i//\\/ }"
# si le fichier contient le mot cherché, le déplace vers le dossier cible
if grep -ic "$searchword" "$file"; then
filename="${file##/*/}"
if [ ! -e "$targetfolder$filename" ]; then
mv "$file" "$targetfolder"
movedmail=yes
fi
fi
done
# Ouvre le dossier in
/boot/beos/system/Tracker $HOME/mail/in
# ouvre le dossier $target si du courrier y a été déplacé.
if [ "$movedmail" = yes ]; then
/boot/beos/system/Tracker "$targetfolder"
fi
Petit avertissement : si le script déplace beaucoup de courriers, celà
peut prendre quelques secondes avant que le dossier "in" ne s'ouvre. Vous
pouvez déplacer cette ligne au début du script, si ça ne vous
dérange pas de voir vos courriers disparaître du dossier au fur et
à mesure du filtrage.
Read this Tip in English here
Hier findest Du den Tip in Deutsch
Cette astuce est une contribution de Bill Barthelmy.
Astuce traduite par: Jean de Pompignan, site Period.
Traduction
Française du Serveur BeTips © 2000 BeTrayer et équipe
|