logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 24-05-2020 08:48:39

vv222
Administrateur
Lieu : Bretagne
Distrib. : Debian Sid
(G)UI : sway
Inscription : 18-11-2013
Site Web

Ranger une boîte mail au format Maildir

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

Hors ligne

#2 24-05-2020 08:51:06

vv222
Administrateur
Lieu : Bretagne
Distrib. : Debian Sid
(G)UI : sway
Inscription : 18-11-2013
Site Web

Re : Ranger une boîte mail au format Maildir

Pour rendre ce script plus facilement réutilisable, je vais probablement le découper en une bibliothèque de fonctions et un script d’appel qui sera différent pour chaque boîte mail. La bibliothèque de fonctions sera mise à disposition sur un dépôt git public.

Jouer sous Debian ? Facile !

Ceterum censeo Barum esse delendam

Hors ligne

#3 24-05-2020 10:01:24

vv222
Administrateur
Lieu : Bretagne
Distrib. : Debian Sid
(G)UI : sway
Inscription : 18-11-2013
Site Web

Re : Ranger une boîte mail au format Maildir

J’ai étendu le script avec la possibilité de filtrer en fonction du sujet d’un e-mail, en plus de l’adresse du destinataire.
Au passage j’ai corrigé un bug qui arrêtait l’exécution si jamais aucun mail n’est en attente pour une des adresses de destinataire testées.

Jouer sous Debian ? Facile !

Ceterum censeo Barum esse delendam

Hors ligne

#4 24-05-2020 13:53:20

phlinux
Membre
Distrib. : Buster
Noyau : 5.10
(G)UI : Openbox (+Rox+Feh)
Inscription : 09-05-2009

Re : Ranger une boîte mail au format Maildir

Bjr,
Juste pour info: avec procmail ça te semble moins amusant ?

Pages perso : feh, omegat, udisks, passerelle, schroot vraiment transparent

Hors ligne

#5 24-05-2020 21:18:56

vv222
Administrateur
Lieu : Bretagne
Distrib. : Debian Sid
(G)UI : sway
Inscription : 18-11-2013
Site Web

Re : Ranger une boîte mail au format Maildir

procmail en particulier semble un peu poussiéreux, sans mise-à-jour depuis presque 20 ans !
Mais c'est surtout pour moi l'occasion d'étudier le format Maildir, ce script de rangement me servant presque de prétexte pour nourrir ma curiosité wink

Jouer sous Debian ? Facile !

Ceterum censeo Barum esse delendam

Hors ligne

#6 25-05-2020 12:15:05

phlinux
Membre
Distrib. : Buster
Noyau : 5.10
(G)UI : Openbox (+Rox+Feh)
Inscription : 09-05-2009

Re : Ranger une boîte mail au format Maildir

Ah oui tiens, j'avais pas remarqué que le man de procmail date de 2001. En même temps si c'est abouti pourquoi en rajouter; on a la même démarche avec openbox.
Bon ben comme ça je suis ton fil. Les config perso c'est souvent intéressant

Pages perso : feh, omegat, udisks, passerelle, schroot vraiment transparent

Hors ligne

Pied de page des forums