Автор (ы) | Вашингтонский университет и Карнеги Университет Меллона и стандартизован Тимом Шоуолтером |
---|---|
Первоначальный выпуск | 1999; 21 год назад (1999) |
Операционная система | Кросс-платформенность |
Тип | Фильтрация электронной почты |
Веб-сайт | сито.info |
Сито - это язык программирования, который можно использовать для фильтрации электронной почты. Своим созданием он обязан CMU Cyrus Project, создателям Cyrus IMAP server.
. Язык не привязан к какой-либо конкретной операционной системе или почтовой архитектуре. Он требует использования сообщений, соответствующих RFC 2822, но в остальном следует распространить его на другие системы, отвечающие этим критериям. Текущая версия базовой спецификации Sieve изложена в RFC 5228, опубликованном в январе 2008 года.
Sieve - это язык программирования, управляемого данными, похожий на более раннюю фильтрацию электронной почты языки, такие как procmail и maildrop, и более ранние строчно-ориентированные языки, такие как sed и AWK : он определяет условия для сопоставления и действия взять на сопоставление.
Это отличается от языков программирования общего назначения тем, что он сильно ограничен - базовый стандарт не имеет переменных и циклов (но допускает условное ветвление), предотвращая выход программ из-под контроля и ограничивая язык для простых операций фильтрации. Несмотря на то, что были разработаны расширения для расширения языка за счет включения переменных и, в ограниченной степени, циклов, язык по-прежнему сильно ограничен и, таким образом, подходит для запуска пользовательских программ как части почтовой системы.
Существует также значительное количество ограничений на грамматику языка, чтобы уменьшить сложность синтаксического анализа языка, но язык также поддерживает использование нескольких методов для сравнения локализованные строки и полностью поддерживает Unicode.
Скрипты Sieve могут быть созданы редактором правил на основе GUI или они могут быть введены напрямую с помощью файла.
Скрипты передаются на почтовый сервер в зависимости от сервера. Протокол ManageSieve (определенный в RFC 5804 ) позволяет пользователям управлять своими скриптами Sieve на удаленном сервере. Почтовые серверы с локальными пользователями могут разрешить хранение скриптов, например, файл.sieve в домашних каталогах пользователей.
Язык был стандартизирован в (ныне устаревшем) RFC 3028 от января 2001 г. Тимом Шоуолтером.
Рабочая группа IETF Sieve обновила базовую спецификацию в 2008 г. (RFC 5228 ) и привела следующие расширения в статус «Предлагаемый стандарт»:
Ряд другие расширения все еще разрабатываются рабочей группой 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; }