On Aug 9, 2006, at 1:07 PM, Chuck, Charlie and Charles wrote:

Implementing them as IMAP flags certainly sounds interesting.  I think
you'll probably still need a database component though. IMAP is good at
returning the flags associated with a single message, but I don't know
that it has a method retrieving all flags attached to all the messages
in a folder, for instance.  I would recommend storing the tags in a
table, and using that to populate your various lists of tags, and also
use it as the base for applying tags to messages.

Actually, there's a PERMANENTFLAGS response sent with every SELECT that lists the flags known to that mailbox. When I discovered that I was amazed more clients *don't* support tags -- the IMAP server does all the hard work!!

You're right, though, that there will need to be a global tag cache, since tags are available only per-box. There seems to be no easy way to retrieve all flags attached to all the messages in *all* folders, which is what we really need.

The tags applied to messages should also be cached, but it will be only a cache, and not authoritative.

I don't know anything about roundcube's caching, so I'll need some serious help with this when it comes time. I may just write things the naive way and let someone else handle the caching =]

The javascript Iwrote should still be pretty good, if you'd like to use that as a
jumping off point I can post it here or something.
Basically I got as far as tagging messages and seeing those tags in the
subject (like gmail) but didn't even get started on "virtual folders"
and the like, which of course would be the ultimate goal of such a project.

I'm not sure I want to implement full virtual folders, backed by arbitrary search. I would like to do a list of all messages that share a tag, in the way Gmail does. When it comes time to do UI, your code would certainly be helpful!

Would you like to IRC or IM about it sometime?  I'm not free any
evenings this week and I'm out of town this weekend, but I can usually
carve out some of my companies time during the day (8AM-5PM CDT)

I'm in #roundcube on freenode, as either utf8 or jauricchio (depending on which machine I'm on).

-joe


Reply via email to