Changing the name of a compressed file

Peter West lists at pbw.id.au
Sat Jun 10 12:51:36 EEST 2017


Well spotted.

In my first attempt, the configuration I originally posted was at the end of my dovecot.conf file, and I was not including the conf.d configuration files. Preceding that was my lmtp protocol cong.

protocol lmtp {
  postmaster_address = postmaster
  # Space separated list of plugins to load (default is global mail_plugins).
  mail_plugins = $mail_plugins sieve
}

>>>> 
>>>> mail_plugins = $mail_plugins zlib
>>>> 
>>>> plugin {
>>>>   zlib_save_level = 6
>>>>   zlib_save = xz
>>>> }
>>>> 


The doveconf -n associated with this is as follows:

01	# 2.2.22 (fe789d2): /etc/dovecot/dovecot.conf
02	# Pigeonhole version 0.4.13 (7b14904)
03	# OS: Linux 4.9.15-x86_64-linode81 x86_64 Ubuntu 16.04.2 LTS
04	auth_mechanisms = plain login
05	log_timestamp = "%Y-%m-%d %H:%M:%S "
06	mail_gid = vmail
07	mail_home = maildir:/var/vmail/%d/%n
08	mail_location = maildir:~/Maildir
09
10	mail_privileged_group = vmail
11	mail_uid = vmail
12	managesieve_notify_capability = mailto
13	managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave
14	namespace inbox {
15	  inbox = yes
16	  location =
17	  mailbox Archive {
18	    auto = subscribe
19	    special_use = \Archive
20	  }
21	  mailbox Drafts {
22	    auto = subscribe
23	    special_use = \Drafts
24	  }
25	  mailbox Sent {
26	    auto = subscribe
27	    special_use = \Sent
28	  }
29	  mailbox Spam {
30	    auto = subscribe
31	    special_use = \Junk
32	  }
33	  mailbox Trash {
34	    auto = subscribe
35	    special_use = \Trash
36	  }
37	  prefix =
38	}
39	passdb {
40	  args = /etc/dovecot/dovecot-sql.conf.ext
41	  driver = sql
42	}
43	plugin {
44	  sieve = ~/.dovecot.sieve
45	  sieve_dir = ~/sieve
46	  zlib_save = bz2
47	  zlib_save_level = 6
48	}
49	protocols = " imap lmtp sieve"
50	service auth {
51	  unix_listener /var/spool/postfix/private/dovecot-auth {
52	    group = postfix
53	    mode = 0660
54	    user = postfix
55	  }
56	  user = root
57	}
58	service lmtp {
59	  unix_listener /var/spool/postfix/private/dovecot-lmtp {
60	    group = postfix
61	    mode = 0600
62	    user = postfix
63	  }
64	}
65	ssl_ca = </etc/ssl/repeal18c.today/fullchain.pem
66	ssl_cert = </etc/ssl/repeal18c.today/cert.pem
67	ssl_cipher_list = ALL:!LOW:!SSLv2:!aNULL:!ADH:!eNULL:!EXP:RC4+RSA:+HIGH:+MEDIUM
68	ssl_key = </etc/ssl/repeal18c.today/privkey.pem
69	userdb {
70	  args = /etc/dovecot/dovecot-sql.conf.ext
71	  driver = sql
72	}
73	protocol imap {
74	  imap_client_workarounds = delay-newmail
75	  mail_max_userip_connections = 100
76	}
77	protocol lmtp {
78	  mail_plugins = " sieve zlib"
79	  postmaster_address = postmaster
80	}


(The blank line at 09 I have inserted.)

Note the mail_plugins for protocol lmtp at 77.

I changed the protocol lmtp settings in dovecot.conf as follows:

protocol lmtp {
  postmaster_address = postmaster
  mail_plugins = $mail_plugins sieve zlib
}

and I removed this line:

>>>> mail_plugins = $mail_plugins zlib

The resulting doveconf -n is:

