[Dovecot] case (non-)sensitivity for folder names

Phil Howard ttiphil at gmail.com
Wed Jan 5 23:04:51 EET 2011


On Wed, Jan 5, 2011 at 13:20, Timo Sirainen <tss at iki.fi> wrote:
> On 5.1.2011, at 19.33, Phil Howard wrote:
>
>> On Wed, Jan 5, 2011 at 12:05, Timo Sirainen <tss at iki.fi> wrote:
>>> On Wed, 2011-01-05 at 10:09 -0500, Phil Howard wrote:
>>>> Is IMAP supposed to be case sensitive or case in-sensitive?
>>>
>>> Case sensitive, except for INBOX. (Or if the server is using
>>> case-insensitive filesystem then they're case-insensitive.)
>>
>> So what will Dovecot do when both directories exist:  .INBOX.Spam and
>> .INBOX.spam
>
> Same as if they were called .INBOX.Spam and .INBOX.HelloWorld. They are two completely different mailboxes.

But if for INBOX names are case IN-sensitive, then there will be
confusion because anything obeying that concept would see "Inbox >>
spam" and "Inbox >> Spam" as being the same box.

There are different ways to deal with case IN-sensitive name matching.
 A lame way is to translate all names to a specific case and do a
lookup at the OS layer (which on Unix is case sensitive, so which name
is found, if any, depends on how the case-ify is done).  A somewhat
smarter way is to scan the list of names and case-ify each, and
compare that the case-ified search name (where they are case-ified the
same way, example always upper, or maybe always lower).  When a match
is found, that leaves two alternatives: either stop there and use that
name (which means which is used depends on the order names were
obtained), or continue for more.  If continuing for more and more are
found, are they merged is the next question.  The logic can get more
convoluted with this.

The behavior I have seen, through Evolution (I just installed
Thunderbird and will be trying that in a while), is that when I had 3
existing, "foo", "Foo", and "FOO", all under inbox (seen as ".INBOX"
on the server, and as "Inbox" in the client), there were various
situations of getting things mixed up among them as if accessing one
would really access another, though it was unclear which.  But I
definitely ran into the case where when I had ONE message in each of
"foo", "Foo" and "FOO", and deleted the message in "foo" only, it
deleted one message in all three, but left the new message count on
"FOO" as "(1)" even though it showed now messages.

The subfolders are definitely NOT kept completely distinct.  It's as
if some software was merging them, and some was not.  Since all 3 did
show up, clearly Dovecot did not merge them to LIST them to the
client.

My boss was using Apple Mail, then tried Thunderbird, and similar
effects are happening.  I'm wanting to believe that IMAP is just so
poorly defined that everyone is doing things just a bit differently,
and enough to sort of work, but mess things up.

-- 
sHiFt HaPpEnS!


More information about the dovecot mailing list