Tag Configuration object draft
Thomas Brüderli
bruederli at kolabsys.com
Thu Apr 10 18:48:49 CEST 2014
On 08.04.2014 15:02, Aleksander Machniak wrote:
> On 02/27/2014 01:47 PM, Jeroen van Meeuwen (Kolab Systems) wrote:
>> The proposed format object definition can at least allow for hint(s)
>> on
>> where the message was when tagged originally
>> (/vendor/cmu/cyrus-imapd/uniqueid in Cyrus IMAP 2.5, or
>> /vendor/kolab/uniqueid for Cyrus IMAP 2.4), as well as the content
>> type
>> of the object that had been tagged, so that a hit-or-miss can narrow
>> subsequent searches it may need to perform.
>
> Let's forget about XCONVERSATIONS and multi-folder searching. This is
> still for me not clear what to use as a message identifier to make this
> best for performance.
>
> We need also keep in mind that in Roundcube we do not have all message
> headers in cache (all headers of the message nor all messages).
>
> So, we need to consider two things:
> - searching for messages with specified tag (that search request might
> sometimes include additional IMAP SEARCH criteria),
> - moving messages (and need of tag object update on message identifier
> change).
>
> So, the best aproach would be to use message header that does not
> change
> when moving and that can be used in IMAP SEARCH, but is this possible?
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>
Example:
imap://lists/kolab-format/438#<5343F378.8090703@kolabsys.com>;20140408T150248+0200
In order to be more unique, the <folder>/<subfolder> information could
be replaced by the folder's uniqueid annotation. Although I don't know
if this can be used directly for selecting folders in IMAP.
FWIW: the very same message reference is required for linking note
objects with messages which is a planned feature for the notes module.
~Thomas
More information about the format
mailing list