I maintain the mailprocessing utility, a Turing complete maildir and IMAP capable filter with rules written in Python, both upstream and in openSUSE. It is currently suffering from some performance problems I'll devote my Hackweek (or part of it) to improving. Most notably the following areas will need some attention:
- Ability to deal with large inboxes. This one is already done and I have been using it myself for a while but not released, yet. If you urgently need it feel free to grab it from the
masterbranch. I'll give it another once-over before release, but it should be fine.
- Batching for imapproc header downloads: right now, imapproc issues a
FETCHcommand for downloading every single email's headers. I'll try and find a way to batch these into fewer
FETCHcommands. That should greatly improve cache building duration for the day one returns from a two week vacation...
- Tuneables for batch size: both the large inbox improvements and the header downloads will split their
FETCHcommands into batches. Depending on the IMAP server and how slow it is, a user may not be able to use the default batch size. For this user, the batch size should be exposed as a tuneable.
- Log rotation: the IMAP or maildir logs can grow to respectable sizes (several hundred megabytes) fairly quickly. It would therefore make sense to at least add some hooks for
logrotate(1)so these logs can be rotated in a sensible manner.
By the end of the Hackweek I'll update the mailprocessing package to include the new changes. Also, feel free to post feature requests in the comments and I'll see what I can do...
This project is one of its kind!