>Почитав про Sieve понял, что нужно написать отдельный скрипт примерно такого вида:
>
>require "fileinto";
>if header :contains ["subject"] ["*****SPAM*****"] {
>
> fileinto "INBOX.Junk";}
>
>
>Но вот куда его добавить чтобы он заработал я вообще не понимаю.
>Объясните пожалуйста... Довекот имеет дефолтное сито, которое применяется при вызове ЛДА. В конфиге это выглядит так:
protocol lda {
....
mail_plugins = quota sieve
mail_plugin_dir = /usr/local/lib/dovecot/lda
sieve_global_path = /usr/local/etc/dovecot/spam.sieve // - вот это путь к глобальному ситу
....
}
Имейте в виду, что при обращении ЛДА к ситу, оно компилируется в байт-код, в файл с именем spam.svbin - поэтому на папку /usr/local/etc/dovecot/ должны быть установлены права, разрешающие ЛДА туда писать.
Из-за того, что существуют пользовательские сита, нужно добавить строки в раздел плагинов:
plugin {
....
sieve_global_path = /usr/local/etc/dovecot/spam.sieve
sieve_global_dir = /usr/local/etc/dovecot
sieve_dir = /var/mail/%n
sieve = /var/mail/%n/.dovecot.sieve
....
}
Я пока в процессе выяснения, как заставить довекот-ЛДА отрабатывать ОБА сита - и глобальное, и пользовательское. Сейчас у меня ЛДА если обнаруживает пользовательское сито, сформированное через managesieve, то выполняет ТОЛЬКО его. А если не обнаруживает - то глобальное. В глобальном у меня прописано только перенос письма с моим хедером в пользовательскую папку "Спам":
/usr/local/etc/dovecot/spam.sieve
--------8<---------------------
require "fileinto";
if exists "X-Spam-Ooops"
{
fileinto "Junk";
}
--------8<---------------------
Пользователи, строящие свой сортировщик писем, уведомлены о необходимости добавить вручную правило выноса спама по хедеру в соотв. папку.