I've been having a problem where Evolution doesn't see folders more than one level deep from another existing folder. For example, INBOX.foo would be seen, but INBOX.foo.bar wouldn't unless INBOX.foo also exists.

I only have this problem with Evolution - Gnus and MacOS's Mail.app both see all my folders on the Binc server without any trouble. Evolution has no problem with the same setup on Courier IMAP. I've tracked it down to differences in both the client and the server:


Why Gnus works and Evolution doesn't:

They use different methods to get the entire list of folders.

Gnus uses: LIST "" "*%"
Evolution uses: LIST "" "%", and recursively lists $folder.% for anything the server returns.


Why Evolution works with Courier and not Binc:

If INBOX.foo.bar exists (but INBOX.foo doesn't), Courier will return INBOX.foo in the list for "INBOX.%". It has the flags \Noselect and \HasChildren.


I've filed this bug in the Ximian Bugzilla:
http://bugzilla.ximian.com/show_bug.cgi?id=37687

It sounds like the Ximian IMAP guy is open to change, but we're late enough in a product cycle that it probably wouldn't happen anytime soon. Do you have any thoughts on how this would best be resolved? I took a look through the Binc LIST code, and it looks like it would be very easy to provide Courier's behavior in this case.

I'm not familiar with the IMAP RFC's, though, so I'm not sure if there are any issues because of protocol conventions.

Peter

Reply via email to