Dans le cadre de mon apprentissage de
mutt, la première étape est de ne plus être dépendant des filtres de messages que fournit
Thunderbird, que j’utilisais jusqu’ici pour organiser mes boîtes mail. J’ai pour ça commencé à bricoler un simple script Shell qui range mes mails entrants en fonction de différents critères.
Pour l’instant il ne permet de trier qu’en fonction de l’adresse de destination des e-mails, mais je compte l’étendre au fur et à mesure de mes besoins.
---
#!/bin/sh
set -o errexit
MAILDIR_PATH="$HOME/Maildir"
get_subject() {
local mail_file
mail_file="$1"
sed --silent 's/^Subject: \(.*\)$/\1/p' "$mail_file"
return 0
}
list_by_recipient() {
local mail_recipient pattern
mail_recipient="$1"
mails_directory="$2"
pattern="^To: $mail_recipient"
grep \
--files-with-matches \
--regexp="$pattern" \
"$mails_directory"/* || true
return 0
}
move_to_directory() {
local destination_directory
destination_directory="$1"
shift 1
mv --target-directory="$destination_directory" "$@"
return 0
}
# Identify e-mails by subject
TIGER_REPORTS=''
for mail in $(list_by_recipient 'root@example.com' "$MAILDIR_PATH/cur"); do
case "$(get_subject "$mail")" in
('Tiger Auditing Report for example.com')
TIGER_REPORTS="$TIGER_REPORTS $mail"
;;
esac
done
# Logcheck reports
LOGCHECK_REPORTS=$(list_by_recipient 'logcheck@example.com' "$MAILDIR_PATH/cur")
if [ -n "$LOGCHECK_REPORTS" ]; then
move_to_directory \
"$MAILDIR_PATH/.hostname.logcheck/cur" \
$LOGCHECK_REPORTS
fi
# Tiger reports
if [ -n "$TIGER_REPORTS" ]; then
move_to_directory \
"$MAILDIR_PATH/.hostname.tiger/cur" \
$TIGER_REPORTS
fi
exit 0
Jouer sous Debian ? Facile !
Ceterum censeo Barum esse delendam