[Dovecot] Dovecot deliver uidlist issues
Hi all,
Lets say I have a maildir which doesn't contain any dovecot files but has some emails lying around in it. If I add a message to this mailbox using deliver, dovecot creates the uidlist file with a single entry (the message that was just delivered). When I then log in to the mailbox, all the other messages are added into the uidlist file in the normal order (directory list order I believe). Then, the mailbox is in a situation where anything that was delivered into the mailbox before the user logs in is at the very top of a uidlist. Unfortunately many webmail clients seem to order the mailbox by reverse uidl, so we get the situation where people log into webmail (we use @mail) after their mailboxes have been migrated to dovecot and any messages delivered between the time of migration and the time of login are put to the very end of the list. This could presumably be fixed by ordering the mailbox according to date but certainly @mail doesn't really do this very well.
I've only tested this on v1.1 (1.1.17 from atrpms), but I didn't see anything in the changelog to indicate that this deliver behaviour has changed in v1.2.
Perhaps there should be a deliver option to recreate the uidlist file by doing a full scan if it doesn't exist (as a login via pop/imap would do), although I'm not sure why this shouldn't be the default? (apart from deliever potentially causing a high amount of io). My current work-around is to use postlogin to remove the uidlist file when someone logs in to the mailbox for the first time which then forces it to be created in the correct order; but this is a very messy solution.
Thanks,
Mark
-- Mark Zealey -- Platform Architect Product Development * Webfusion 123-reg.co.uk, webfusion.co.uk, donhost.co.uk, supanames.co.uk
This mail is subject to http://www.gxn.net/disclaimer
On Thu, 2009-08-06 at 11:14 +0100, Mark Zealey wrote:
Hi all,
Lets say I have a maildir which doesn't contain any dovecot files but has some emails lying around in it. If I add a message to this mailbox using deliver, dovecot creates the uidlist file with a single entry (the message that was just delivered). When I then log in to the mailbox, all the other messages are added into the uidlist file in the normal order (directory list order I believe). Then, the mailbox is in a situation where anything that was delivered into the mailbox before the user logs in is at the very top of a uidlist.
This has been in my TODO for a while:
- deliver+maildir: if new mails are in new/ or cur/ they're not added to dovecot-uidlist but newly saved mails are, so UIDs will be in wrong order
But looks like it was easy to fix now: http://hg.dovecot.org/dovecot-1.2/rev/d7251058200c
participants (2)
-
Mark Zealey
-
Timo Sirainen