Sigte
Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den
version , der blev gennemgået den 9. januar 2014; checks kræver
10 redigeringer .
Sieve er et sprog til beskrivelse af filtreringsregler for postbeskeder . Oprettet af Cyrusoft International, Inc./ISAMET, mens du arbejdede på Cyrus IMAP -mailserveren .
Historie
- I januar 2001 blev sprogspecifikationen beskrevet i RFC 3028 af Tim Showalter.
- I september 2003 blev udvidelsen "Sieve Email Filtering - Subaddress Extension" godkendt: RFC 3598 (K. Murchison, Oceana Matrix Ltd.)
- I februar 2004 blev "SIEVE Email Filtering: Spamtest and VirusTest Extensions" godkendt: RFC 3685 (C. Daboo, Cyrusoft International, Inc.)
- Cyrusoft indgav en konkursbegæring den 1. oktober 2005 . Siden da er arbejdet med Sieve blevet videreført af open source-fællesskabet, herunder IETF 's Sieve-arbejdsgruppe .
- I 2008 blev en ny sprogspecifikation godkendt i RFC 5228 og mange udvidelser.
Udvidelser
I januar 2008 opdaterede Sieve Working Group [1] kernespecifikationen for sproget, og skabte RFC 5228 til at erstatte den originale RFC 3028 , og tilføjede følgende udvidelser som en " Proposed Standard "
:
- RFC 5173 (engelsk) - "Sieve Email Filtering: Body Extension" - en udvidelse til kontrol af scriptet, ikke kun overskrifterne, men også brødteksten (teksten) af meddelelsen.
- RFC 5229 - "Sieve Email Filtering: Variables Extension" - Tillader et script at gemme og læse variabelværdier.
- RFC 5230 (engelsk) - "Sieve Email Filtering: Vacation Extension" - beskriver trinene til at sende et svar, der informerer afsenderen om, at modtageren muligvis er fraværende.
- RFC 5231 (engelsk) - "Sieve Email Filtering: Relational Extension" - beskriver relative kontroller, du kan også kontrollere ikke kun feltværdien, men også antallet af forekomster af den kontrollerede værdi i meddelelseshovedet og kuvertfelterne.
- RFC 5232 - "Sieve Email Filtering: Imap4flags Extension" - Tillader et script at kontrollere og indstille IMAP4 -flag for en besked.
- RFC 5233 (engelsk) - "Sieve Email Filtering: Subaddress Extension" - tillader scriptet at kontrollere "subadresser" - adresser på formen "[email protected]" (adresser af denne type bruges i sendmail i virtusertable).
- RFC 5235 (engelsk) - "Sieve Email Filtering: Spamtest and Virustest Extensions" - tillader scriptet at interagere med antivirus- og spamdetektionsprogrammer.
I fremtiden tilføjede denne arbejdsgruppe mange udvidelser i samme status som "Forslag til standardisering":
- RFC 5293 - "Sieve Email Filtering: Editheader Extension" - Tillader et script at tilføje og fjerne e-mail-header-felter .
- RFC 5429 (engelsk) - "Sieve Email Filtering: Reject and Extended Reject Extensions" - giver dig mulighed for at afvise beskeder på LMTP / SMTP -stadiet enten med MDN ( Message Disposition Notifications ) eller DSN ( Delivery Status Notification ) notifikation .
- RFC 5435 (engelsk) - "Sieve Email Filtering: Extension for Notifications" - tillader scriptet at skifte "eksterne" meddelelser om afventende postlevering (f.eks. send SMS eller XMPP- besked ).
- RFC 5436 - "Sieve Notification Mechanism: mailto" - beskriver e-mail-meddelelser.
- RFC 5437 - "Sieve Notification Mechanism: Extensible Messaging and Presence Protocol (XMPP)" - beskriver en profil til at sende meddelelser via XMPP (Jabber).
- RFC 5490 (engelsk) - "The Sieve Mail-Filtering Language - Extensions for Checking Mailbox Status and Accessing Mailbox Metadata" - giver dig mulighed for at kontrollere, om der findes en postkasse og oprette en postkasse.
- RFC 5703 (engelsk) - "Sive Email Filtering: MIME Part Tests, Iteration, Extraction, Replacement, and Enclosure" - giver dig mulighed for at parse og manipulere MIME-delene af meddelelsesteksten.
Dokumenter under udvikling ("Kladde"-status):
- draft-ietf-sieve-notify-sip-message-08 (engelsk) - "Sieve Notification Mechanism: SIP MESSAGE".
- draft-ietf-sieve-include-15 (engelsk) - "Sieve Email Filtering: Include Extension" - muligheden for at inkludere en anden fil i scriptteksten.
- draft-ietf-sieve-convert-06 (engelsk) - "Sive-udvidelse til konvertering af meddelelser før levering".
Udvikling af nye udvidelser fortsætter.
Syntaks for sproget
Kommentarer
Som ethvert sprog har Sieve kommentarer . Der er to typer kommentarer: multi-line og single-line.
Flerlinjekommentarer består af flere linjer, skal begynde med "/*" og slutte med "*/" .
/*
dette er
multiline
kommentar
*/
Enkeltlinjekommentarer kommenterer kun på en enkelt linje, som er indledt af et "#" .
# dette er
# smarte replikker
# kommentarer
Strukturelle operatører
[..]
Firkantede parenteser bruges til at gruppere elementer. For eksempel definerer ["bruger1@domæne.ru", "bruger2@domæne.ru", "bruger3@domæne.ru"] en postkassegruppe.
{ .. }
Krøllede klammeparenteser bruges til at oprette en gruppe handlinger, der vil blive udført, hvis en betingelse er sand.
hvis
Sammenligner visse parametre. Hvis de er sande, udføres en bestemt blok af udsagn.
elsif
Hvis der bruges flere sammenligninger, er det bedst at bruge elsif . Handlingen ligner hvis .
andet
Hvis ingen af ovenstående betingelser er opfyldt, udføres de udsagn, der er indesluttet i { .. } efter else .
hold op
Stopper meddelelsesbehandlingen.
Handlinger på bogstaver
holde
Gemmer en kopi af beskeden i standardbiblioteket.
fil i "mappe"
Flytter e-mailen til den angivne mappe. Hvis den ikke eksisterer, gemmes e-mailen i standardbiblioteket, og der foretages ikke yderligere.
kassere
Sletter et brev. Der sendes ingen meddelelse om sletning.
afvis "<årsag>"
Returnerer et brev til afsenderen med angivelse af årsagen til leveringsfejlen.
omdirigere "<postkasse>"
Omdirigerer beskeden til den angivne postkasse. Der oprettes ikke en kopi af meddelelsen.
ferie <indstillinger>
Svarer automatisk på e-mails.
Sammenligningsoperatorer
størrelse
Sammenligner størrelsen af den modtagne e-mail med en specificeret størrelse. Du kan angive størrelsen i
byte ,
kilobyte og
megabyte , for dette skal du angive KB eller MB (for henholdsvis kilobyte eller megabyte) efter den påkrævede filstørrelse.
header
Sammenligner e-mail-headeren med visse parametre.
adresse
Sammenligner kun adressefeltet.
allof(<indstillinger>)
Sammenligner flere værdier, der er angivet som parametre. Returnerer sand, hvis alle betingelser er opfyldt.
nogen af (<indstillinger>)
Sammenligner flere værdier, der er angivet som parametre. Returnerer sand, hvis mindst én betingelse er sand.
rigtigt
Det er altid sandt.
falsk
Det er altid falsk.
ikke <parameter>
Hvis parameteren evalueres til falsk, evalueres hele udtrykket til sand.
Eksempel
kræve["fileinto", "ferie"];
#
# slet alle meddelelser markeret som spam af serveren
#
if header :is "X-Spam-Flag" "YES" {
kassere; # tro Spam Assassin
}
#
# Breve relateret til et vigtigt projekt, lagt i en særlig mappe
#
hvis nogen af (
adresse :domæne "fra" "important.ru",
adresse "fra" [
"
[email protected]",
"
[email protected]"
],
adresse ["til","cc"] "
[email protected]"
) {
fileinto "Customers.Important";
}
#
# Som svar på en e-mail fra vores virksomhed, der anmoder om en rapport, svarer vi straks :)
#
if allof (adresse :domæne "fra" "mycompany.ru", header :indeholder "emne" ["rapport", "rapport") {
ferie :dage 1 :adresser "
[email protected]" :subject "Som svar på din anmodning" :mime
"MIME-version: 1.0
Indholdstype: tekst/html; tegnsæt=KOI8-R
Indholdsoverførselskodning: 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>Jeg kan desværre ikke sende rapporten endnu. (Dette er et eksempel på et svar på en e-mail med et givet emne.)</BODY></HTML>";
}
Links
- ↑ Sieve arbejdsgruppe charter Arkiveret 31. december 2005. (Engelsk)