On Thu, 21 May 2009, Andrew Daviel wrote:
If in Thunderbird the option "server supports folders which can contain both folders and messages" is checked

No client should ever have, or need, such a configuration option. This is handled by the IMAP protocol.

(the default, which is true for MIX) then it creates a folder "test" with no suffix, listed as such in .mailboxlist. If the option is unchecked, it appends a / when it creates a directory and not when it creates a folder.

This indicates that the developers of Thunderbird don't have a clue about IMAP. This has been a problem since the bad old days of Netscape Messenger.

In IMAP, CREATE using the form with no hierarchy delimiter suffix means "create a container that holds messages" (a mailbox), and the form with hierarchy delimiter suffix means "create a container that holds other containers" (a directory).

This has nothing to do with whether or not the server allows a mailbox to be a directory as well. There is no need for that configuration switch.

15 list "" "Trash/test2/*"
* LIST (\HasNoChildren) "/" Trash/test2/
15 OK LIST completed

This is because "Trash/test2/" matches the pattern but "Trash/test2" does not.

16 delete "Trash/test2/"
16 OK DELETE completed

This is because the name "Trash/test2/" resolves as a mailbox.

17 unsubscribe "Trash/test2/"
17 NO Not subscribed to mailbox Trash/test2/

This is because "Trash/test2/" is not in the mailbox list.

The subscription list can best be thought of as being like a bookmarks file. The fact that http://www.example.com and http://example.com might take you to the same page does not mean that the two names match in the bookmarks.

71 create "test3f/"
71 OK CREATE completed
72 subscribe "test3f/"
* NO CLIENT BUG DETECTED: subscribe of non-mailbox directory test3f/
72 OK SUBSCRIBE completed

As the server said, "test3f/" is a non-mailbox directory and shouldn't be subscribed.

30 unsubscribe "test3f/test4/"
30 NO Not subscribed to mailbox test3f/test4/

Once again, that is not the name that is in the subscription list.

I do see an inconsistancy here, that when Thunderbird deletes the message folder it appends a /. However, imapd successfully deletes it even though it does not exactly match the name given while creating it.

The name with the / appended works when accessing it as a mailbox.

The case where it doesn't work is when you are trying to look up the name in the subscription list.

Is it fair to say that Thunderbird has a bug because it uses a different folder name for creation and deletion,

Yes.

and/or that imapd is inconsistent in its treatment of deletion vs. unsubscription ?

No.

The behavior of the trailing / form is undefined in the specification for all commands other than CREATE.

As a courtesy, imapd allows the trailing / form for command which actually access a mailbox. The subscription commands do not access a mailbox; they merely manipulate a list of names.

The LIST command returns that form for the foo/* case in order to verify that the superior exists at all. Otherwise, there would be no difference between "foo is empty" and "foo does not exist".

Other servers may behave differently; but in any case any client that uses the suffix form for anything other than CREATE is broken.

-- Mark --

http://panda.com/mrc
Democracy is two wolves and a sheep deciding what to eat for lunch.
Liberty is a well-armed sheep contesting the vote.
_______________________________________________
Imap-uw mailing list
Imap-uw@u.washington.edu
http://mailman2.u.washington.edu/mailman/listinfo/imap-uw

Reply via email to