Jump to content

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

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

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

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

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

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

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

Хотя Sieve изначально задумывался как инструмент, внешний по отношению к SMTP, [2] [3] RFC 5429 заранее расширяет его, чтобы разрешить отклонение на уровне протокола SMTP. [4]

Использовать

[ редактировать ]

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

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

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

Расширения

[ редактировать ]

Рабочая группа IETF Sieve [5] обновил базовую спецификацию в 2008 году ( RFC 5228 ) и внес следующие расширения в статус предлагаемого стандарта:

  • RFC 3894 – Копирование без побочных эффектов; позволяет копировать сценарий по почтовым ящикам, не останавливая его выполнение.
  • RFC 5173 – Тело; позволяет сценарию проверять тело сообщения, а не только его заголовок.
  • RFC 5183 – Окружающая среда; обеспечивает доступ к информации об интерпретаторе Sieve и его системном окружении.
  • RFC 5229 – Переменные; позволяет сценарию сохранять и извлекать значения в переменных.
  • RFC 5230 – Отпуск; определяет действие по отправке ответа, информирующего отправителя о том, что получатель может отсутствовать.
  • RFC 5231 – Реляционные тесты; определяет числовые тесты, чтобы сценарий мог проверять поле на числовое значение и проверять количество вхождений поля.
  • RFC 5232 – флаги IMAP4; позволяет сценарию проверять и устанавливать флаги IMAP сообщения.
  • RFC 5233 – Подадрес; позволяет сценарию проверять подадреса вида « [email protected] ».
  • RFC 5235 – Спамтест и вирустест; позволяет сценарию взаимодействовать с реализацией
  • RFC 5260 – Расширения даты и индекса.
  • RFC 5293 – заголовок редактирования; позволяет сценарию добавлять и удалять поля заголовка сообщения.
  • RFC 5429 – Отклонить; позволяет отклонять сообщения либо на уровне LMTP/SMTP, либо с помощью MDN или DSN.
  • RFC 5435 – Уведомления; позволяет сценарию запускать внешние уведомления по электронной почте.
  • RFC 5436 – Уведомления; позволяет отправлять уведомления по протоколу mailto
  • RFC 5437 – уведомления XMPP; указывает уведомления через XMPP.
  • RFC 5490 – Проверка; Статус почтового ящика и доступ к метаданным почтового ящика.
  • RFC 5703 – Тесты частей MIME, итерация, извлечение, замена и вложение
  • RFC 5804 — протокол для удаленного управления сценариями Sieve
  • RFC 6131 – Отпуск; добавляет возможность указать секунды в период отпуска.
  • RFC 6558 – преобразование части MIME; позволяет сценарию преобразовывать части тела между типами MIME.
  • RFC 6609 – включение скриптов; разрешить пользователю включать один скрипт в другой.
  • RFC 7352 — Обнаружение дублирующих поставок; позволяет сценарию обнаруживать повторяющиеся сообщения и определять собственное поведение в таких случаях.

Ряд других расширений все еще разрабатывается рабочей группой Sieve. [ нужна ссылка ]

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

# Sieve filter

# Declare the extensions used by this script.
#
require ["fileinto", "reject"];

# Messages bigger than 100K will be rejected with an error message
#
if size :over 100K {
   reject "I'm sorry, I do not accept mail over 100kb in size. 
Please upload larger files to a server and send me a link.
Thanks.";
}

# Mails from a mailing list will be put into the folder "mailinglist" 
#
elsif address :is ["From", "To"] "[email protected]" {
   fileinto "INBOX.mailinglist";
}

# Spam Rule: Message does not contain my address in To, CC or BCC
# header, or subject is something with "money" or "Viagra".
#
elsif anyof (not address :all :contains ["To", "Cc", "Bcc"] "[email protected]", 
header :matches "Subject" ["*money*","*Viagra*"]) {
      fileinto "INBOX.spam";
}

# Keep the rest.
# This is not necessary because there is an "implicit keep" rule
#
else {
     keep;
}

См. также

[ редактировать ]
  1. ^ Перейти обратно: а б «История — Решето.Инфо» .
  2. ^ То, что Sieve работает после принятия сообщения, указано в его определяющем документе: П. Гюнтер; Т. Шоуолтер (январь 2008 г.). Sieve: язык фильтрации электронной почты . IETF . дои : 10.17487/RFC5228 . РФК 5228 . разумно фильтровать, когда MTA помещает почту в почтовый ящик пользователя
  3. ^ То, что окончательная доставка осуществляется за пределами SMTP, указано в определяющем документе: Джон Кленсин (октябрь 2008 г.). «Информация о следах» . Простой протокол передачи почты . IETF . сек. 4.4. дои : 10.17487/RFC5321 . РФК 5321 . окончательная доставка означает, что сообщение покинуло среду SMTP
  4. ^ Аарон Стоун (март 2009 г.). «Отклонение сообщения на уровне протокола SMTP/LMTP» . Сетчатая фильтрация электронной почты: отклонения и расширенные расширения отклонения . IETF . сек. 2.1.1. дои : 10.17487/RFC5429 . РФК 5429 .
  5. Устав рабочей группы Sieve. Архивировано 31 декабря 2005 г. в Wayback Machine.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 9ff788209ea04548bc39e49a13082b02__1722283200
URL1:https://arc.ask3.ru/arc/aa/9f/02/9ff788209ea04548bc39e49a13082b02.html
Заголовок, (Title) документа по адресу, URL1:
Sieve (mail filtering language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)