[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:
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:
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.
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:
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).
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:
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