Редактор кода Sieve для расширенных фильтров

Управляйте расширенной фильтрацией, пересылкой, отметками и автоответами с помощью собственного кода Sieve.

Сведения о статье

Тип, сложность, тарифы и дата последнего обновления.

Тип
Справочная статья
Сложность
Продвинутый уровень
Тарифы
Agency
Обновлено
9 сен 2026 г.

Большинству пользователей эта страница не понадобится. Визуальный конструктор TrekMail проще и решает почти все задачи. Но разработчикам, ИТ-администраторам десятков ящиков и опытным пользователям редактор Sieve дает полный контроль над входящей почтой.

Активировать пользовательский скрипт можно только на Agency. На других тарифах разрешено сохранить черновик, но он не запустится.

Что такое Sieve?

Sieve представляет собой небольшой язык сценариев для фильтрации почты. Инструкции запускаются при получении нового сообщения. Правило проверяет отправителя, тему, размер или заголовки, а затем перемещает, пересылает, помечает, отклоняет письмо либо отправляет автоответ.

В отличие от правил Outlook или Apple Mail, Sieve работает на сервере круглосуточно, даже когда компьютер и почтовая программа выключены. Поэтому результат одинаков на всех устройствах.

Изучать Sieve для работы с TrekMail не обязательно: визуальный конструктор пишет код сам. Редактор нужен для логики, которую нельзя выразить в конструкторе.

Когда выбрать код Sieve, а когда визуальные фильтры

Используйте конструктор, если:

  • Нужны простые условия «отправитель содержит X» или «тема содержит Y».
  • Нужно перемещать, пересылать, помечать, отклонять или удалять письма.
  • Вы не хотите писать код.
  • Нужны быстрые изменения без заботы о синтаксисе.

Используйте редактор Sieve, если:

  • Нужна сложная логика: «это И то, но НЕ другое».
  • Для шаблонов, например номеров заказов, требуются регулярные выражения.
  • Нужно объединить отпускной автоответ, фильтрацию и пересылку.
  • Условий и действий конструктора недостаточно.
  • Вы переносите шаблоны между множеством ящиков.

Где находится редактор

  1. Откройте панель TrekMail и раздел Почтовые ящики.
  2. Нажмите Управление рядом с нужным ящиком.
  3. Откройте вкладку Sieve.
  4. На подходящем аккаунте Agency редактор сначала показывает скрипт управляемых фильтров. Измените его или начните заново.
  5. Нажмите Сохранить и активировать.

Редактор открывает текущий скрипт либо пустое поле. Введите или вставьте код и нажмите Сохранить и активировать.

Поддерживаемые расширения

Расширение Назначение
fileinto Перемещает письмо в папку. Без него Sieve может оставить письмо во входящих или удалить.
reject Возвращает письмо отправителю с вашим текстом ошибки.
vacation Отправляет автоответ и ограничивает частоту ответа каждому отправителю.
copy Пересылает письмо, сохраняя копию. Без него письмо исчезает из ящика.
body Проверяет содержимое письма, а не только заголовки.
imap4flags Устанавливает видимые в клиенте отметки: прочитано, флажок, важное.
variables Сохраняет совпавшие части для повторного использования.
relational Добавляет числовые сравнения для размера и значений заголовков.
regex Поддерживает регулярные выражения вместо простого «содержит».

Объявляйте расширения в начале с помощью require. Сервер проверяет скрипт и отклоняет неподдерживаемые или опасные расширения.

Примеры скриптов

Ниже четыре полных комментированных примера.

Пример 1: сложная условная пересылка

Письма клиента со словом "proposal" в теме и размером меньше 5 MB пересылаются, помечаются и сохраняются в папку проекта.

require ["fileinto", "copy", "imap4flags", "relational", "comparator-i;ascii-numeric"];

# Forward proposal emails from client, but only if they are under 5MB
if allof (
    address :contains "from" "@bigclient.com",
    header :contains "subject" "proposal",
    size :under 5M
) {
    # Send a copy to the project manager
    redirect :copy "pm@youragency.com";

    # Flag it for follow-up
    addflag "\\Flagged";

    # File it in the client folder
    fileinto "Clients/BigClient/Proposals";

    # Stop processing further rules
    stop;
}

# Everything else from this client goes to their general folder
if address :contains "from" "@bigclient.com" {
    fileinto "Clients/BigClient";
    stop;
}

Результат: первое правило обрабатывает только предложения меньше 5 MB. Второе сохраняет всю остальную почту этого клиента в общую папку.

Пример 2: регулярные выражения для номеров заказов

Письма с номерами ORD-12345 или ORD-98765 автоматически сохраняются в папку.

require ["fileinto", "regex"];

# Match order confirmation emails with order numbers like ORD-#####
if header :regex "subject" "ORD-[0-9]{4,6}" {
    fileinto "Orders";
    stop;
}

# Match support ticket numbers like TICKET-####
if header :regex "subject" "TICKET-[0-9]{3,}" {
    fileinto "Support Tickets";
    stop;
}

Результат: [0-9]{4,6} означает «от 4 до 6 цифр» и находит ORD-1234, ORD-12345 и ORD-123456 без перечисления всех вариантов.

Пример 3: автоответ, сохранение и пересылка

Один скрипт отвечает на время отсутствия, пересылает срочные письма коллеге и сортирует остальные.

