Wcześniej opisałem jak się pozbyć komunikatu
lmtpunix[1000]: IOERROR: fstating sieve script /var/lib/imap/sieve/u/user/defaultbc: No such file or directory
za pomocą RoundCubeMail z odpowiednią wtyczką. Jednak to rozwiązanie jest dla pojedynczych użytkowników. Rozwiązanie globalne jest następujące.
Trzeba przygotować zwykły plik tekstowy z zawartością np.:
/* empty script */
ważne, żeby był poprawnym skryptem Sieve. Niech się nazywa pusty.sieve. Następnie uruchamiamy konsolę, tu z domyślnym użytkownikiem cyrus:
sieveshell -u cyrus -a cyrus localhost
i wydajemy polecenie załadowania skryptu na serwer oraz ustawiamy go aktywnym:
> put pusty.sieve globalny > activate globalny
dla pewności można to sprawdzić:
> list globalny <- active script
teraz można już wyjść z powłoki (poleceniem quit).
Wykonane zmiany widać również w systemie plikowym:
# ls -l /var/lib/imap/sieve/global/ total 8 lrwxrwxrwx 1 cyrus mail 11 Apr 14 2013 defaultbc -> globalny.bc -rw------- 1 cyrus mail 20 Apr 14 2013 globalny.bc -rw------- 1 cyrus mail 18 Apr 14 2013 globalny.script
Oczywiście nic nie stoi na przeszkodzie, żeby globalny plik nie był pusty, tylko wykonywał jakąś akcję.
Trzeba także zapewnić wpis w /etc/cyrus.conf w sekcji SERVICES wyglądający jakoś tak:
sieve cmd="timsieved" listen="sieve" prefork=0
czy działa najłatwiej sprawdzić sprawdzając czy cyrus-master słucha na porcie 4190:
# netstat -ntlp | grep 4190 tcp 0 0 0.0.0.0:4190 0.0.0.0:* LISTEN 1443/cyrus-master
jak widać u mnie słucha.
Po tym jak dorobiłem przycisk spam do Roundcube'a mogłem się łatwo pozbywać niechcianej poczty, ale ona cały czas zalegała w katalogu Junk. Przydało by się, żeby spam był kasowany po pewnym czasie. Do tego służy polecenie cyr_expire i parametr expire.
Najpierw sprawdziłem stan aktualny. Wydałem więc polecenie:
localhost> info user/jaqb/Junk {user/jaqb/Junk}: condstore: false duplicatedeliver: false lastpop: lastupdate: 14-Oct-2013 21:29:32 +0200 partition: default pop3newuidl: true sharedseen: false size: 3451803
teraz ustawiam kasowanie na 60 dni
localhost> mboxcfg user/jaqb/Junk expire 60
jak widać poniżej pojawił się nowy parametr
localhost> info user/jaqb/Junk {user/jaqb/Junk}: condstore: false duplicatedeliver: false expire: 60 lastpop: lastupdate: 14-Oct-2013 21:29:32 +0200 partition: default pop3newuidl: true sharedseen: false size: 3451803
teraz trzeba sprawdzić, czy w pliku /etc/cyrus.conf jest wpis:
delprune cmd="cyr_expire -E 3" at=0400
oczywiście można zmienić godzinę z 4:00 na jakąś inną.
Nowy dzień przywitał mnie oczyszczoną skrzynką.
SQUAT jest to system indeksowania poczty by wyszukiwanie wiadomości trwało szybciej - w sumie fajna sprawa, ale...
Serwer poczty oparty na Cyrus IMAP po zainstalowaniu krzyczał w logu, że:
SQUAT failed to open index file SQUAT failed
naprawienie tego jest dość proste w pliku /etc/cyrus.conf w sekcji EVENTS dopisujemy dwie linijki:
squat cmd="squatter -r *" period=60 squat cmd="squatter -r *@*" period=60
które mówią, żeby serwer co 60 min poleceniem squatter przebudował indeksy.
Przy większych systemach trzeba by pewnie pomyśleć o wydajności i użyć przełączników -s lub/i -i.
Add comment