Добавить фильтр для домена в сито
Как настроить фильтр для домена в sieve/dovecot?
В документации я вижу настройки для каждого пользователя: sieve = ~/.dovecot.sieve, и сейчас я использую глобальный фильтр: sieve_before = /etc/dovecot/sieve/global . Однако я хотел бы иметь возможность устанавливать фильтры для каждого домена.
1 ответ
Короче говоря - вы не можете.
Dovecot допускает только глобальные и индивидуальные сита.
before/default/after
сита являются глобальными и применяются к каждому сообщению. Если вы уверены, что хотите обрабатывать все сообщения одинаково, вам необходимо настроить sieve_before
фильтр, а не default
, Но здесь есть не очень хорошо объясненная ловушка.
sieve_before
может состоять из ряда правил. Будет применено первое согласованное правило, и обработка сита будет остановлена. Если вы хотите, чтобы передать сообщение user
Сито для дополнительной фильтрации вы должны добавить глагол keep
до конца конкретного правила.
require "fileinto";
# rule:[some_domain]
if header :contains "From" "some.domain.tld"
{
fileinto "some_domain_tld";
keep;
}
elseif . . . . .
{
. . . . .
keep;
}
else
{
keep;
}
Если keep
глагол опущен, тогда ситовый движок будет рассматривать это как неявный глагол stop
и сообщение не будет передано user
сито.