· postfix sieve dovecot filter mail

Управляем почтой с помощью Sieve

Не так давно я купил себе этот домен (который pztrn.name), в целях избавления от гуглосервисов. Старый домен (который .ru) остался на гугле, и моя семья им активно пользуется (для андроидов, конечно же).

Итак, домен куплен, почтовый сервер настроен, что же дальше? А дальше мне надоело заниматься мозговыносительством с фильтрацией per-client, переносить свои стопицот правил фильтрации из одного клиента в другой (если вдруг захотелось что-то пощупать). В этом случае ко мне на помощь пришел server-side фильтратор почты Sieve.

Сказать по правде, это не совсем фильтратор, это просто язык для написания скриптов. Эти скрипты фильтруют почту/удаляют ее/делают все необходимое. Язык довольно прост сам по себе, но есть несколько интересных моментов, которые я решил осветить в отдельном посте.

Управляем Sieve-скриптами из клиента.

Попробовав многие клиенты (вроде KMail, Claws, и т.п.), я обнаружил, что у них нету никаких возможностей по управлению Sieve-скриптами. Но это тоже не беда, так как моим любимым клиентом для работы с почтой является Thunderbird. Благодаря его системе плагинов, умельцам и положению звезд на небе, у нас есть вот такое хорошее дополнение. Собственно, ставим и настраиваем :)

Далее нам необходимо присоединиться к Sieve-серверу. Настройка подключения интуитивна, так что тут ее описывать не буду.

Списки рассылок, или как правильно зафильтровать поток писем с xfce.org.

Так как я являюсь мейнтейнером XFCE в Xilitra Linux, мне необходимо быть подписанным на кучу мейллистов с xfce.org. Для более лучшего понимания информации, которая сыпется на почтовый ящик, лучше для каждого отдельного листа создать свою директорию и складировать письма туда. Что и делает следующее правило:

require "fileinto";

if address :is ["to", "cc", "bcc"] "xfce4-dev@xfce.org" {
  fileinto "[XFCE-DEVEL]";
}

А теперь по пунктам:

  • Нам необходимо выполнить действие “fileinto” для перемещения письма в соответствующую директорию, следовательно, мы делаем require “fileinto”;.
  • Проверяем наличие адреса в заголовках с помощью if address :is [“to”, “cc”, “bcc”] “xfce4-dev@xfce.org”. Обратите внимание, что тут проверяется и кому письмо, и копии, так как некоторые одаренные личности и отличнейшие почтовые клиенты при ответе на сообщение пихают адрес мейллиста именно в копии.
  • Перемещаем письмо в директорию “[XFCE-DEVEL]” с помощью fileinto “[XFCE-DEVEL]“;.

Вот и все :).

Spamassassin helper.

Для фильтрации спамописем можно использовать такое правило:

require "fileinto";
if header :is "X-Spam-Flag" "YES" {
    fileinto "Junk";
}

При использовании этого фильтра все сообщения, помеченные Spamassassin (они содержат в хидере “X-Spam-Flag YES”), будут перемещены в директорию “Junk”.

Многофильтров, или разбиваем правила фильтрации пофайлово.

У меня довольно много правил фильтрации, следовательно, довольно неудобно, когда они в одном большом файле. Идеально для меня есть разбиение множества фильтров в отдельные файлы. Спасибо Sieve, он это умеет с помощью include. Вот мой список фильтров:

require "include";

include :personal "cron";
include :personal "Cyberside";
include :personal "Disqus";
include :personal "Friendica";
include :personal "MAILER-ERROR";
include :personal "Mediagoblin";
include :personal "my_flyspray";
include :personal "Opennet";
include :personal "Prosody";
include :personal "spam";
include :personal "Statusnet";
include :personal "SysAn";
include :personal "XFCE-DEVEL";
include :personal "XFCE-GENERAL";
include :personal "XFCE-GOODIES";

Соответственно, в случае необходимости, я просто комментирую ненужный фильтр и все.

Зачем я сделал так? У многих, кому я помогал с Sieve, возник такой вопрос. Собственно, все просто: я могу активировать только один фильтр (читай: один файл с фильтрами), соответственно, если я разбиваю фильтры на файлы для удобной правки и удобного управления, их необходимо “синклудить” в текущий рабочий фильтр. Что, собственно, и делается :).

В заключении…

Sieve – действительно удобная и мощная штука для управления фильтрацией почты. В dovecot она имеется чуть ли не по-умолчанию. А благодаря плагину к Thunderbird управления правилами фильтрации становится ну просто очень простым.

Я рекомендую всем и каждому, кто использует свою почту на своем почтовом сервере более, чем с одной программы, разобраться и настроить Sieve. Этим можно сэкономить кучу времени.

В этом посте не рассмотрена настройка Sieve-сервера, это тема для отдельной статьи, которую я вскоре напишу.

  • LinkedIn
  • Tumblr
  • Reddit
  • Google+
  • Pinterest
  • Pocket