Hier soir, je me suis abonné à une liste de diffusion et j'ai découvert ce matin que mon filtre procmail ne s'appliquait pas à la plupart des messages de la liste de diffusion. Maintenant, j'ai des tas de messages de liste de diffusion moins importants entrecoupés de mes courriels professionnels plus importants dans ma boîte de réception.
Est-il possible de réexécuter tous les e-mails de ma boîte de réception via mes filtres procmail?
Remarque: j'utilise le format maildir
Réponses:
Je crois que cela fonctionnera. Vous devez exécuter
formail
pour reformater le courrier et le renvoyerprocmail
.Depuis le répertoire Maildir:
cat * | formail -s procmail
la source
vous pourriez être en mesure de le faire sur place, comme ceci:
Vous devez ensuite supprimer chaque e-mail d'origine, sinon procmail le dupliquera.
Il enregistrera également tout comme neuf. Je ne suis pas sûr d'un bon moyen de gérer cela.
la source
procmail < $m && rm $m
au lieu deprocmail < $m ; rm $m
si au moins le message n'est pas supprimé si procmail échoue.Si vous utilisez mutt, vous pouvez diriger l'e-mail via procmail et également supprimer l'original de votre boîte de réception avec un raccourci clavier comme ceci:
muttrc:
trouvé sur https://mikeburnscoder.wordpress.com/2011/06/12/one-big-mutt-inbox-filtered-after-the-fact-using-procmail/
la source
Il semble qu'il n'y ait pas de bonne solution pour cela: procmail ne semble accepter que les entrées de courrier provenant de
stdin
, ce qui limite les applications maildir.J'ai fait face à une situation similaire, et la meilleure solution qui correspondait à mes besoins était simplement de dupliquer ce que je voulais
procmail
faire, mais ce qu'elle ne peut certainement pas faire, avec mon propre petit script, ce qui devrait être suffisant si vous n'avez qu'une ou deux règles simples dont vous devez prendre soin:Ce n'est pas optimal non plus, mais au moins cela ne devrait pas souffrir d'E / S inutiles et de problèmes potentiels de perte de données.
la source