Exim, настройка фильтров.
У exim’a, есть мощная система, способная заменить и sieve и procmail. В отличие от упомянутых почтовых фильтров, фильтр эксима имеет более «человеческий» синтаксис, чем сразу и подкупает.
Для того что бы включить поддержку, достаточно раскомментировать строку allow_filter в стандартном роутере userforward. Выглядеть он теперь будет так:
userforward: driver = redirect check_local_user file = $home/.forward no_verify no_expn check_ancestor #Строку, находящуюся ниже мы и раскомментировали allow_filter file_transport = address_file pipe_transport = address_pipe reply_transport = address_reply condition = ${if exists{$home/.forward} {yes} {no} }
После того, как рестартанем exim, можно настроить фильтр, создадим у себя в домашнем каталоге файл .forward. Если мы создаем exim filter, он обязательно должен начинаться со строки «# Exim filter»:
# Exim filter #Почту от списка рассылки FreeBSD сохраняем в # /home/hilik/Mail/freebsd-ua/freebsd-ua if $h_List-ID: is <freebsd.uafug.org.ua> then save /home/hilik/Mail/freebsd-ua/freebsd-ua endif #Почту на info@hilik.org.ua отправляем на спамфильтр для обучения if $h_To: is info@hilik.kiev.ua then deliver spam@hilik.org.ua endif if $h_Subject matches ^\[[Ss]pam\]: then save /dev/null endif
Переменные начинающиеся на $h – это переменные формируемые фильтром из разных заголовков письма. Таким образом можно обработать любой заголовок.
Помимо работы с заголовком, можно проверять еще ряд переменных, включая $message_body, в этой переменной содержится, часть тела сообщения(по умолчанию 500 строк, определяется переменной message_body_visible). Оператор is, обозначает что происходит простое сравнение переменной со строкой находящейся справа.
Если вы воспользуетесь оператором contains, проверяться будет частичное совпадение, а если использовать matches, то проверку можно производить с помощью regexpa.
Размещенного примера, в принципе, достаточно для 90% случаев.
Для тех кому моего примера мало, полная английская документация по адресу: Exim filter.
Либо обращайтесь – помогу написать более сложный фильтр.



