CONTENT
- CHANGES
Szukaj
#top Plugins zlib¶
Plugins / Zlib plugin - Access compressed mails
Dokumentacja Dovecot: Plugins / Zlib plugin (Dovecot 1.*) | Plugins / Zlib plugin (Dovecot 2.*)
Dovecot 1.*:
/etc/dovecot.conf
Dovecot 2.*:
/etc/dovecot/conf.d/15-lda.conf
/etc/dovecot/conf.d/20-imap.conf
/etc/dovecot/conf.d/90-plugin.conf
EXAMPLES
(Dovecot 1.*) Zmiany jakie należy wprowadzić w
/etc/dovecot.conf
:protocol imap { [...] mail_plugins = zlib [...] } [...] protocol lda { [...] mail_plugins = zlib [...] } [...] plugin { [...] # Enable these only if you want compression while saving: zlib_save_level = 9 # 1..9; default is 6 zlib_save = bz2 # or bz2, xz or lz4 }
(Dovecot 2.*) Zmiany jakie należy wprowadzić w
/etc/dovecot/conf.d/15-lda.conf
:protocol lda { [...] # Space separated list of plugins to load (default is global mail_plugins). #mail_plugins = $mail_plugins mail_plugins = $mail_plugins sieve zlib }
(Dovecot 2.*) Zmiany jakie należy wprowadzić w
/etc/dovecot/conf.d/20-imap.conf
:protocol imap { [...] # Space separated list of plugins to load (default is global mail_plugins). #mail_plugins = $mail_plugins mail_plugins = $mail_plugins autocreate zlib [...] }
(Dovecot 2.*) Zmiany jakie należy wprowadzić w
/etc/dovecot/conf.d/90-plugin.conf
:plugin { #setting_name = value # Enable these only if you want compression while saving: zlib_save_level = 9 # 1..9; default is 6 zlib_save = bz2 # gz or bz2, xz or lz4 }
Przy pomocy polecenia ls (w poniższym przykładzie został użyty alias dla tego polecenia z opcją listowania długiego)
ll /home/vmail/cen06x64.xen.wbcd.pl/sp/Maildir/cur/
total 8 -rw-------. 1 vmail vmail 765 2017-08-22 19:45 1503423922.M429P3091521.cen06x64.xen.wbcd.pl,S=765,W=784:2,S -rw-------. 1 vmail vmail 520 2017-08-22 19:48 1503424092.M908753P6405.cen06x64.xen.wbcd.pl,S=765,W=784:2,S
Przy pomocy polecenia file można wyświetlić jakiego typu zawartość zawiera plik:
file /home/vmail/cen06x64.xen.wbcd.pl/sp/Maildir/cur/*
/home/vmail/cen06x64.xen.wbcd.pl/sp/Maildir/cur/1503423922.M429P3091521.cen06x64.xen.wbcd.pl,S=765,W=784:2,S: smtp mail text /home/vmail/cen06x64.xen.wbcd.pl/sp/Maildir/cur/1503424092.M908753P6405.cen06x64.xen.wbcd.pl,S=765,W=784:2,S: bzip2 compressed data, block size = 900k
Dodatkowo przy użyciu narzędzia imapcmds można wyświetlić zawartość folderu INBOX, aby potwierdzić poprawną obsługę skompresowanych wiadomości. Należy zauważyć, że zgodnie z poniższym listingiem obydwie wiadomości są rozmiaru 784 Bajty. Wiadomość nie skompresowana zajmuje 765 Bajtów miejsca na dysku, natomiast wiadomość skompresowana zajmuje 520 Bajtów miejsca na dysku.
uid= 416 S date=2017/08/22 19:45:22 size= 784B subject=|Cron <nobody@cen06x64.xen.wbcd.pl> /usr/sbin/vnstat.cron| from=|root@cen06x64.xen.wbcd.pl (Cron Daemon)| to=|root@cen06x64.xen.wbcd.pl| uid= 417 S date=2017/08/22 19:45:22 size= 784B subject=|Cron <nobody@cen06x64.xen.wbcd.pl> /usr/sbin/vnstat.cron| from=|root@cen06x64.xen.wbcd.pl (Cron Daemon)| to=|root@cen06x64.xen.wbcd.pl|
Zgodnie z dokumentacją (Zlib plugin / Zlib plugin):
Zgodnie z dokumentacją (Zlib plugin / Maildir / Zlib plugin / Maildir):
UWAGA: przed wykonaniem kompresji wiadomości należy najpierw sprawdzić czy dana wiadomość nie została już wcześniej skompresowana,
w przeciwnym razie podwójna kompresja może uniemożliwić poprawny odczyt wiadomości:
Since v2.0+ Dovecot supports compression while saving mails (via LDA or IMAP APPEND command).Dla wersji Dovecot 1.* (do 2.0) Compression kompresja musi zostać wykonana manualnie, poprzez cykliczne wykonywanie kompresji poszczególnych wiadomości, które nie zostały jeszcze skompresowane.
Zgodnie z dokumentacją (Zlib plugin / Maildir / Zlib plugin / Maildir):
The compression is detected by reading the first few bytes from the file and figuring out if it's a valid gzip or bzip2 header. The file name doesn't matter. This means that an IMAP client can also try to exploit security holes in zlib/bzlib by writing specially crafted mails using IMAP's APPEND command. v1.2.5+ fixes this by not allowing clients to save mails that are detected as compressed.Dovecot poprzez odczyt kilku pierwszych bajtów wiadomości dokonuje sprawdzenia w jakim formacie kompresji została zapisana wiadomość (gzip,bzip2,plain text), nazwa pliku nie ma znaczenia. Toteż pliki w których Dovecot zapisuje poszczególne wiadomości nie posiadają rozszerzenia (suffix) .gz lub .bz2 (odpowiednio dla gzip lub bzi2).
UWAGA: przed wykonaniem kompresji wiadomości należy najpierw sprawdzić czy dana wiadomość nie została już wcześniej skompresowana,
w przeciwnym razie podwójna kompresja może uniemożliwić poprawny odczyt wiadomości:
tail -F /var/log/mail/mail.log
dovecot: imap(sp@cen06x64.xen.wbcd.pl): Error: FETCH [] for mailbox INBOX UID 416 got too little data: 523 vs 784 dovecot: imap(sp@cen06x64.xen.wbcd.pl): Error: Maildir filename has wrong W value: /home/vmail/cen06x64.xen.wbcd.pl/sp/Maildir/cur/1503423922.M429P3091521.cen06x64.xen.wbcd.pl,S=765,W=784:2,S dovecot: imap(sp@cen06x64.xen.wbcd.pl): Error: Corrupted index cache file /home/vmail/cen06x64.xen.wbcd.pl/sp/Maildir/dovecot.index.cache: Broken virtual size for mail UID 416 dovecot: imap(sp@cen06x64.xen.wbcd.pl): Disconnected: FETCH failed bytes=48/1203
Script to find and bzip2 not compressed messages:
time find /home/vmail/cen06x64.xen.wbcd.pl/sp/Maildir/ -type f | grep -E "/new/|/cur/" | while read name;do LANG=C file $name | grep -q 'compressed data'; result=$?; if [ $result -eq 1 ];then time bzip2 --best $name; mv -v $name.bz2 $name; fi; done
Zmodyfikowany ostatnio: 2018/01/01 16:08:01 (7 lat temu),
textsize: 43,5 kB,
htmlsize: 8,27 kB
Zapraszam do komentowania, zgłaszania sugestii, propozycji, własnych przykładów, ...
Dodaj komentarzKomentarze użytkowników