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