Как я могу настроить фильтр по доменам в sieve / dovecot?
В документации я вижу настройку для каждого пользователя: sieve = ~ / .dovecot.sieve, а сейчас я использую глобальный фильтр: sieve_before = / etc / dovecot / sieve / global. Однако я хотел бы иметь возможность настраивать фильтры для каждого домена.
Короче - нельзя.
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
сито.