On 9/23/2012 7:31 PM, Stephan Bosch wrote:
On 9/20/2012 2:11 PM, Tom Horsley wrote:
I want a program that operates entirely on the client side of an IMAP server, and implements the sieve filtering language by doing the necessary client side operations to move mail on the IMAP server, expunge mail, etc.
Interesting idea. I've been experimenting a bit with the sieve-filter command line tool and the Dovecot imapc mail storage backend. This does not entirely match your proposed solution, since it'll have to operate as a cron job, but at least it is a start. [...] In the process a few problems were encountered and solved. This means that this little experiment will only work with the latest revisions of Dovecot v2.1/v2.2 and a matching Pigeonhole from their respective Mercurial repositories.
The conclusion so far is that, in essence, what you'd like to do is possible. However, to make Sieve filtering look like it is being run at delivery rather than at regular intervals in the background, we will need to build some sort of IMAP plugin that monitors INBOX for new messages and passes them through a Sieve filter before the user's proxied IMAP client can see them. I'll have to investigate how much work implementing this would be.
I should explain explain in a little more detail how this works.
Basically, I use the sieve-filter tool to filter mail that is already in a mailbox. Only, the mailbox is a bit special: it is an imapc (IMAP Client) mailbox that proxies to a remote mailbox. So, on our local machine the INBOX actually maps to INBOX on the remote server, rather than some local store. For the sieve-filter tool this makes no difference. This way, the sieve-filter can also be used to filter mail on a remote server.
Regards,
Stephan.