Bannière de NPC
  Trucs et Astuces pour BeOS -       Catégorie: Applications
 

Accueil

Alertes
Applications
Audio et Vidéo
Divers
Interface
Matériel
Réseaux
Terminal
Tracker

Infos Serveur

 

 

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
 

 

BeArchives.com Banner Exchange Network