Добавить фильтр для домена в сито

Как настроить фильтр для домена в 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сито.

Другие вопросы по тегам