Hi Aaron,
> Wait, scratch that one moment, there was one thing I was worried about, INBOX.
> In db.c and in imapcommand.c, there are a couple of str[n?]casecmp's with
> "INBOX" and "inbox" as the parameters.
>
> Thomas, try using your patch and creating a mailbox called "Inbox" and "inbox"
> and see what happens. Does it fail? Does it show the same contents as "INBOX"
> does it explode DBMail badly?
I prefer not to explode dbmail that's why I checked the code where
something happens with the INBOX :-)
I only found 3 lines of code that are relevant:
716:imapcommands.c
if (strcasecmp(chunks[0], "inbox") == 0)
strcpy(chunks[0], "INBOX"); /* make inbox uppercase */
885:imapcommands.c
/* check if there is an attempt to delete inbox */
if (strcasecmp(args[0], "inbox") == 0) {
1083:imapcommands.c
/* check if it is INBOX to be renamed */
if (strcasecmp(args[0], "inbox") == 0) {
If we leave everything as it is only INBOX is allowed, if we remove line
716 and use strcmp with INBOX for the others we allow INBOX and
mailboxes like Inbox.
I did a quick test: I inserted 'inbox' into the database. Evolution now
shows 'INBOX' and 'inbox' where 'inbox' has the content of 'INBOX'. If I
delete a mail in one box it's deleted in the other one too. New messages
are always inserted into mailbox_idnr of INBOX.
I have missed a case insensitive comparison but I can't find it at the
moment :-(
> Does the RFC say if "Inbox" would be different than "INBOX" with respect to
> message delivery? What does Cyrus do?
In Cyrus a mail folder is a folder on the disc. My 'INBOX' is:
/var/spool/cyrus/mail/t/user/thomas/
If I create mail folder 'test' it's:
/var/spool/cyrus/mail/t/user/thomas/test/
That's why Cyrus only allows subfolders below INBOX/... and the name
'INBOX' is hardcoded.
Thomas
--
http://www.tmueller.com for pgp key (95702B3B)