Síto
Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od
verze recenzované 9. ledna 2014; kontroly vyžadují
10 úprav .
Sieve je jazyk pro popis pravidel filtrování pro e- mailové zprávy. Vytvořeno společností Cyrusoft International, Inc./ISAMET při práci na poštovním serveru Cyrus IMAP .
Historie
- V lednu 2001 byla specifikace jazyka popsána v RFC 3028 Tim Showalter.
- V září 2003 bylo schváleno rozšíření "Sieve Email Filtering - Subaddress Extension": RFC 3598 (K. Murchison, Oceana Matrix Ltd.)
- V únoru 2004 bylo schváleno "SIEVE Email Filtering: Spamtest and VirusTest Extensions": RFC 3685 (C. Daboo, Cyrusoft International, Inc.)
- Společnost Cyrusoft vyhlásila konkurz 1. října 2005 . Od té doby v práci na Sieve pokračovala komunita open source, včetně pracovní skupiny Sieve IETF .
- V roce 2008 byla schválena nová jazyková specifikace v RFC 5228 a mnoho rozšíření.
Rozšíření
V lednu 2008 Sieve Working Group [1] aktualizovala základní specifikaci jazyka a vytvořila RFC 5228 , který nahradil původní RFC 3028 , a přidala následující rozšíření jako „ Proposed Standard “
:
- RFC 5173 (anglicky) - "Sieve Email Filtering: Body Extension" - rozšíření pro kontrolu skriptem nejen záhlaví, ale i těla (textu) zprávy.
- RFC 5229 – „Sieve Email Filtering: Variables Extension“ – Umožňuje skriptu ukládat a číst hodnoty proměnných.
- RFC 5230 (anglicky) – „Sieve Email Filtering: Vacation Extension“ – popisuje kroky k odeslání odpovědi informující odesílatele, že příjemce může být nepřítomen.
- RFC 5231 (anglicky) - "Sieve Email Filtering: Relational Extension" - popisuje relativní kontroly, můžete také kontrolovat nejen hodnotu pole, ale také počet výskytů kontrolované hodnoty v polích záhlaví zprávy a obálky.
- RFC 5232 – „Sieve Email Filtering: Imap4flags Extension“ – Umožňuje skriptu kontrolovat a nastavovat příznaky IMAP4 pro zprávu.
- RFC 5233 (anglicky) - "Sieve Email Filtering: Subaddress Extension" - umožňuje skriptu kontrolovat "podadresy" - adresy ve tvaru "user+detail@domain.example" (adresy tohoto typu se používají v sendmailu ve virtusertable).
- RFC 5235 (anglicky) – „Sieve Email Filtering: Spamtest and Virustest Extensions“ – umožňuje skriptu komunikovat s antivirovými programy a programy pro detekci spamu.
V budoucnu tato pracovní skupina přidala mnoho rozšíření ve stejném stavu jako „Návrh na standardizaci“:
- RFC 5293 – „Sieve Email Filtering: Editheader Extension“ – Umožňuje skriptu přidávat a odebírat pole záhlaví emailu .
- RFC 5429 (anglicky) - "Sieve Email Filtering: Reject and Extended Reject Extensions" - umožňuje odmítnout zprávy ve fázi LMTP / SMTP buď pomocí oznámení MDN ( Message Disposition Notifications ) nebo DSN ( Delivery Status Notification ) .
- RFC 5435 (anglicky) – „Sieve Email Filtering: Extension for Notifications“ – umožňuje skriptu přepínat „externí“ upozornění na čekající doručení pošty (například odeslat SMS nebo zprávu XMPP ).
- RFC 5436 - "Sieve Notification Mechanism: mailto" - popisuje e-mailová upozornění.
- RFC 5437 – „Sieve Notification Mechanism: Extensible Messaging and Presence Protocol (XMPP)“ – popisuje profil pro zasílání upozornění přes XMPP (Jabber).
- RFC 5490 (anglicky) – „The Sieve Mail-Filtering Language – Extensions for Checking Mailbox Status and Accessing Mailbox Metadata“ – umožňuje zkontrolovat existenci poštovní schránky a vytvořit poštovní schránku.
- RFC 5703 (anglicky) – „Sieve Email Filtering: MIME Part Tests, Iteration, Extraction, Replacement, and Enclosure“ – umožňuje analyzovat a manipulovat s MIME částmi těla zprávy.
Dokumenty ve vývoji (stav „Koncept“):
- draft-ietf-sieve-notify-sip-message-08 (anglicky) - "Sieve Notification Mechanism: SIP MESSAGE".
- draft-ietf-sieve-include-15 (anglicky) - "Sieve Email Filtering: Include Extension" - možnost zahrnout do textu skriptu další soubor.
- draft-ietf-sieve-convert-06 (anglicky) - "Rozšíření Sieve pro převod zpráv před doručením".
Vývoj nových rozšíření pokračuje.
Syntaxe jazyka
Komentáře
Jako každý jazyk má Sieve komentáře . Existují dva typy komentářů: víceřádkové a jednořádkové.
Víceřádkové komentáře se skládají z více řádků, musí začínat "/*" a končit "*/" .
/*
tohle je
víceřádkový
komentář
*/
Jednořádkové komentáře komentují pouze jeden řádek, kterému předchází znak „#“ .
# tohle je
# jednovrstvé
# komentáře
Strukturální operátory
[..]
Hranaté závorky se používají k seskupování prvků. Například ["user1@domain.ru", "user2@domain.ru", "user3@domain.ru"] definuje skupinu poštovních schránek.
{ .. }
Složené závorky se používají k vytvoření skupiny akcí, které budou provedeny, pokud je podmínka pravdivá.
-li
Porovnává určité parametry. Pokud jsou pravdivé, provede se určitý blok příkazů.
elsif
Pokud se používá více porovnání, pak je nejlepší použít elsif . Akce je podobná jako if .
jiný
Pokud není splněna žádná z výše uvedených podmínek, provedou se příkazy uzavřené v { .. } za else .
stop
Zastaví zpracování zpráv.
Akce s písmeny
držet
Uloží kopii zprávy do výchozího adresáře.
soubor do "adresáře"
Přesune e-mail do zadaného adresáře. Pokud neexistuje, pak se e-mail uloží do výchozího adresáře a neprovede se žádná další akce.
vyřadit
Smaže písmeno. Žádné oznámení o smazání se nezasílá.
odmítnout "<důvod>"
Vrátí dopis odesílateli s uvedením důvodu chyby doručení.
přesměrování "<mailbox>"
Přesměruje zprávu do zadané poštovní schránky. Kopie zprávy se nevytvoří.
dovolená <možnosti>
Automaticky odpovídá na e-maily.
Porovnávací operátory
velikost
Porovná velikost přijatého e-mailu se zadanou velikostí. Velikost můžete zadat v
bajtech ,
kilobajtech a
megabajtech , k tomu musíte zadat KB nebo MB (pro kilobajty, resp. megabajty) za požadovanou velikost souboru.
záhlaví
Porovná hlavičku e-mailu s určitými parametry.
adresa
Porovnává pouze pole adresy.
allof(<volby>)
Porovná více hodnot, které jsou zadány jako parametry. Vrátí hodnotu true, pokud jsou splněny všechny podmínky.
anyof(<options>)
Porovná více hodnot, které jsou zadány jako parametry. Vrátí hodnotu true, pokud je splněna alespoň jedna podmínka.
skutečný
Vždy je to pravda.
Nepravdivé
Vždy je to nepravdivé.
ne <parametr>
Pokud se parametr vyhodnotí jako nepravda, pak se celý výraz vyhodnotí jako pravda.
Příklad
vyžadovat["fileinto", "dovolená"];
#
# smazat všechny zprávy označené serverem jako spam
#
if header :is "X-Spam-Flag" "YES" {
vyřadit; # Věřte Spam Assassin
}
#
# Dopisy související s důležitým projektem, vložte do speciální složky
#
pokud někdo z (
adresa :doména "od" "important.ru",
adresa "od" [
"important.personal@gmail.com",
"important.other@gmail.com"
],
adresa ["to","cc"] "projects.important@mycompany.ru"
) {
zadejte do "Zákazníci. Důležité";
}
#
# V reakci na e-mail od naší společnosti požadující nahlášení, odpovíme okamžitě :)
#
if allof (adresa :doména "od" "mojespolečnost.ru", hlavička :obsahuje "předmět" ["přehled", "přehled"]) {
dovolená :dny 1 :adresy "reports@mycompany.ru" :subject "V reakci na vaši žádost" :mime
"MIME verze: 1.0
Content-Typ: text/html; znaková sada=KOI8-R
Kódování pro přenos obsahu: 7bit
<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">
<HTML><HEAD><META http-equiv=Content-Type content=\"text/html; charset=windows-KOI8-R\"></HEAD>
<BODY>Hlášení zatím bohužel nemohu odeslat. (Toto je příklad odpovědi na e-mail s daným předmětem.)</BODY></HTML>";
}
Odkazy
- ↑ Charta pracovní skupiny Sieve Archivováno 31. prosince 2005. (Angličtina)