Home / Community / Blog

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.

Just my blog...

Mon Tue Wed Thu Fri Sat Sun
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31