Gestern Abend habe ich mich bei einer Mailingliste angemeldet und heute Morgen festgestellt, dass mein Procmail-Filter auf viele der Mailinglisten-Nachrichten nicht zutrifft. Jetzt liegen in meinem Posteingang zwischen meinen wichtigeren Arbeits-E-Mails eine Menge weniger wichtiger Mailinglisten-Nachrichten.
Ist es möglich, alle E-Mails in meinem Posteingang noch einmal durch meine Procmail-Filter laufen zu lassen?
Hinweis: Ich verwende das Maildir-Format
Antwort1
Ich glaube, das wird funktionieren. Sie müssen formail
die E-Mail neu formatieren und zurücksenden procmail
.
Aus dem Maildir-Verzeichnis:
cat * | formail -s procmail
Antwort2
Sie können es möglicherweise direkt vor Ort tun, und zwar wie folgt:
$ for m in Mail/{cur,new}/*; do echo $m; procmail <$m; rm $m; done
Sie müssen anschließend alle Original-E-Mails löschen, da Procmail sie sonst dupliziert.
Außerdem wird alles als neu aufgezeichnet. Ich bin mir nicht sicher, wie ich das am besten handhaben soll.
Antwort3
Wenn Sie Mutt verwenden, können Sie die E-Mail durch Procmail leiten und das Original mit einem Tastenbefehl wie diesem auch aus Ihrem Posteingang löschen:
muttrc:
macro index y '<enter-command>unset wait_key<enter><tag-prefix><pipe-entry>/usr/bin/procmail /home/user/.procmailrc<enter><tag-prefix><delete-message><enter-command>set wait_key<enter>'
macro pager y '<enter-command>unset wait_key<enter><pipe-entry>/usr/bin/procmail /home/user/.procmailrc<enter><delete-message><enter-command>set wait_key<enter>'
gefunden aufhttps://mikeburnscoder.wordpress.com/2011/06/12/one-big-mutt-inbox-filtered-after-the-fact-using-procmail/
Antwort4
Dafür scheint es keine gute Lösung zu geben: Procmail scheint nur E-Mail-Eingaben von zu akzeptieren stdin
, was die Maildir-Anwendungen einschränkt.
Ich stand vor einer ähnlichen Situation und die beste Lösung für meine Anforderungen bestand darin, einfach das, was ich procmail
tun wollte, aber definitiv nicht kann, mit meinem eigenen kleinen Skript zu duplizieren. Das sollte ausreichen, wenn Sie nur ein oder zwei einfache Regeln beachten müssen:
cd ~/Maildir/
sh -c 'for i in `egrep -l "^Delivered-To: [email protected]" cur/*`; \
do mv $i .FreeBSD.perforce/$i; done'
Dies ist zwar auch nicht optimal, sollte aber zumindest nicht zu unnötigen E/A-Vorgängen und potenziellen Datenverlusten führen.