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.