#/bin/bash

# Ce fichier de commandes fournit un exemple de tri automatique et de
# classement des mails que l'on vient de télécharger dans différents
# répertoires en fonction du sujet du message ou de l'expéditeur
# les mails anciens sont également déplacés ou détruits automatiquement
# à partir d'un certain age.
# Ce fichier fictif au niveau des noms employés a été réalisé à partir
# du fichier de tri réel de l'auteur de l'application libremail.

# racine de l'arborescence des mails
RACINE=$HOME/emails

# tri des derniers mails téléchargés
cd $RACINE/entree

# sélection du premier tag [xxxx] du sujet
entetemail | grep ":Subject:.*\]" | sed "s/\].*/\]/" > sujets$$

# tri en fonction de ce tag
mv `fgrep [cominter] sujets$$ | sed "s/:.*//"` ../recents/cominter 2> /dev/null
mv `fgrep [service] sujets$$  | sed "s/:.*//"` ../recents/service  2> /dev/null
mv `fgrep [com] sujets$$      | sed "s/:.*//"` ../recents/com      2> /dev/null
mv `fgrep [dessins] sujets$$  | sed "s/:.*//"` ../recents/dessins  2> /dev/null
mv `fgrep [crieurs] sujets$$  | sed "s/:.*//"` ../recents/cri      2> /dev/null
mv `fgrep [fiesta] sujets$$   | sed "s/:.*//"` ../recents/fiesta   2> /dev/null
mv `egrep "\[(inf-px|antigang|agcc)\]" sujets$$ | sed "s/:.*//"` ../recents/infpx 2> /dev/null

# si non trié, tri en fonction d'un autre tag dans la ligne
entetemail | grep ":Subject:.*\]" > sujets$$

mv `fgrep [service] sujets$$  | sed "s/:.*//"` ../recents/service  2> /dev/null
mv `fgrep [cominter] sujets$$ | sed "s/:.*//"` ../recents/cominter 2> /dev/null
mv `fgrep [com] sujets$$      | sed "s/:.*//"` ../recents/com      2> /dev/null

mv `entetemail | fgrep ":Subject: MEUH" | sed "s/:.*//"` ../recents/vache 2> /dev/null

# tri en fonction de certains expéditeurs
entetemail | grep ":From:.*" > sujets$$

mv `fgrep ".fortrin@" sujets$$ | sed "s/:.*//"` ../recents/fournis 2> /dev/null
mv `fgrep "rabois" sujets$$    | sed "s/:.*//"` ../recents/infpx   2> /dev/null
mv `egrep "(sergeiy@netvision|draban@pob)" sujets$$ | sed "s/:.*//"` ../recents/virus 2> /dev/null
mv `egrep "(Isco99@lol.com|crcc.vol|NAWESSON|boutarin|lucien.bouleau)" sujets$$ | sed "s/:.*//"` ../recents/com 2> /dev/null
mv `egrep "(16M@R.Ems5.net|@prospect.fr)" sujets$$ | sed "s/:.*//"` ../recents/prospect 2> /dev/null
mv `fgrep "pantheresroses@zoo.com" sujets$$ | sed "s/:.*//"` ../recents/pantheres 2> /dev/null

rm sujets$$

# déplacement des mails entrants non triés ni supprimés après un certain temps
mv `find . -mtime +15 | fgrep "/r"` ../recents/divers 2> /dev/null

# tri des mails de la virus corporation arrivés dans [cominter]
cd ../recents/cominter
mv `entetemail | egrep ":Subject:.*\[(virus-internal|virus-info|vir-alert)\]" |
                sed "s/:.*//"` ../virus 2> /dev/null

# déplacement des mails anciens
cd $RACINE

mv `find envoyes -type f -mtime +30`         anciens/envoyes 2> /dev/null
mv `find recents/divers -type f -mtime +30`  anciens/divers  2> /dev/null
mv `find recents/cri -type f -mtime +30`     anciens/cri     2> /dev/null
mv `find recents/fournis -type f -mtime +30` anciens/fournis 2> /dev/null
mv `find recents/dessins -type f -mtime +30` anciens/dessins 2> /dev/null
mv `find recents/service -type f -mtime +30` anciens/service 2> /dev/null
mv `find recents/fiesta -type f -mtime +30`  anciens/fiesta  2> /dev/null
mv `find recents/infpx -type f -mtime +30`   anciens/infpx   2> /dev/null
mv `find recents/com recents/cominter -type f -mtime +30` anciens/com 2> /dev/null
mv `find recents/vache recents/pantheres -type f -mtime +30` anciens/animaux 2> /dev/null

# destruction des mails anciens les moins utiles
rm `find recents/prospect recents/virus -mtime +30` /dev/null

# il ne restera plus qu'à archiver les mails les plus anciens par année
# ce genre d'opération peut être fait manuellement un fois par an.