Так вот, Sieve - это язык, обеспечивающий возможность фильтрации сообщений. Подробнее про него можно почитать тут.
Мануал состоит из немецкой, английской версий и RFC. Ну так вот, здесь я опишу основные функции языка, которые пригодятся для начала. В английской версии было предупреждение о том, что мануал писал не специалист/гуру, а обычный пользователь, так вот ... я как раз отнашусь к обычным, даже начинающим. Если найдете ошибки, исправте меня пажалуйста.
КомментарииКак и в любом языке, Sieve имеет комментарии. Существуют два типа комментариев: многострочные и однострочные.
Многострочные комментарии - состоят из нескольких строк, должен начинаться с символов "/*" и заканчиваться "*/".
/*
это
многострочный
комментарий
*/
Однострочные комментарии - комментируют только одну строку, в начале которой стоит "#".
#это
#однострочные
#комментарии
Структура языка
[ .. ] - Квадратные скобки используются для группировки элементов. Например, ["user1@domain.ru", "user2@domain.ru", "user3@domain.ru"] определяет группу почтовых ящиков.
{ .. } - Круглые скобки используются для создания группы действий, который будут выполнены, если условие выполняется.
if - сравнивает определенные параметры, если они истины, то выполняется определенный блок операторов.
elseif - если используется несколько сравнений, то лучше всего использовать elseif, действие такое же как и у if.
else - если ни одно из вышеследующих условие не выполнилось, то выполняются операторы заключенный в { .. } после if.
stop - останавливает обработку письма.
Действия над письмами
keep - сохраняет копию сообщения в дефолтовой директории.
fileinto "<директория>" - перемещает письмо в указанную директорию, если директория не существует, то письмо сохраняется в дефолтовой папке и больше никаких действий не выполняется.
discard - удаление письма, уведомление о удалении не отсылается.
reject "<причина>" - возвращает письмо отправителю, в котором указывается причина ошибки доставки.
redirect "<почтовый ящик>" - перенаправляет сообщение на указанный почтовый ящик, копия сообщения не создается.
vacation <параметры> - автоматически отвечает на письмо.
Операторы сравнения
size - сравнивает размер полученного письма с определенным размером. Вы можете указать размер в байтах, килобайтах и мегабайтах, для этого нужно указать KB или MB, для килобайт или мегабайт соответственно, после нужного вам размера файла, для указания размера в байтах не указывайте ничего после значения.
header - сравнение заголовка письма с определенными параметрами.
address - сравнивает только поле адреса.
allof("<параметры>") - сравнивает несколько значений, которые указаны как параметры. Возвращает истина, если все условия выполняются.
anyof("<параметры>") - сравнивает несколько значений, которые указаны как параметры. Возвращает истина, если хотя бы одно условие выполняется.
true - имеет всегда истиное значение.
false - имеет всегда ложное значение.
not <параметр> - если параметр имеет значение ложь, то все выражение имеет значение истина.