require ["fileinto", "vacation", "copy", "imap4flags"];

# Auto-reply to everyone (once per 3 days per sender)
vacation :days 3 :subject "Out of office until April 15"
    "Thanks for your email. I am out of the office until April 15
with limited access to email. For urgent matters, please contact
Sarah at sarah@youragency.com. I will reply when I return.";

# Forward urgent emails to Sarah immediately
if header :contains "subject" "urgent" {
    redirect :copy "sarah@youragency.com";
    addflag "\\Flagged";
}

# File invoices
if header :contains "subject" "invoice" {
    fileinto "Invoices";
    stop;
}

# File newsletters
if address :contains "from" "newsletter" {
    fileinto "Newsletters";
    stop;
}

Результат: vacation отвечает каждому отправителю не чаще одного раза за 3 дня. Без stop выполнение продолжается, поэтому автоответ сочетается с последующими фильтрами.

Пример 4: отметка по пользовательскому заголовку

Некоторые системы добавляют X-Priority. Скрипт читает этот заголовок и помечает важные сообщения.

require ["imap4flags", "fileinto", "relational", "comparator-i;ascii-numeric"];

# X-Priority: 1 = highest, 5 = lowest
# Flag messages marked as high priority by the sending server
if header :value "le" :comparator "i;ascii-numeric"
    "X-Priority" "2" {
    addflag "\\Flagged";
}

# File low-priority messages (4 or 5) into a "Low Priority" folder
if header :value "ge" :comparator "i;ascii-numeric"
    "X-Priority" "4" {
    fileinto "Low Priority";
    stop;
}

Результат: в X-Priority число 1 означает самый высокий приоритет, а 5 самый низкий. :value "le" означает «меньше или равно», поэтому помечаются 1 и 2. Письма с 4 и 5 убираются из входящих.

Важные замечания

Пользовательский скрипт заменяет визуальные фильтры. Они сохраняются, но становятся неактивны. Для возврата нажмите Восстановить по умолчанию вверху вкладки Sieve.

Сервер проверяет код до активации. При ошибке синтаксиса новый скрипт не включится, а предыдущий скрипт или визуальные фильтры продолжат работать.

require обязателен. Все используемые расширения должны быть перечислены в require. Если забыть fileinto или vacation, сервер отклонит код.

Спам проверяется раньше скрипта. Sieve получает только письма, прошедшие серверную проверку TrekMail, поэтому правила против спама не нужны.

Возврат к визуальным фильтрам

  1. Откройте вкладку Sieve ящика.
  2. Нажмите Восстановить по умолчанию в правом верхнем углу.
  3. Подтвердите действие.

Пользовательский код будет удален, а созданный из сохраненных визуальных фильтров скрипт восстановится.

Сохранение изменений на вкладке Фильтры тоже возвращает управляемый скрипт. Вкладка Автоответ не заменяет пользовательский код: сначала вернитесь в управляемый режим.

Распространенные ошибки и решения

Забыли require. При ошибке "unknown command fileinto" добавьте сверху require ["fileinto"];.

Нет точки с запятой. Ею заканчивается каждая команда Sieve. При неожиданных токенах проверьте stop, discard и fileinto.

Строки без кавычек. Папки, адреса и значения требуют двойных кавычек. fileinto Newsletters; ошибочно, а fileinto "Newsletters"; верно.

Обратная косая черта во флагах. Для \Flagged и \Seen в Sieve нужны две черты: "\\Flagged" и "\\Seen". Одна считается управляющим символом.

Папки не существует. Создайте ее в почтовой программе до направления туда писем. Скрипт не создает папку автоматически без поддержки сервера.

Скрипт слишком большой. При нескольких сотнях строк перенесите подходящие правила в визуальный конструктор. Необязательно хранить все в одном скрипте.

Связанные статьи

Похожие статьи

Перейдите к близким руководствам, которые продолжают рабочий процесс.

Как создать новый почтовый ящик в TrekMail

Выберите одиночное или массовое приглашение, ручное создание либо импорт CSV, чтобы безопасно настроить почтовые ящики.

Читать статью

Приглашение всей команды в ящики TrekMail за раз

Подготовьте, проверьте и отправьте приглашения пакетом с учётом лимитов, возможностью выделить место и исправить ошибки до отправки.

Читать статью

Массовое создание ящиков из файла CSV

Подготовьте адреса, пароли и квоты хранилища, проверьте каждую строку и одной операцией создайте все готовые ящики.

Читать статью

Поиск, сортировка и фильтры списка ящиков

Быстро находите ящики и приглашения, добавляйте внутренние заметки и выполняйте массовые действия в пределах текущего представления.

Читать статью

Настройка пересылки из почтового ящика TrekMail

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

Читать статью

Почтовые псевдонимы: несколько адресов для ящика

Получайте и отправляйте почту с нескольких адресов через один ящик, без отдельных учетных данных и дополнительного хранилища.

Читать статью

Мы используем необходимые технологии для работы и защиты TrekMail. Подтверждая это, вы также разрешаете ограниченную аналитику и измерение рекламы, описанные в Политике cookie.

Вход в TrekMail

Доступ к панели, ящикам и DNS.

или

12 символов пароли совпадают

или

Письмо отправлено

Если для этого адреса есть аккаунт, мы отправили инструкции по сбросу пароля.

Продолжая, вы принимаете Условия и Политику конфиденциальности TrekMail.