[Dovecot] LSUB and subscribed folders
I have a strange behavior on a customer's server and I don't understand that:
User "bar" has some folders and one shared folder from "foo" if I use the "LIST"-command, which should list AFAIK *all* folders:
# telnet localhost 143 a login bar xxxx a OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS ACL RIGHTS=texk] Logged in a LIST "" "*"
- LIST (\HasNoChildren) "/" "Gesendete Objekte"
- LIST (\HasNoChildren) "/" "Papierkorb"
- LIST (\HasNoChildren) "/" "INBOX"
- LIST (\HasNoChildren) "/" "Trash"
- LIST (\HasNoChildren) "/" "Entw&APw-rfe"
- LIST (\HasNoChildren) "/" "Spam"
- LIST (\Noselect \HasChildren) "/" "shared/foo"
- LIST (\HasNoChildren) "/" "shared/foo/INBOX" a OK List completed.
Using the LSUB-command, which should only list subscribed folders I can see some more shared folders. AFAIK the output of LSUB must be always less then LIST:
a LSUB "" "*"
- LSUB () "/" "Entw&APw-rfe"
- LSUB () "/" "Gesendete Objekte"
- LSUB () "/" "INBOX"
- LSUB () "/" "Papierkorb"
- LSUB () "/" "Spam"
- LSUB () "/" "Trash"
- LSUB (\Noselect) "/" "shared/amerkel"
- LSUB () "/" "shared/foo/Papierkorb/Ungelesene Mails"
- LSUB () "/" "shared/foo/INBOX"
- LSUB () "/" "shared/foo/INBOX/abc/Unterebene 1"
- LSUB () "/" "shared/foo/INBOX/abc/Unterebene 1/Test6789"
- LSUB () "/" "shared/foo/INBOX/abc/Unterebene 1/Test Unterornder"
- LSUB () "/" "shared/foo/INBOX/abc/Unterebene 1/Tsfgnksfgnk" a OK Lsub completed. a logout
- BYE Logging out a OK Logout completed.
And why is /shared/foo/INBOX listed with "HasNoChildren"?
IMHO that's looking buggy.
And, btw: Looks like's not possible to use the "doveadm"-command to get a list of a user's complete folder list. Maybe "doveadm mailbox" should get some extra parameters to geht all folders / only subscribe folders / only shared folders:
# doveadm mailbox list -u bar Gesendete Objekte Papierkorb INBOX Trash Entwürfe Spam
--
Heinlein Professional Linux Support GmbH Linux: Akademie - Support - Hosting http://www.heinlein-support.de
Tel: 030/405051-42 Fax: 030/405051-19
Zwangsangaben lt. §35a GmbHG: HRB 93818 B / Amtsgericht Berlin-Charlottenburg, Geschäftsführer: Peer Heinlein -- Sitz: Berlin
Quoting Peer Heinlein <p.heinlein@heinlein-support.de>:
No, it is exactly the opposite - LSUB can potentially list MORE
mailboxes than exist on the server. LSUB only provides the list of
mailboxes that have been marked as subscribed.
It is quite possible to mark a mailbox as subscribed and then delete
it, in which case LSUB must continue to report that mailbox. See RFC
3501 [6.3.9]:
The server MUST NOT unilaterally remove an existing mailbox name
from the subscription list even if a mailbox by that name no
longer exists.
michael
Hi,
I've finally gotten to last year's mail backlog. :)
On 22.12.2011, at 14.34, Peer Heinlein wrote:
User "bar" has some folders and one shared folder from "foo" if I use the "LIST"-command, which should list AFAIK *all* folders:
Yes.
As Michael mentioned, LSUB can show some nonexistent mailboxes also that haven't been unsubscribed.
And why is /shared/foo/INBOX listed with "HasNoChildren"?
It has no visible existing children (the LSUB entries didn't exist or no longer had necessary ACLs).
Yes, that would be nice .. but maybe this is enough for now: http://hg.dovecot.org/dovecot-2.1/rev/b600af017598
participants (3)
-
Michael M Slusarz
-
Peer Heinlein
-
Timo Sirainen