Exim, настройка фильтров во FreeBSD

У 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.

Либо обращайтесь – помогу написать более сложный фильтр

http://www.hilik.org.ua/exim-настройка-фильтров/

Обновлено: 12.03.2015