Tag Configuration object draft

Aleksander Machniak machniak at kolabsys.com
Thu May 8 12:40:35 CEST 2014

On 04/10/2014 06:48 PM, Thomas Brüderli wrote:
> What about using the full IMAP path with the message UID as the primary
> identifier with a fallback information (e.g. Message-ID) for a
> hit-and-miss scenario? Although the Message-ID can't be assumed to be
> absolutely unique, it still denotes an identifier for a message or set
> of "related" messages. Possibly append it with the Date header of the
> message, which at least would solve the forwarded-but-no-new-message-id
> case and still is searchable via IMAP.
> If the final message identifier is restricted to be a string, an URL
> comes to mind:
> imap://[<namespace>/]<folder>/<subfolder>/<message-uid>#<message-id>;<message-date>

I don't know, there's too much to change when you move a message/folder.

Now, new idea comes. Generate unique message identifiers (based on set
of message headers, size, etc. or use some general method of UUID
genertion) and store them in message annotations using ANNOTATE
extension (RFC5257). This identifier/annotation will be generated only
once. Maybe we could even extend cyrus to generate them automatically.

Then we could use these identifiers as message references. Searching
should be simple. Moving/copying does not change the identifier.
Forwarding is not a problem.

The only annoyance is that the annotation must be copied when you update
kolab object (old message is removed and new one created).

BTW, I see all of proposed solutions will not work really reliably for
drafts (as there date, message-id, uid may change on draft update). I
propose to assume clients can/should disable tags feature in Drafts folder.

Aleksander Machniak
Web Developer, Kolab Systems AG
PGP:19359DC1 - http://www.kolabsys.com - http://alec.pl

More information about the format mailing list