01	# 2.2.22 (fe789d2): /etc/dovecot/dovecot.conf
02	# Pigeonhole version 0.4.13 (7b14904)
03	# OS: Linux 4.9.15-x86_64-linode81 x86_64 Ubuntu 16.04.2 LTS
04	auth_mechanisms = plain login
05	log_timestamp = "%Y-%m-%d %H:%M:%S "
06	mail_gid = vmail
07	mail_home = maildir:/var/vmail/%d/%n
08	mail_location = maildir:~/Maildir
09	mail_plugins = " zlib"
10	mail_privileged_group = vmail
11	mail_uid = vmail
12	managesieve_notify_capability = mailto
13	managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave
14	namespace inbox {
15	  inbox = yes
16	  location =
17	  mailbox Archive {
18	    auto = subscribe
19	    special_use = \Archive
20	  }
21	  mailbox Drafts {
22	    auto = subscribe
23	    special_use = \Drafts
24	  }
25	  mailbox Sent {
26	    auto = subscribe
27	    special_use = \Sent
28	  }
29	  mailbox Spam {
30	    auto = subscribe
31	    special_use = \Junk
32	  }
33	  mailbox Trash {
34	    auto = subscribe
35	    special_use = \Trash
36	  }
37	  prefix =
38	}
39	passdb {
40	  args = /etc/dovecot/dovecot-sql.conf.ext
41	  driver = sql
42	}
43	plugin {
44	  sieve = ~/.dovecot.sieve
45	  sieve_dir = ~/sieve
46	  zlib_save = bz2
47	  zlib_save_level = 6
48	}
49	protocols = " imap lmtp sieve"
50	service auth {
51	  unix_listener /var/spool/postfix/private/dovecot-auth {
52	    group = postfix
53	    mode = 0660
54	    user = postfix
55	  }
56	  user = root
57	}
58	service lmtp {
59	  unix_listener /var/spool/postfix/private/dovecot-lmtp {
60	    group = postfix
61	    mode = 0600
62	    user = postfix
63	  }
64	}
65	ssl_ca = </etc/ssl/repeal18c.today/fullchain.pem
66	ssl_cert = </etc/ssl/repeal18c.today/cert.pem
67	ssl_cipher_list = ALL:!LOW:!SSLv2:!aNULL:!ADH:!eNULL:!EXP:RC4+RSA:+HIGH:+MEDIUM
68	ssl_key = </etc/ssl/repeal18c.today/privkey.pem
69	userdb {
70	  args = /etc/dovecot/dovecot-sql.conf.ext
71	  driver = sql
72	}
73	protocol imap {
74	  imap_client_workarounds = delay-newmail
75	  mail_max_userip_connections = 100
76	}
77	protocol lmtp {
78	  mail_plugins = " sieve"
79	  postmaster_address = postmaster
80	}

Note line 09, and the modified value of mail_plugins at 78.  These are the only changes in doveconf -n.

The result is a reversal of the previous situation.

Received messages in /var/vmail/<host>/<username>/cur are compressed;
sent messages in /var/vmail/<host>/<username>/.Sent/cur are not compressed.

I assume that I need both specifications.
--
Peter West
pbw at pbw.id.au
And the great throng heard him gladly.


> On 10 Jun 2017, at 6:50 pm, Aki Tuomi <aki.tuomi at dovecot.fi> wrote:
> 
> Please check that you are not overwriting mail plugins for lmtp. Or post your doveconf -n.
> 
> Aki
> 
>> On June 10, 2017 at 11:10 AM Peter West <lists at pbw.id.au> wrote:
>> 
>> 
>> Not sure what you mean. I’m using lmtp to send messages to Dovecot from Postfix.
>> 
>>> On 10 Jun 2017, at 6:08 pm, Aki Tuomi <aki.tuomi at dovecot.fi> wrote:
>>> 
>>> What's your LDA?
>>> 
>>> Aki
>>> 
>>>> On June 10, 2017 at 11:01 AM Peter West <lists at pbw.id.au> wrote:
>>>> 
>>>> 
>>>> 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 at dovecot.fi> wrote:
>>>>> 
>>>>> 
>>>>>> On June 10, 2017 at 5:58 AM Peter West <lists at 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 at 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
>>>> 
>> 




-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 235 bytes
Desc: Message signed with OpenPGP
URL: <http://dovecot.org/pipermail/dovecot/attachments/20170610/5c3de469/attachment.sig>


More information about the dovecot mailing list