There is a missbehaviour in the form cyrus presents the elements in "shared folders" and "other users".
In most clients like thunderbird or roundcube this error does not matter. But it stops eM-Client working if there are elements
shared by an other user. And it does not show up any "shared folder" created with kolab-webadmin in eM Client.
I don't know if there are other clients running in the self issue.
The most clients seems to fetch the folder-list in the form:
LIST "" "*" RETURN (SPECIAL-USE STATUS (UNSEEN))
this returns a correct folderstructure with all Elements and every thing is fine.
eM-Client (and may be other clients) seems to follow another strategy
LIST "" "%" RETURN (SPECIAL-USE STATUS (UNSEEN))
in first and get in this form a list with all top-level elements in the format:
- LIST (\Noinferiors) "/" INBOX
- STATUS INBOX (UNSEEN 3)
- STATUS Adressbuch (UNSEEN 51)
- LIST (\HasNoChildren) "/" Antivirus
- STATUS Antivirus (UNSEEN 0)
- LIST (\HasNoChildren) "/" Archive
If a Folder has Subfolders there is (\HasChildren)
in the next step they call a List for all element wit /HasChildren.
The missbehaviour in the case of "Shared Folders" is that the list-call with the "%" asterisc
leads to following output:
- LIST (\Noselect \NonExistent \HasNoChildren) "/" "Shared Folders/Shared Folders"
And this is the point where eM fails to get the "shared folders" because it has become the information that there are no more subfolders.
The "HasNoChildren" Flag ist raised even if there are subfolders in the full listing
The Other Bug is in the handling of "Other Users" elements.
And here I suppose there is eventually not only a bug in Cyrus / Kolab but potentialy in GUAM too.
If there are user-shared elements (mailboxes, calendars, addressbooks) the LIST-command with the "%" asterisc
delivers following in the first step:
LIST (\Noselect \NonExistent \HasChildren) "/" "Other Users"
So far, ok. But now happens the following:
If the Client does ask for the elements in other users like this:
LIST "" "Other Users/%" RETURN (SPECIAL-USE STATUS (UNSEEN))
Cyrus answers with:
LIST (\HasChildren) "/" "Other Users/givenname.name"
But if the User does not share the root of its Mailbox but only a deeper subfolder
the client now throws a "Mailbox does not exist" error until it has reached the subfolder the user shared.
This seems to be the case, because Cyrus has to answer like the follow until it has reached the shared folder:
LIST (\Noselect \NonExistent \HasChildren) "/" "Other Users/givenname.name"
so the client can know not to try show the elements in this folder.
I've also suggestet a fix in the user-forum for the eM-Client that they can get rid of the problem if they call the list in one piece with the "*" asterisc.
But the missbehaviour should be also fixed in Kolab too, but its not fully IMAP-compliant in the form like it is now.