pztrn's wiki
You are here: start » software » mail » sieve_examples

Sieve examples

Попробовав многие клиенты (вроде 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 "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, возник такой вопрос. Собственно, все просто: я могу активировать только один фильтр (читай: один файл с фильтрами), соответственно, если я разбиваю фильтры на файлы для удобной правки и удобного управления, их необходимо “синклудить” в текущий рабочий фильтр. Что, собственно, и делается :).

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International