[Dovecot] \NoSelect on missing folders in LIST
Hi,
I noticed a difference between courier and dovecot, and I'm not sure which of them is wrong wrt. RFC3501 - if any.
I have a Maildir which has been accessed by an Apple Mail client, so it got folders like:
INBOX INBOX.Trash INBOX.INBOX.folder INBOX.INBOX.folder.a INBOX.INBOX.folder.b
The INBOX.INBOX folder does not exist on disk and is not subscribed.
Courier responds to: . list "" "*" with
- LIST (\Noselect \HasChildren) "." "INBOX.INBOX"
But dovecot does not list that folder using "*".
However, if you issue: . list "" "INBOX.%"
Dovecot answers:
- LIST (\Noselect \HasChildren) "." "INBOX.INBOX"
This makes some clients using "*" to get the folder list ignore the folderes below "INBOX.INBOX". I know the recommended client way is to use "%", but I'm still curious about which is the correct behaviour.
/Peter
On 5.3.2012, at 15.01, Peter Mogensen wrote:
I have a Maildir which has been accessed by an Apple Mail client, so it got folders like:
INBOX INBOX.Trash INBOX.INBOX.folder INBOX.INBOX.folder.a INBOX.INBOX.folder.b
The INBOX.INBOX folder does not exist on disk and is not subscribed.
Courier responds to: . list "" "*" with
- LIST (\Noselect \HasChildren) "." "INBOX.INBOX"
I'm surprised Courier would return this.
But dovecot does not list that folder using "*".
But it returns all of the mailboxes under INBOX.INBOX, right?
However, if you issue: . list "" "INBOX.%"
Dovecot answers:
- LIST (\Noselect \HasChildren) "." "INBOX.INBOX"
Yes, because if it didn't the client wouldn't know that there are mailboxes under INBOX.INBOX.
This makes some clients using "*" to get the folder list ignore the folderes below "INBOX.INBOX".
What clients? I haven't heard of this being a problem before. I think Cyrus has similar behavior as Dovecot.
Also if you used LAYOUT=fs in Dovecot, it would always show the \Noselect mailboxes because they happen to exist physically.
On 2012-03-05 15:45, Timo Sirainen wrote:
- LIST (\Noselect \HasChildren) "." "INBOX.INBOX"
I'm surprised Courier would return this.
But dovecot does not list that folder using "*".
But it returns all of the mailboxes under INBOX.INBOX, right?
Yes. And they exists on disk and are subscribed to.
However, if you issue: . list "" "INBOX.%"
Dovecot answers:
- LIST (\Noselect \HasChildren) "." "INBOX.INBOX"
Yes, because if it didn't the client wouldn't know that there are mailboxes under INBOX.INBOX.
Seems reasonable.
This makes some clients using "*" to get the folder list ignore the folderes below "INBOX.INBOX".
What clients? I haven't heard of this being a problem before. I think Cyrus has similar behavior as Dovecot.
Well... mostly perl scripts :) - which could probably be changed to use "%" for wildcard, but since they always need to get the entire folder tree it would result in more IMAP traffic.
/Peter
On 5.3.2012, at 16.56, Peter Mogensen wrote:
This makes some clients using "*" to get the folder list ignore the folderes below "INBOX.INBOX".
What clients? I haven't heard of this being a problem before. I think Cyrus has similar behavior as Dovecot.
Well... mostly perl scripts :) - which could probably be changed to use "%" for wildcard, but since they always need to get the entire folder tree it would result in more IMAP traffic.
Couldn't the scripts be simply fixed to figure out that if foo.bar.baz is returned without foo or foo.bar, then just internally assume them being there as \noselect?
participants (2)
-
Peter Mogensen
-
Timo Sirainen