Sieve (язык фильтрации почты)

редактировать
Sieve
Автор (ы) Вашингтонский университет и Карнеги Университет Меллона и стандартизован Тимом Шоуолтером
Первоначальный выпуск1999; 21 год назад (1999)
Операционная система Кросс-платформенность
Тип Фильтрация электронной почты
Веб-сайтсито.info

Сито - это язык программирования, который можно использовать для фильтрации электронной почты. Своим созданием он обязан CMU Cyrus Project, создателям Cyrus IMAP server.

. Язык не привязан к какой-либо конкретной операционной системе или почтовой архитектуре. Он требует использования сообщений, соответствующих RFC 2822, но в остальном следует распространить его на другие системы, отвечающие этим критериям. Текущая версия базовой спецификации Sieve изложена в RFC 5228, опубликованном в январе 2008 года.

Содержание
  • 1 Язык
  • 2 Использование
  • 3 История
  • 4 Расширения
  • 5 Пример
  • 6 См. Также
  • 7 Ссылки
  • 8 Внешние ссылки
Язык

Sieve - это язык программирования, управляемого данными, похожий на более раннюю фильтрацию электронной почты языки, такие как procmail и maildrop, и более ранние строчно-ориентированные языки, такие как sed и AWK : он определяет условия для сопоставления и действия взять на сопоставление.

Это отличается от языков программирования общего назначения тем, что он сильно ограничен - базовый стандарт не имеет переменных и циклов (но допускает условное ветвление), предотвращая выход программ из-под контроля и ограничивая язык для простых операций фильтрации. Несмотря на то, что были разработаны расширения для расширения языка за счет включения переменных и, в ограниченной степени, циклов, язык по-прежнему сильно ограничен и, таким образом, подходит для запуска пользовательских программ как части почтовой системы.

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

Используйте

Скрипты Sieve могут быть созданы редактором правил на основе GUI или они могут быть введены напрямую с помощью файла.

Скрипты передаются на почтовый сервер в зависимости от сервера. Протокол ManageSieve (определенный в RFC 5804 ) позволяет пользователям управлять своими скриптами Sieve на удаленном сервере. Почтовые серверы с локальными пользователями могут разрешить хранение скриптов, например, файл.sieve в домашних каталогах пользователей.

История

Язык был стандартизирован в (ныне устаревшем) RFC 3028 от января 2001 г. Тимом Шоуолтером.

Расширения

Рабочая группа IETF Sieve обновила базовую спецификацию в 2008 г. (RFC 5228 ) и привела следующие расширения в статус «Предлагаемый стандарт»:

  • RFC 5173 - Тело; позволяет сценарию проверять тело сообщения, а не только его заголовок.
  • RFC 5229 - Переменные; позволяет скрипту сохранять и извлекать значения в переменных.
  • RFC 5230 - Отпуск; определяет действие для отправки ответа, информирующего отправителя о том, что получатель может отсутствовать.
  • RFC 5231 - реляционные тесты; определяет числовые тесты, так что сценарий может проверять поле на наличие числового значения и может проверять количество вхождений поля.
  • RFC 5232 - IMAP4flags; позволяет сценарию проверять и устанавливать сообщения IMAP-флаги.
  • RFC 5233 - Субадрес; позволяет скрипту проверять подадреса в форме «[email#160;protected] ».
  • RFC 5235 - Spamtest и Virustest; позволяет скрипту взаимодействовать с фильтрацией сообщений, зависящей от реализации.
  • RFC 5260 - Дата и расширения индекса.
  • RFC 5293 - Правка заголовка; позволяет сценарию добавлять и удалять поля заголовка сообщения.
  • RFC 5429 - Отклонить; позволяет отклонять сообщения либо на уровне LMTP / SMTP, либо с MDN или DSN.
  • RFC 5435 - Уведомления; позволяет скрипту инициировать внешние уведомления по электронной почте.
  • RFC 5436 - уведомления по электронной почте; указывает уведомления по электронной почте.
  • RFC 5437 - уведомления XMPP; указывает уведомления через XMPP.
  • RFC 5490 - Проверка; Статус почтового ящика и доступ к метаданным почтового ящика.
  • RFC 5703 - MIME Part Tests, Iteration, Extraction, Replacement, and Enclosure
  • RFC 5804 - Протокол для удаленного управления сетевыми скриптами

Ряд другие расширения все еще разрабатываются рабочей группой Sieve.

Пример

Это пример скрипта sieve:

# Фильтр Sieve # Объявить расширения, используемые этим скриптом. # require ["fileinto", "reject"]; # Сообщения размером более 100 КБ будут отклоняться с сообщением об ошибке # если размер: более 100 КБ {отклонить "Извините, я не принимаю почту размером более 100 КБ. Загрузите файлы большего размера на сервер и отправьте мне ссылку. Спасибо. "; } # Письма из списка рассылки будут помещаться в папку "mailinglist" # elsif address: is ["From", "To"] "[email#160;protected] " {fileinto "INBOX.mailinglist"; } # Правило спама: сообщение не содержит мой адрес в заголовках To, CC или Bcc #, либо в теме указано что-то с надписью "money" или "Viagra". # elsif anyof (not address: all: contains ["To", "Cc", "Bcc"] "[email#160;protected] ", header: соответствует "Subject" ["* money *", "* Viagra *"]) {fileinto "INBOX.spam"; } # Остальное оставьте себе. # В этом нет необходимости, поскольку существует правило "неявного сохранения" # else {keep; }
См. Также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-08 08:22:57
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте