Thanks for that Aki.
Follow-up question. I tried to initiate compression by adding
mail_plugins = $mail_plugins zlib
plugin { zlib_save_level = 6 zlib_save = xz }
to dovecot.conf. I restarted dovecot and sent one message to the server, and one message from the server. Neither was compressed. I changed the save type to
zlib_save = bz2
and repeated. This time the message received (in /var/vmail/<host>/<username>/cur) was not compressed, but the message in /var/vmail/<host>/<username>/.Sent/cur was bzip2 compressed.
Why is the received mail not being compressed? Is this the point of the discussion about compressing old mails?
On 10 Jun 2017, at 4:43 pm, Aki Tuomi aki.tuomi@dovecot.fi wrote:
On June 10, 2017 at 5:58 AM Peter West lists@pbw.id.au wrote:
Concerning Maildir, the wiki page on compression has this:
All mails must have ,S=<size> in their filename where <size> contains the original uncompressed mail size, otherwise there will be problems with quota calculation as well as other potential random failures. Note that if the filename doesn’t contain the ,S=<size> before compression, adding it afterwards changes the base filename and thus the message UID. The safest thing to do is simply to not compress such files.
Further down on the same page is this:
If the file does exist, rename() (mv) the compressed file over the original file. • Dovecot can now read the file, but to avoid compressing it again on the next run, you'll probably want to rename it again to include e.g. a "Z" flag in the file name to mark that it was compressed (e.g. 1223212411.M907959P17184.host,S=3271:2,SZ).
These comments seem to contradict each. Or is there a difference between adding the size specifier to the filename and adding a Z flag to the end of the file name?
-- Peter West pbw@pbw.id.au And the great throng heard him gladly.
Keyword is 'base filename'. From the wiki, "The standard filename definition is: "<base filename>:2,<flags>".". Z is a flag.
Aki