Mailing-list based filtering and IMAP
Given the big number of mails I receive (around 150 a day), and given that most of it comes from W3C mailing lists (around 80%), I sort all my incoming emails based on the mailing list they were sent to, which allows me to see at a quick glance what mails I should read in priority. Procmail allows to do so quite easily with the following rule:
# filter mail from W3C mailing lists
:0
* ^List-Id: <[a-z0-9-]+.w3.org>
* ^List-Id: </[a-z0-9-]+
$MATCH
(List-Id is a header defined in RFC 2919 precisely to make it possible to handle mailing lists messages)
The only problem with that approach is that, using IMAP, I only get to see mails from mailboxes I have explicitly subscribed to; also, I can only subscribe to a mailbox that already contains emails. While there are workarounds for these issues, I eventually wrote the following little assistant that detects which mailboxes have received mails recently and to which I’m not subscribed:
#!/bin/bash
cd /home/dom/mail; for i in * ; do if [ -z "`grep "$i" ./home/dom/mail/subscriptions`" ] ; then if [ `stat -c "%Y" "$i"` -gt `stat -c "%Y" /home/dom/mail/.subscriptions` ] ; then echo $i ; fi ; fi ; done
.subscriptions is the file used by our IMAP server to track which mailboxes one is subscribed to; so this scripts compares the list of mailboxes with the list of subscribed mailboxes; for mailboxes to which I’m not subscribed, it checks whether any recent message has been received (using stat -c "%Y").
Calling it from a daily cronjob, I should get a message listing new mailboxes I’m not IMAP-subscribed to when this happens.