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
- În ianuarie 2001, specificația limbajului a fost descrisă în RFC 3028 de către Tim Showalter.
- În septembrie 2003, a fost aprobată extensia „Sieve Email Filtering - Subaddress Extension”: RFC 3598 (K. Murchison, Oceana Matrix Ltd.)
- În februarie 2004, „SIEVE Email Filtering: Spamtest and VirusTest Extensions” a fost aprobată: RFC 3685 (C. Daboo, Cyrusoft International, Inc.)
- Cyrusoft a depus faliment pe 1 octombrie 2005 . De atunci, munca la Sieve a fost continuată de comunitatea open source, inclusiv de grupul de lucru Sieve al IETF .
- În 2008, o nouă specificație de limbă a fost aprobată în RFC 5228 și multe extensii.
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 ”
:
- RFC 5173 (engleză) - „Sieve Email Filtering: Body Extension” - o extensie pentru verificarea de către script nu numai a antetelor, ci și a corpului (textului) mesajului.
- RFC 5229 - „Sieve Email Filtering: Variables Extension” - Permite unui script să stocheze și să citească valorile variabilelor.
- RFC 5230 (engleză) - „Sieve Email Filtering: Vacation Extension” - descrie pașii pentru a trimite un răspuns informând expeditorul că destinatarul poate fi absent.
- RFC 5231 (engleză) - „Sieve Email Filtering: Relational Extension” - descrie verificări relative, de asemenea, puteți verifica nu numai valoarea câmpului, ci și numărul de apariții ale valorii verificate în antetul mesajului și câmpurile plic.
- RFC 5232 - „Sieve Email Filtering: Imap4flags Extension” - Permite unui script să verifice și să seteze steaguri IMAP4 pentru un mesaj.
- RFC 5233 (engleză) - „Sieve Email Filtering: Subaddress Extension” - permite scriptului să verifice „subadresele” - adrese de forma „[email protected]” (adresele de acest tip sunt folosite în sendmail în virtusertable).
- RFC 5235 (engleză) - „Sieve Email Filtering: Spamtest and Virustest Extensions” - permite scriptului să interacționeze cu programele antivirus și de detectare a spam-ului.
În viitor, acest grup de lucru a adăugat multe extensii în același statut de „Propunere de standardizare”:
- RFC 5293 - „Sieve Email Filtering: Editheader Extension” – Permite unui script să adauge și să elimine câmpuri pentru antetul e -mailului .
- RFC 5429 (engleză) - „Sieve Email Filtering: Reject and Extended Reject Extensions” - vă permite să respingeți mesajele în stadiul LMTP / SMTP , fie cu notificare MDN ( Message Disposition Notifications ) sau DSN ( Delivery Status Notification ) .
- RFC 5435 (engleză) - „Sieve Email Filtering: Extension for Notifications” - permite scriptului să comute notificări „externe” despre livrarea e-mailurilor în așteptare (de exemplu, trimiterea unui mesaj SMS sau XMPP ).
- RFC 5436 - „Mecanism de notificare Sieve: mailto” - descrie notificările prin e-mail.
- RFC 5437 - „Sieve Notification Mechanism: Extensible Messaging and Presence Protocol (XMPP)” - descrie un profil pentru trimiterea notificărilor prin XMPP (Jabber).
- RFC 5490 (engleză) - „Limbajul de filtrare a e-mailului Sieve - Extensii pentru verificarea stării cutiei poștale și accesarea metadatelor cutiei poștale” - vă permite să verificați existența unei căsuțe poștale și să creați o cutie poștală.
- RFC 5703 (engleză) - „Sieve Email Filtering: MIME Part Tests, Iteration, Extraction, Replacement, and Enclosure” - vă permite să analizați și să manipulați părțile MIME ale corpului mesajului.
Documente în curs de elaborare (starea „Ciornă”):
- draft-ietf-sieve-notify-sip-message-08 (engleză) - „Mecanism de notificare Sieve: SIP MESSAGE”.
- draft-ietf-sieve-include-15 (engleză) - „Sieve Email Filtering: Include Extension” - capacitatea de a include un alt fișier în textul scriptului.
- draft-ietf-sieve-convert-06 (engleză) - „Extensie Sieve pentru convertirea mesajelor înainte de livrare”.
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
- Sieve.Info - Site Wiki cu informații despre Sieve
- RFC 5228 - Specificația limbajului Sieve
- ↑ Carta grupului de lucru Sieve Arhivat 31 decembrie 2005. (Engleză)