Sită

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 9 ianuarie 2014; verificările necesită 10 modificări .

Sieve  este un limbaj pentru descrierea regulilor de filtrare pentru mesajele e- mail . Creat de Cyrusoft International, Inc./ISAMET în timp ce lucra pe serverul de e-mail Cyrus IMAP .

Istorie

Extensii

În ianuarie 2008, grupul de lucru Sieve [1] a actualizat specificația de bază a limbajului, creând RFC 5228 pentru a înlocui RFC 3028 original și a adăugat următoarele extensii ca „ Standard propus: 

În viitor, acest grup de lucru a adăugat multe extensii în același statut de „Propunere de standardizare”:

Documente în curs de elaborare (starea „Ciornă”):

Dezvoltarea de noi extensii continuă.

Sintaxa limbii

Comentarii

Ca orice limbă, Sieve are comentarii . Există două tipuri de comentarii: cu mai multe rânduri și cu o singură linie.

Comentariile pe mai multe linii constau din mai multe rânduri, trebuie să înceapă cu „/*” și să se termine cu „*/” .

/* aceasta este multilinie cometariu */

Comentariile pe o singură linie comentează doar pe o singură linie, care este precedată de un „#” .

# aceasta este # cu o singură linie # de comentarii

Operatori structurali

[..] Parantezele pătrate sunt folosite pentru a grupa elemente. De exemplu, ["[email protected]", "[email protected]", "[email protected]"] definește un grup de cutii poștale. { .. } Acoladele sunt folosite pentru a crea un grup de acțiuni care vor fi executate dacă o condiție este adevărată. dacă Compară anumiți parametri. Dacă sunt adevărate, atunci se execută un anumit bloc de instrucțiuni. elsif Dacă sunt utilizate mai multe comparații, atunci cel mai bine este să utilizați elsif . Acțiunea este similară cu dacă . altfel Dacă niciuna dintre condițiile de mai sus nu este îndeplinită, atunci instrucțiunile incluse în { .. } după else sunt executate . Stop Oprește procesarea mesajelor.

Acțiuni pe litere

a pastra Stochează o copie a mesajului în directorul implicit. fișier în „director” Mută ​​e-mailul în directorul specificat. Dacă nu există, atunci e-mailul este stocat în directorul implicit și nu se întreprinde nicio măsură suplimentară. arunca Șterge o scrisoare. Nu se trimite nicio notificare de ștergere. respinge „<motiv>” Returnează expeditorului o scrisoare care indică motivul erorii de livrare. redirecționează „<căsuța poștală>” Redirecționează mesajul către căsuța poștală specificată. O copie a mesajului nu este creată. vacanţă <opţiuni> Răspuns automat la e-mailuri.

Operatori de comparație

mărimea Compară dimensiunea e-mailului primit cu o dimensiune specificată. Puteți specifica dimensiunea în octeți , kiloocteți și megaocteți , pentru aceasta trebuie să specificați KB sau MB (pentru kilobytes sau megaocteți, respectiv) după dimensiunea fișierului necesară. antet Compară antetul e-mailului cu anumiți parametri. abordare Compară doar câmpul de adresă. allof(<opțiuni>) Compară mai multe valori care sunt specificate ca parametri. Returnează adevărat dacă sunt îndeplinite toate condițiile. oricare dintre(<opțiuni>) Compară mai multe valori care sunt specificate ca parametri. Returnează adevărat dacă cel puțin o condiție este adevărată. Adevărat Este întotdeauna adevărat. fals Este întotdeauna fals. nu <parametru> Dacă parametrul este evaluat ca fals, atunci întreaga expresie este evaluată ca adevărat.

Exemplu

cere["fileinto", "vacation"]; # # șterge toate mesajele marcate ca spam de către server # dacă antetul: este „X-Spam-Flag” „DA” { arunca; # crede Spam Assassin } # # Scrisori legate de un Proiect Important, puse într-un folder special # daca vreunul( adresa :domeniu "de la" "important.ru", adresa „de la” [ „[email protected]”, „[email protected]” ], adresa ["la","cc"] "[email protected]" ) { fișierîn „Clienți.Important”; } # # Ca răspuns la un e-mail de la compania noastră care solicită un raport, vom răspunde imediat :) # if allof (adresa:domeniul „de la” „compania mea.ru”, antetul :conține „subiect” [„raport”, „raport”]) { vacanță :zile 1 :adrese „[email protected]” :subiect „Ca răspuns la solicitarea dumneavoastră” :mime „Versiunea MIME: 1.0 Tip de conținut: text/html; set de caractere=KOI8-R Codare de transfer de conținut: 7 biți <!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>Din păcate, nu pot trimite raportul încă. (Acesta este un exemplu de răspuns la un e-mail cu un anumit subiect.)</BODY></HTML>"; }

Link -uri

  1. Carta grupului de lucru Sieve Arhivat 31 decembrie 2005.  (Engleză)