Ноя 18 2008

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.
Либо обращайтесь — помогу написать более сложный фильтр.

Добавить в закладки:

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Украинская Баннерная Сеть