Idea for filtered access to cyrus
Michael R. Gettes
gettes at duke.edu
Wed Aug 2 11:18:33 EDT 2006
Rob Carter (duke) and I have been discussing for some time how to
provide filtered access to the IMAP store using cyrus (cuz we use
cyrus - duh!).
Problem: With the blackberry a user can filter what email is sent
to their device. It's a handy and powerful ability. Non-blackberry
devices that speak the IMAP protocol do not have such a filtering
ability. You essentially get ALL your mail. We see this as
So, how to provide a filtering ability without changing the clients?
I will present this idea from the user perspective and drill down.
The user enters into the device as login information: username
+filter=foo and pw.
(or something to that effect - don't get hung up on the details at
Cyrus gets this and slices off the +filter= and places the value "foo"
into a FILTER variable.
On the mail delivery side: LMTP is changed to look for X-IMAP-FILTER
and to store the value of the header as an IMAP flag. Assuming
then we add /filter=foo to the IMAP flags. Do so for each X-IMAP-FILTER
then we modify the code to apply looking for /filter=foo to limit all
eligible email for the life of the session. Any mail stored (copied,
would retain or have added the /filter=foo flag. It is our hope that
down deep enough into the code that this is not all that hard to do.
We then create a web page service to allow people to tag email with
X-IMAP-Filter headers based on whatever rules using things like
or whatever you favorite mechanism may be. You can have multiple
different devices or purposes.
from the user perspective - a simple web interface to create/modify
a simple mechanism to login to an IMAP server with ANY client and
have a limited
view of all the mail.
I am really not interested in negative filters being implemented at
this level -
negative filters would be implemented by the web page and the sieve
to control what X-IMAP-Filter headers are added. So, if you wanted
to flag all
non-junkmail then handle this by setting a non-junkmail filter.
a little thought to realize the implications).
So, this is the really simple view of this idea. I don't see any
stoppers and it dramatically increases the utility of cyrus to small
More information about the Info-cyrus