This document describes what a Kolab client can store in the IMAP folders on a Kolab server.
The Kolab storage format is designed to provide a unified storage format for several Kolab client implementations.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.
The word "can" (not "may") is used to refer to a possible circumstance or situation, as opposed to an optional facility of this standard
Each Kolab object (note, event, contact etc.) is stored in its own email, in the appropriate folder for this type of object.
The email uses a multipart/mixed structure, with the following parts:
A text body part with a fixed text telling about Kolab. Content-Type: text/plain
The XML describing the object. Content-Type: application/x-vnd.kolab.*
Other attachments, like a contact's picture or the attachments associated with e.g. a note or event.
The following requirements apply to the mail headers:
The subject of the mail must be set to the UID of the object. (*)
An additional header named X-Kolab-Type, must be set to the mimetype of the object, application/x-vnd.kolab.*
(*) This can be used by some clients for searching but it is not recommended to implement clients that way; searching on the IMAP ID is much faster when it's possible.