Hi!
First a little background:
I'm thinking of compressing my Maildir's using dovecot's zlib
support, and have run into a couple of problems.
First of all, my files use the following formats:
1. 1260386673.000002.mbox:2,S
2. 1304920966.M241434P17342.mail,W=3152:2,S
As you can see, both lack the S=<size> "basename flag", but the
latter does have W=.
Reading http://wiki.dovecot.org/Plugins/Zlib, I get the impression that I really
need S= in the filenames (".. otherwise there will be problems with quota
calculation as well as other potential random failures.").
I have made a script that compresses my files, adds S=<size> if it's
missing (using wc -c before gzip), and appends the Z flag. As I understand it,
adding S=<size> will change the UID of the email, while appending Z
won't.
Now for my questions:
1. How crucial is it to have the S= in the basename when using zlib?
The wiki page mentions quota problems, which we're not using, but also
"random failures"...
2. Would W= suffice in this regard?
I.e. would I be able to compress files of the latter format safely, without
adding S= (only appending the Z flag)?
3. If S=<size> *is* needed, is there a way to minimize the effect from the
mail client's perspective?
From my testruns, it seems Mutt have no problems after I rename the basename,
but Thunderbird will refetch the emails, and not delete the old ones, showing
duplicate emails.
Refetching emails is not a big problem, I think, but only if the email clients
understand that the old ones doesn't exist anymore.
And if anyone has ideas on how to convert to using zlib without the users
knowing, I would be glad to hear it!
--
Helge Milde
www.monsternett.no
Timo Sirainen
2011-May-09 17:49 UTC
[Dovecot] Renaming maildir files, UIDs and mail clients
On Mon, 2011-05-09 at 09:44 +0200, Helge Milde wrote:> Now for my questions: > 1. How crucial is it to have the S= in the basename when using zlib? > The wiki page mentions quota problems, which we're not using, but also "random failures"...I'm not entirely sure if there is something in the code that relies on it being correct.> 2. Would W= suffice in this regard?No.> 3. If S=<size> *is* needed, is there a way to minimize the effect from the mail client's perspective?Yes. Add the ,S=<size> to the dovecot-uidlist files as well, so the UID doesn't change. If you're using POP3 with UIDLs based on filename you can also add POP3 UIDLs to dovecot-uidlist with new enough Dovecot versions.