---------- Forwarded message ---------- From: Bruce Arthur barthur@apple.com To: dovecot@dovecot.org Cc: Bruce Arthur barthur@apple.com Date: Tue, 29 Aug 2006 09:04:35 -0700 Subject: Problem using Apple Mail with Dovecot
Server Configuration: dovecot-1.0.rc6 Built with: ./configure --prefix=/usr/local OS: FreeBSD 4.10-STABLE i386 running on ufs
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