Poczta: managesieve + avelsieve + TB Sieve = FAIL
Miał być wpis o tym, jak skonfigurować Postfixa z TSL i SASLem, plus Dovecot i SpamAssassin. Wpisu nie będzie, bo po głębszym zastanowieniu uznałem temat za w miarę prosty i łatwy do wyguglania, zaś moja konfiguracja nic ciekawego nie wnosi.
Będzie za to o server-side filtering, czyli sortowaniu poczty na serwerze.
W idealnym świecie sytuacja wygląda następująco – zamiast filtrować pocztę w kliencie pocztowym, filtruje się ją na serwerze. Dzięki temu niezależnie od metody dostępu (webmail, klient pocztowy) poczta jest zawsze posortowana. Oczywiście, dzięki .procmailrc i folderom IMAP było to możliwe Już Od Przed Wojny™, ale problemem był właśnie ów .procmailrc, czyli plik definicji procmaila, zawierający reguły sortowania. Po pierwsze, żeby go edytować, potrzebny jest dostęp do shella na serwerze i umiejętność edycji plików. Po drugie, konieczna jest znajomość składni .procmailrc, co też sprawy nie ułatwia.
Odpowiedzią świata na niefajność procmaila był SIEVE – język programowania filtrów pocztowych, niezależny od MTA. Niestety, przez długie lata SIEVE był obsługiwany tylko przez Cyrus IMAP, z którym dla jednego SIEVE nie chciało mi się walczyć. Tym razem jednak góra przyszła do Mahometa – twórcy Dovecota jakiś czas temu dopisali do niego obsługę SIEVE. :)
Do tej pory do sortowania poczty używałem procmaila. Żeby za każdym razem nie przypominać sobie, jaka była składnia, do edycji regułek używałem plugina w squirrelmailu. Było to umiarkowanie wygodne – z jednej strony rozwiązanie klikalne, ale z drugiej – trzeba się było logować do squirrelmaila za każdym razem, kiedy przyszła ochota na zmianę reguł sortowania poczty.
Założenie było proste – dzięki serwerowi SIEVE w dovecot’cie z jednej strony filtry można edytować w squirrelmailu (dzięki pluginowi avelsieve), a z drugiej można sobie je wygodnie wyklikać w Thunderbirdzie (plugin Sieve).
Włączenie serwera SIEVE w dovecot’cie jest tak proste, że już bardziej się nie da (i za to lubimy dovecota) – wystarczy dopisać “managesieve” do linijki “protocols”:
Włączenie pluginu avelsieve w squirrelmailu i Sieve w Thunderbirdzie również nie przedstawia żadnej trudności.
Szkoda tylko, że to wszystko razem nie działa. :(
Znaczy, technicznie działa, ale sensu w tym działaniu brak.
Po pierwsze, avelsieve wykorzystuje serwer SIEVE praktycznie tylko do przechowywania reguł, nie do ich egzekwowania. Polega to na tym, że do reguły SIEVE dodaje w komentarzu jakąś swoją radosną kaszę, co uniemożliwia edycję reguły w innym programie i tym samym przekreśla całą ideę SIEVE:
# This script has been automatically generated by avelsieve
# (Sieve Mail Filters Plugin for Squirrelmail)
# Warning: If you edit this manually, then the changes will not
# be reflected in the users' front-end!
#AVELSIEVE_VERSIONYTo0OntzOjU6Im1ham9yIjtpOjE7czo1OiJtaW5vciI7aTo5O3M6NzoicmVsZWFzZSI7aTo3O3M6Njoic3RyaW5nIjtzOjU6IjEuOS43Ijt9
#AVELSIEVE_CREATED1241646387
#AVELSIEVE_MODIFIED1241646387
require ["fileinto","envelope","reject","vacation","imapflags","relational","comparator-i;ascii-numeric","regex","notify"];
if
#START_SIEVE_RULEYTo0OntzOjQ6ImNvbmQiO2E6MTp7aTowO2E6NDp7czo0OiJ0eXBlIjtzOjY6ImhlYWRlciI7czo2OiJoZWFkZXIiO3M6NDoiRnJvbSI7czo5OiJtYXRjaHR5cGUiO3M6ODoiY29udGFpbnMiO3M6MTE6ImhlYWRlcm1hdGNoIjtzOjM6Im1laCI7fX1zOjQ6InR5cGUiO3M6MToiMSI7czo2OiJhY3Rpb24iO3M6MToiNSI7czo2OiJmb2xkZXIiO3M6NToiVHJhc2giO30%3DEND_SIEVE_RULE
header :contains "From" "meh"
{
fileinto "Trash";
}
Po drugie, plugin Sieve dla Thunderbirda wygląda na kpinę albo primaaprilisowy żart:
Tak, dobrze widzicie – to prosty edytor tekstowy z helpem z boku. :D Równie dobrze można sobie wyedytować regułki vimem, no może z tą różnicą, że w vimie można zrobić podświetlanie składni. :> Skoro korzystając z tego plugina i tak muszę się nauczyć składni SIEVE, to po co w ogóle z niego korzystać?
Jak widać z powyższego, korzystanie z SIEVE, przynajmniej przy użyciu squirrelmaila i Thunderbirda, w chwili obecnej nie ma większego sensu. Ale skoro doczekałem serwera SIEVE w dovecot’cie, to może i sensu doczekam?






