Server Configuration: dovecot-1.0.rc6 Built with: ./configure --prefix=/usr/local OS: FreeBSD 4.10-STABLE i386 running on ufs
Thanks, Bruce. Timo et all; Bruce specifically has been looking at my instance of dovecot after a friend of his reported problems with Mail.app and my server.
More information: Stock dovecot namespaces work;
This name space does not:
namespace private { separator = . prefix = INBOX. inbox = yes hidden = no } namespace private { separator = / inbox = no hidden = yes prefix = "#mail/" location = mbox:/home/%u/mail }
Client configuration Mac OS X 10.4.7, using Apple Mail client.
Issue: Apple Mail is able to connect to the server, but it is not seeing the available folder correctly.
I did a little debugging and it looks like dovecot is failing to provide the separator in response to the LIST command. I did not spend anytime trying to figure out how other mail clients are getting this (my tcpdump is a little rusty these days). Here is what I see Mail sending to the server, and it's responses.
1 LOGIN applecot ******** 1 OK Logged in. 2 CAPABILITY
- CAPABILITY IMAP4rev1 SASL-IR SORT THREAD=REFERENCES MULTIAPPEND UNSELECT LITERAL+ IDLE CHILDREN NAMESPACE LOGIN-REFERRALS 2 OK Capability completed. 3 LIST "" "" 3 OK List completed.
The "LIST" command should be sending back the mailbox separator. The IMAP spec seems pretty clear about this (but reading RFC's is always a bit of a challenge).
From the RFC: http://www.ietf.org/rfc/rfc2060.txt 6.3..8. LIST Command
Arguments: reference name mailbox name with possible wildcards
Responses: untagged responses: LIST
Result: OK - list completed NO - list failure: can't list that reference or name BAD - command unknown or arguments invalid ? An empty ("" string) reference name argument indicates that the mailbox name is interpreted as by SELECT. The returned mailbox names MUST match the supplied mailbox name pattern. A non-empty reference name argument is the name of a mailbox or a level of mailbox hierarchy, and indicates a context in which the mailbox name is interpreted in an implementation-defined manner.
An empty ("" string) mailbox name argument is a special request to return the hierarchy delimiter and the root name of the name given in the reference. The value returned as the root MAY be null if the reference is non-rooted or is null. In all cases, the hierarchy delimiter is returned. This permits a client to get the hierarchy delimiter even when no mailboxes by that name currently exist.
?
Example: C: A101 LIST "" "" S: * LIST (\Noselect) "/" "" S: A101 OK LIST Completed C: A102 LIST #news.comp.mail.misc "" S: * LIST (\Noselect) "." #news. S: A102 OK LIST Completed C: A103 LIST /usr/staff/jones "" S: * LIST (\Noselect) "/" / S: A103 OK LIST Completed C: A202 LIST ~/Mail/ % S: * LIST (\Noselect) "/" ~/Mail/foo S: * LIST () "/" ~/Mail/meetings S: A202 OK LIST completed
-- Bruce