[OT-ish] Want command line program to selectively delete emails
Marcus C. Gottwald
mcg at cheers.de
Fri Aug 4 20:56:18 UTC 2023
Ed Blackman wrote (Fri 2023-Aug-04 14:34:44 -0400):
> ... remove emails that were received more than X days ago, but can also express "but don't delete if they're flagged".
..
> I could give up on using the message headers to determine the message date, learn how filenames are constructed in Maildir (to read the flags) and use a shell script built around "find".
That's what I'd probably do. It might be simpler than expected:
find ~/mail/folder1/cur/ -maxdepth 1 -type f -not -name '.*' \
-mtime +30 \
-not -name '*:2,*F*' \
-delete
The conditions in the first line are generic, the other three
lines should match your example: received more than 30 full days
ago && not flagged => delete.
If you also want to delete mails that "have not yet been seen by
any mail application" [1], let "find" also look at new/. Entries
in new/ never contain an info part (the stuff after the colon),
so you can drop the check for an unset "F" flag if you need to
invoke "find" separately for new/ anyway.
[1] https://en.wikipedia.org/wiki/Maildir
Cheers, Marcus
--
Marcus C. Gottwald · <mcg at cheers.de> · @mcg:cheers.de
More information about the Mutt-users
mailing list