Описание тега sieve-language
Sieve - это язык программирования, который можно использовать для создания фильтров для электронной почты. Своим созданием он обязан CMU Cyrus Project, создателям Cyrus IMAP-сервера.
Язык не привязан к какой-либо конкретной операционной системе или почтовой архитектуре. Текущая версия базовой спецификации Sieve изложена в RFC 5228, опубликованном в январе 2008 года.
Sieve отличается от традиционных языков программирования тем, что он сильно ограничен - в базовом стандарте нет переменных и циклов, что предотвращает сбой программ и ограничивает язык простыми операциями фильтрации. Несмотря на то, что были разработаны расширения для расширения языка за счет включения переменных и, в ограниченной степени, циклов, язык все еще сильно ограничен и поэтому не подходит для запуска программ, разработанных пользователем, как части почтовой системы.
Также существует значительное количество ограничений на грамматику языка, чтобы уменьшить сложность синтаксического анализа языка, но язык также поддерживает использование нескольких методов для сравнения локализованных строк и полностью поддерживает Unicode.
Скрипты передаются на почтовый сервер в зависимости от сервера. Протокол ManageSieve (определенный в RFC 5804) позволяет пользователям управлять своими скриптами Sieve на удаленном сервере. Почтовые серверы с локальными пользователями могут разрешить сохранение сценариев, например, в файле.sieve в домашних каталогах пользователей.