Настройка фильтров в веб-почте
В Roundcube фильтры реализованы с помощью языка Sieve, который позволяет гибко настроить фильтрацию писем и реагирование на них. Правила также можно настроить в визуальном редакторе.
Условия
Благодаря языку Sieve можно настроить фильтрацию по практически любому заголовку письма. Для этого можно использовать существующие условия или указать нужный заголовок вручную.
Типы сравниваемых данных представлены в таблице.
Тип | Описание | Заголовок |
«Тема» | Поиск по заголовку subject | subject |
«От» | Поиск по заголовку from | from |
«Кому» | Поиск по заголовку to | to |
«...» | Поиск по заголовку, заданному вручную. После выбора появится дополнительное поле для указания заголовка | - |
«Тело письма» | Поиск по тексту письма | - |
«Размер» | Сравнение размера всего письма и его вложений | - |
«Дата» | Поиск по заголовку Date | Date |
«Текущая дата» | Сравнение текущей даты или времени. Дата берется по московскому времени GMT+3 | - |
«Строка» | Сравнение переменных, переданных в письме. После выбора появится дополнительное поле для указания заголовка | - |
«Сообщение» | Определение дублирования писем | - |
Кроме типа сравниваемых данных, требуется также выбрать способ сравнения.
Тип | Описание | Параметр в Sieve |
Для всех типов данных, кроме «Размер», «Сообщение» | ||
«содержит» | Поиск указанного текста во входящих данных | : contain |
«не содержит» | ||
«соответствует» | Полное совпадение входящих данных с указанными в фильтре | : is |
«не соответствует» | ||
«существует» | Проверка существования выбранного типа входящих данных | exists |
«не существует» | ||
«совпадает с выражением» |
Поиск указанного текста во входящих данных, но с возможностью указывать подстановочные знаки в виде: * — любое количество любых символов; ? — один любой символ |
: matches |
«не совпадает с выражением» | ||
«совпадает с регулярным выражением» | Поиск текста с использованием регулярного выражения | : regex |
«не совпадает с регулярным выражением» |
||
«количество больше, чем» |
Подсчет указанных заголовков в письме и сравнение их количества с указанными данными | : count |
«количество больше или равно» |
||
«количество меньше, чем» |
||
«количество меньше или равно» |
||
«количество равно» |
||
«количество не равно» |
||
«значение больше, чем» |
Математическое сравнение значения заголовка с указанными данными | : value |
«значение больше или равно» |
||
«значение меньше, чем» |
||
«значение меньше или равно» |
||
«значение равно» |
||
«значение не равно» |
||
Для типов данных «Дата», «Текущая дата» появится дополнительный параметр с выбором типа данных поля даты | ||
«дата (гггг-мм-дд)» |
Дата в стандартном виде «Год-месяц-день» | "date" |
«дата (ISO8601)» |
Дата по стандарту ISO 8601 в виде год-месяц-деньТчас:минута:секунда+часовой пояс или 2025-01-21Т11:21:44+0300 | "iso8601" |
«дата (RFC2822)» |
Дата с учетом соглашения RFC2822 в виде День недели, день месяц год час:минута:секунда:стандарт времени или Tue, 07 Feb 1984 12:34:56 GMT | "std11" |
«дата (юлианская)» |
Количество дней, прошедших с 1 января 4713 до нашей эры | "julian" |
«время (чч:мм:сс)» |
Время в часах:минутах:секундах | "time" |
«год» |
Определение одного типа данных из всей даты | "year" |
«месяц» |
"month" | |
«день» |
"day" | |
«час» |
"hour" | |
«минута» |
"minute" | |
«секунда» |
"second" | |
«день недели (0-6)» |
День недели, где 0 — понедельник, а 6 — воскресенье | "weekday" |
«часовой пояс» |
Определение часового пояса, указывается исключительно согласно RFC2822, то есть в виде 4 цифр, где +\-ЧасЧасМинутаМинута, например, 0300 | "zone" |
Действия
В Sieve предусмотрена возможность настроить различные варианты действий с входящими письмами.
Действие | Описание | Параметры | Функция в Sieve |
«Переместить сообщение в» | Перемещение сообщения в определенную папку без сохранения в текущем | Выбор каталога из существующих | fileinto |
«Скопировать сообщение в» | Копирование сообщения в определенную папку | fileinto :copy | |
«Перенаправить сообщение из» | Переадресовать письмо на другой почтовый ящик без сохранения в текущем | Указание целевого почтового ящика | redirect |
«Отправить копию сообщения на» | Переадресовать копию письма на другой почтовый ящик с сохранением в текущем | redirect :copy | |
«Отбросить с сообщением» | Не сохранять письмо в ящике и ответить на него автоматически | Текст отправляемого ответа на письмо | reject |
«Ответить с сообщением» | Сохранить письмо в ящике и ответить на него (аналог автоответчика) |
Текст отправляемого ответа. Тема сообщения (заголовок subject). Обратный адрес отправителя (заголовок from) — обязательно указывайте тот же ящик, для которого настраиваются фильтры. Мои адреса электронной почты — список дополнительных адресов, на которые можно отправить сообщение. Как часто отправлять сообщения — частота отправки ответов на сообщения от уникальных почтовых ящиков, то есть если с ящика admin@example.com будет отправлено два сообщения в течение дня, то автоматический ответ будет отправлен только один раз |
vacation с параметрами: :days, :addresses, :subject, :from |
«Удалить сообщение» | Удаление сообщения, при этом серверу отправителя не будет об этом известно | - | discard |
«Установить флаги на сообщение» | Установить определенные флаги на сообщения, убрав предыдущие | Выбор доступных и ранее созданных флагов | setflag |
«Добавить флаги к сообщению» | Установить определенные флаги на сообщения, добавив к предыдущим | addflag | |
«Убрать флаги из сообщения» | Удалить ранее установленные флаги для сообщения | removeflag | |
«Задать переменную» | Задание определенной переменной для ее дальнейшего использования |
Имя переменной. Значение переменной. Модификаторы, применяемые к переменной |
set |
«Отправить уведомление» | Отправить отдельное уведомление на определенный почтовый ящик |
Объект уведомления — почтовый ящик получателя. Сообщение уведомления. Отправитель уведомления (заголовок from) — не обязательный параметр и его не нужно указывать. Важность. Параметры уведомления — дополнительные параметры, которые будут указаны в уведомлении |
notify с параметрами: :importance, :from, :message |
«Оставить сообщение во Входящих» | Не перемещать сообщение в другие папки и оставить его во входящих | - | keep |
«Закончить выполнение» | Закончить выполнение всех активных фильтров. Функция прерывает выполнение цепочки фильтров — будут выполнены только фильтры до этого действия, последующие выполняться не будут | - | stop |