On Fri, 2005-04-15 at 15:31 +1000, Emmett Lazich wrote: > Timo or anyone, > > This may be a bug or maybe a design decision. Either way I am curious > to hear comments. > > Why do the dovecot-0.99.14 server's .imap.index files contain a cached > copy of each message's date and time as supplied by the filesystem, as > opposed to the date and time found in each message header? There are two dates with IMAP. INTERNALDATE is one and Date-header of the message is another. The filesystem timestamp that you see cached in .imap.index.data file is the INTERNALDATE. The message's Date-header is also cached in the beginning of ENVELOPE data. > When testing various imap clients (eg. tbird-1.0.2, evolution-2.0, > outlook2003, squirrelmail-1.4.4) I was intrigued by the behaviour of > message date sorting. I toggled on/off the use of server side SORTing > in some imap clients, then started forcing rebuilds of .map.index > files, and eventually came to the above conclusion. Server side sorting supports sorting based on both INTERNALDATE ("ARRIVAL") and Date-header ("DATE"). It's client's choice which one it wants to use. > For normal dovecot server side processing, this condition (if I am > correct) may not be a problem, but if someone was to deposit a bunch > of maildir files firstly into an imap account (bypassing dovecot), and > if this person (eg. me) did not preserve the filesystem/inode file > attributes. Then dovecot appears to cache the "wrong" data. What > happens then is that some imap clients can display wrong date+times in > the message lists, and some imap clients find that server side SORTing > does not work. It all works correctly from Dovecot's point of view, because the messages arrived in the mailbox at that time..