На компьютере во входящих порядок, а на телефоне полный хаос. Ящик и учётная запись одни и те же, но результат разный. Причина в том, что почтовые фильтры, которые наводят порядок, настроены в настольной программе, а телефон о них ничего не знает.
В этом особенность локальных правил: они выполняются, пока работает программа. Закройте ноутбук в пятницу, и сортировка остановится до понедельника. Затем письма за три дня разложатся по папкам разом, иногда вызвав уведомления о сообщениях, прочитанных на телефоне ещё позавчера.
Серверные фильтры выполняются при доставке, до сохранения письма в выбранную папку. Подключившиеся затем устройства видят уже отсортированную почту. В основе таких правил лежит давно существующий язык Sieve. Для фильтрации на сервере это подходящий инструмент, хотя уведомления и отображение папок по-прежнему зависят от настроек клиента.
Место выполнения почтовых фильтров определяет результат
| Локальные правила | Серверные фильтры | |
|---|---|---|
| Когда выполняются | Когда программа открыта и синхронизирует почту | При доставке письма |
| Где виден результат | Правило работает на одном устройстве; изменения в IMAP затем синхронизируются | На подключённых устройствах после синхронизации |
| Влияние на уведомления | Телефон может подать сигнал, а письмо позже исчезнет из входящих | Письмо разложено до синхронизации; уведомления зависят от клиента |
| После переустановки | Могут потеряться без резервной копии профиля программы | Сохраняются, пока сохранены серверные настройки ящика |
| Работа ночью | Нужно включённое устройство и работающая программа | Не зависят от вашего устройства, пока сервер доставляет почту |
Разницу в уведомлениях легко заметить каждый день. Приходит рассылка, телефон вибрирует, а через сорок минут настольная программа переносит письмо в папку Прочитать позже. Правило сработало, но уже после отвлечения, которого вы хотели избежать. Серверный фильтр размещает письмо в нужной папке ещё до синхронизации с телефоном. Настройте уведомления для этой папки отдельно.
Коротко о Sieve
Sieve предназначен для одной задачи: определить, что сделать с письмом при доставке. Его базовый язык описан в RFC 5228 и намеренно не обладает полнотой по Тьюрингу. В нём нет циклов и возможности запускать произвольные программы. Эти ограничения помогают сделать фильтрацию безопаснее. Доступные расширения и их возможности зависят от сервера; не стоит переносить ограничения базового языка на любые расширения.
Пример сценария:
if header :contains "from" "billing@vendor.com" {
fileinto "Finance/Invoices";
stop;
}
Писать его самостоятельно необязательно. Визуальный редактор создаёт Sieve в фоне, а фильтры становятся частью сценария доставки. Понимание этого механизма помогает разобраться в поведении правил: проверка прекращается при явной остановке, пересылка выполняется через SMTP, а серверная сортировка видна на всех устройствах после синхронизации. Само перемещение в папку не означает обязательную остановку следующих правил.
Фильтрам нужны папки назначения
Фильтрам нужно куда-то складывать письма. Плоский список из тридцати папок часто не решает проблему, а лишь создаёт другой вид беспорядка.
Папки можно вкладывать друг в друга в пределах возможностей сервера и клиента. Дерево строится по структуре IMAP, поэтому одна и та же иерархия доступна в веб-почте, Outlook, Apple Mail и на телефоне. Созданная вложенная папка появляется в других клиентах после синхронизации, иногда с учётом подписки на папки.
Clients
Acme
Invoices
Contracts
Globex
Invoices
Finance
Receipts
Tax
Три возможности делают дерево удобным:
Сворачивание и раскрытие с личными настройками. В веб-почте состояние дерева и цвета папок общего ящика сохраняются отдельно для каждого участника. Двое сотрудников не мешают друг другу настраивать боковую панель, потому что предпочтения связаны с участником, а не с папкой.
Цвета. Выделите четыре или пять папок, которыми постоянно пользуетесь. Так их проще находить, не перечитывая весь список.
Поиск с учётом вложенности. Самая важная возможность. В папке Clients можно искать только внутри неё, вместе со всеми вложенными папками или по всему ящику. Без второго варианта пришлось бы проверять каждую конечную папку отдельно. Подробнее об областях поиска в статье о поиске по нескольким почтовым ящикам.
Настройка фильтров в визуальном редакторе
Фильтр состоит из условий и действий.
Условия проверяют отправителя, получателя, тему, тело письма, размер или указанный заголовок. Поддерживаются сравнения вроде «содержит», «точно совпадает», «начинается с» и «заканчивается на». Несколько условий объединяются по принципу «все» или «любое».
Действия позволяют поместить письмо в папку, переслать на другой адрес, отметить прочитанным или важным, молча отбросить либо отклонить с ответом отправителю.
Два действия требуют особой осторожности.
Отбрасывание происходит без уведомления и без копии в корзине. Сервер принимает письмо и не сохраняет его в ящике. Технические журналы могут содержать сведения об обработке, но это не копия для восстановления. Слишком широкое условие может незаметно уничтожить нужную почту. Лучше складывать такие письма в редко открываемую папку.
Отклонение может отправить уведомление об ошибке отправителю SMTP-конверта, который не всегда совпадает с автором письма. Если адрес подделан, уведомление может уйти постороннему человеку. Так возникает обратный поток нежелательных уведомлений, или backscatter. Конкретное поведение зависит от этапа отказа и реализации. Для сомнительной почты обычно безопаснее папка «Спам».
Пересылка фильтром выполняется через SMTP, поэтому копия может не пройти проверку подлинности у получателя. SRS помогает решить проблему SPF при переписывании адреса конверта, но его применение нужно проверить для конкретного маршрута. Это не гарантирует прохождение DMARC или доставку во входящие Gmail. Причину попадания в спам определяйте по заголовкам и результатам проверок.
Почтовые фильтры выполняются по порядку
Правила проверяются сверху вниз. Из-за этого набор фильтров может давать не тот результат, который вы ожидали.
Рассмотрим два правила:
- Письмо от
@acme.com→ поместить в Clients/Acme - В теме есть invoice → поместить в Finance/Invoices
Счёт от Acme сначала совпадёт с правилом 1 и попадёт в Clients/Acme. Если в первом правиле включена остановка обработки, правило 2 не выполнится. Причина именно в остановке, а не в самом перемещении. Предупреждения может не быть: вы просто не найдёте счёт Acme в папке финансов.
Основной принцип: сначала частные правила, затем общие. Правило для счетов конкретного поставщика должно стоять выше правила для всей его почты. Если фильтр перестал срабатывать, сначала проверьте правила над ним и настройки остановки. Порядок можно менять перетаскиванием; часто этого достаточно для исправления.
Когда писать Sieve вручную
Визуальный редактор покрывает многие повседневные задачи. Для условий, которые он не позволяет выразить, есть редактор исходного Sieve на плане Agency.
Он пригодится для вложенной логики: это И то, но НЕ другое; для регулярных выражений, дополнительных заголовков или единого сценария с автоответом, сортировкой и пересылкой. Нужные расширения должны поддерживаться сервером. Текстовый сценарий также удобно хранить по версиям и использовать как шаблон для нескольких ящиков.
require ["fileinto", "regex", "imap4flags"];
if allof (
header :regex "subject" "^\\[TICKET-[0-9]+\\]",
not header :contains "from" "noreply@"
) {
setflag "\\Flagged";
fileinto "Support/Active";
stop;
}
Важная оговорка: исходный сценарий и визуальные правила управляют фильтрацией одного ящика. Не рассчитывайте, что ручные изменения будут обратно преобразованы в визуальные правила или сохранятся при следующей генерации. Выберите основной способ управления для каждого ящика. Подробнее в документации редактора Sieve.
Полезные приёмы
Сортируйте по адресу получения, а не отправителю. Если у каждого сервиса свой псевдоним, например newsletters@, receipts@ или shopping@, правило по адресу получателя может заменить множество правил по отправителям. Смена домена отправки тогда не мешает сортировке. Проверьте, какой адрес виден в заголовке получателя: скрытые копии и переписанные адреса могут потребовать другой проверки.
Складывайте в папку, а не удаляйте. Папка Автоматические письма для уведомлений, предупреждений и чеков освобождает входящие для личной переписки, сохраняя почту доступной для поиска. Отбрасывание при доставке не даёт копии для восстановления; перемещение сохраняет письмо, пока оно не удалено по другим правилам.
Важное отмечайте, а не перемещайте. Письмо вне входящих легче пропустить. Лучше пометить его важным и оставить там, где вы его увидите.
Общее правило ставьте последним. Временный фильтр может складывать всё, что не обработано выше, в папку для проверки. Так видны пробелы в настройке. Учитывайте остановку предыдущих правил, а когда набор станет устойчивым, удалите проверочный фильтр.
Не стройте дерево заранее. Три уровня папок для ещё не полученной почты редко соответствуют будущей переписке. Создавайте папку, когда накопилась отдельная группа писем.
Ограничения почтовых фильтров
| План в исходной версии | Фильтры на ящик в исходной версии | Пересылки в фильтрах в исходной версии | Редактор Sieve | Автоответ |
|---|---|---|---|---|
| Nano | 3 | Недоступно | Нет | Нет |
| Starter | 3 | Недоступно | Нет | Да |
| Pro | 10 | 5 | Нет | Да |
| Agency | 50 | 25 | Да | Да |
Таблица сохранена из исходной версии статьи и не является актуальной гарантией лимитов. В текущей конфигурации обычные пользовательские правила недоступны на Nano и Starter, при этом у Starter есть отдельный лимит пересылок. Сверяйте доступные возможности с текущими правами аккаунта. Пересылки ограничиваются отдельно, поскольку они отправляют почту от вашего имени и связаны с политикой отправки, а не только с хранением.
Частые вопросы
Работают ли серверные фильтры с Outlook и Apple Mail?
Да. Они выполняются при доставке, и клиент после синхронизации видит уже отсортированный ящик. В клиенте не нужно дублировать эти правила, но подписки на папки и уведомления настраиваются отдельно.
Нужно ли изучать Sieve?
Нет. Визуальный редактор создаёт сценарий за вас. Для более сложных задач на Agency доступен редактор исходного Sieve.
Почему фильтр перестал работать?
Частая причина: правило выше совпало первым и остановило обработку. Проверьте порядок и параметр остановки, а затем условия, включение правила и состояние активного сценария.
Можно ли применить фильтры к уже полученным письмам?
Эти фильтры запускаются при доставке и обрабатывают новую почту. Для писем, уже находящихся в ящике, используйте поиск и массовые действия. Само существование языка Sieve не исключает отдельные инструменты повторной обработки, но это другая возможность.
Чем пересылка фильтром отличается от пересылки ящика?
Пересылка ящика отправляет копию всей поступающей почты, к которой применяется соответствующая настройка. Фильтр выбирает письма по условиям. У фильтров также различаются действия пересылки с сохранением копии и без неё. Проверьте выбранное действие и взаимодействие правил.
Цвета папок общие для команды?
Нет. В веб-почте цвета и состояние дерева сохраняются отдельно для каждого участника общего ящика. Эти настройки не означают, что другие почтовые программы покажут такие же цвета.
Сколько уровней вложенности поддерживается?
Можно создавать вложенную структуру в пределах ограничений сервера и клиентов. После трёх уровней поиск часто удобнее навигации. Дерево основано на IMAP, но отображение и подписки зависят от программы.
Стоит ли отбрасывать спам фильтром?
Лучше не надо. Отбрасывание не сохраняет письмо в корзине: одно слишком широкое условие, и нужная почта пропадёт незаметно. Используйте папку «Спам» и действие Сообщить о спаме, которое передаёт сигнал классификатору. Обычное перемещение не равнозначно этой операции. Подробнее о различии в статье о заблокированных отправителях.