Dale Gallagher
2012-Dec-12 09:00 UTC
[Dovecot] Manually creating dovecot- files after isync/mbsync mirror
Hi everyone I'm using isync 1.0.5 patched to do recursive folder listing and mirroring mail from an external party's IMAP server to a local Maildir, which will be accessed by Dovecot 2.0.9. In order to prevent IMAP clients from re-downloading their mail, when connecting to Dovecot, I'm busy writing a script to generate appropriate dovecot-uidlist and dovecot-uidvalidity files, per Maildir. isync stores the uid in the filename, so that's extractable, per message, and the uidvalidity and current max uid are stored in a file .uidvalidity, in each Maildir. I've read the docs here: http://wiki2.dovecot.org/MailboxFormat/Maildir Regarding the dovecot-uidlist header (first line) - I've tried to search for and figure out what exactly is meant by the "mailbox global uid" and once I do, how to manually generate the 128 bit hex variation of it? Could someone elaborate on this, please. How would omitting the global uid field, beginning with G, affect remote clients' syncing of mail? Is this field mandatory? I also see that Dovecot's uidvalidity is of the form 4df8a4e2, whereas isync uses an integer. I'd appreciate it if someone could elaborate on what Dovecot uses and whether I can convert one to the other? I'll post the full solution, once complete, and working. Thanks. Dale
Timo Sirainen
2012-Dec-18 19:52 UTC
[Dovecot] Manually creating dovecot- files after isync/mbsync mirror
On Wed, 2012-12-12 at 11:00 +0200, Dale Gallagher wrote:> Hi everyone > > I'm using isync 1.0.5 patched to do recursive folder listing and mirroring > mail from an external party's IMAP server to a local Maildir, which will be > accessed by Dovecot 2.0.9. > > In order to prevent IMAP clients from re-downloading their mail, when > connecting to Dovecot, I'm busy writing a script to generate appropriate > dovecot-uidlist and dovecot-uidvalidity files, per Maildir. > > isync stores the uid in the filename, so that's extractable, per message, > and the uidvalidity and current max uid are stored in a file .uidvalidity, > in each Maildir. > > I've read the docs here: http://wiki2.dovecot.org/MailboxFormat/Maildir > > Regarding the dovecot-uidlist header (first line) - I've tried to search > for and figure out what exactly is meant by the "mailbox global uid" and > once I do, how to manually generate the 128 bit hex variation of it? Could > someone elaborate on this, please. > > How would omitting the global uid field, beginning with G, affect remote > clients' syncing of mail? Is this field mandatory?Not necessary. Dovecot will add it later if needed.> I also see that Dovecot's uidvalidity is of the form 4df8a4e2, whereas > isync uses an integer. I'd appreciate it if someone could elaborate on what > Dovecot uses and whether I can convert one to the other?dovecot-uidlist file isn't directly visible to IMAP client. The UIDVALIDITY is converted between hex and decimals as necessary.