В портах, согласно UPDATING, убрали версии с индексом 2 и оставили только такую
/usr/ports/mail/dovecot-pigeonhole make install clean
дописываем (у меня *.conf одним файлом)
ee /usr/local/etc/dovecot/dovecot.conf
protocols = imap pop3 lmtp sieve
в секции services
service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { user = postfix mode = 0660 group = postfix } } service managesieve-login { inet_listener sieve { port = 4190 } process_min_avail = 0 service_count = 1 vsz_limit = 64M } service managesieve { process_limit = 1024 }
В секции protocol
protocol lmtp {
mail_plugins = $mail_plugins sieve
}
protocol lda {
mail_plugins = $mail_plugins sieve
}
protocol imap {
mail_max_userip_connections = 10
mail_plugins = $mail_plugins imap_sieve
}
protocol sieve {
managesieve_max_line_length = 65536
mail_max_userip_connections = 10
managesieve_logout_format = bytes=%i/%o
managesieve_implementation_string = Cyrus timsieved v2.2.13
managesieve_sieve_capability =
managesieve_notify_capability =
managesieve_max_compile_errors = 5
}
В protocol imap дописываем
mail_plugins = $mail_plugins imap_sieve
В секцию plugin
plugin { sieve_plugins = sieve_imapsieve sieve = /var/vmail/%d/%n/.dovecot.sieve sieve_before = /usr/local/etc/dovecot/sieve/spam.sieve sieve_dir = /var/vmail/%d/%n/.dovecot.sieve sieve_default = /usr/local/etc/dovecot/sieve/default.sieve sieve_global = /usr/local/etc/dovecot/sieve/global/ sieve_global_path = /usr/local/etc/dovecot/sieve/global/spam.sieve sieve_execute_bin_dir = /usr/lib/dovecot/sieve-execute sieve_execute_socket_dir = sieve-execute sieve_filter_bin_dir = /usr/lib/dovecot/sieve-filter sieve_filter_socket_dir = sieve-filter #sieve_default_name = roundcube sieve_max_actions = 32 sieve_max_redirects = 8 sieve_max_script_size = 1M sieve_pipe_bin_dir = /usr/lib/dovecot/sieve-pipe sieve_pipe_socket_dir = sieve-pipe sieve_quota_max_scripts = 30 }
Далее создаем директорию
mkdir /usr/local/etc/dovecot/sieve/global
Затем создаем скрипт с таким содержанием
ee spam.sieve
require ["regex", "fileinto", "imap4flags"]; # rule:[SPAM] if allof (header :contains "subject" "***Spam*** ") { setflag "\\Seen"; fileinto "Junk"; stop; }
chmod 0750 spam.sieve chown nobody spam.sieve
И компилируем
sievec spam.sieve
Добавим поддержку в Roundcube и добавим roundcube-markasjunk2 (чтобы из браузера в спам кидать)
/usr/ports/mail/roundcube-markasjunk2 make install clean
cd /usr/local/www/roundcube/plugins/markasjunk2 cp config.inc.dist config.inc.php
Далее
cd /usr/local/www/roundcube/plugins/managesieve cp config.inc.dist config.inc.php
Нужно немного поправить
ee config.inc.php
$config['managesieve_port'] = 4190; $config['managesieve_auth_type'] = PLAIN; $config['managesieve_default'] = '/usr/local/etc/dovecot/sieve/global';
Теперь подключим плагины в roundcube – в самом низу дописываем в секции плагины
ee /usr/local/www/roundcube/config/config.inc.php
$config['plugins'] = array(
'additional_message_headers', 'managesieve', 'markasjunk2'
);
Проверка.
Шлем себе на ящик письмо с таким содержанием
XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
Подключаемся по IMAP и видим, что письмо, опознанное Spamassassin-ом как 100% спам, было перемещено в папку Junk.