RFC 3028:Sieve: A Mail Filtering Language
RFC-Ref

language


Click on the red underlined text to get to the source

... This memo documents a language that can be used to create filters for ...
... The language is powerful enough to be useful but limited in order to allow for a safe server-side filtering ...
... filters, along with facilitating the use of GUIs for filter creation and manipulation. The language is not Turing-complete: it provides no way to write a loop or a function and variables are not provided. ...
... mailing lists. However, many others did not make use of the Andrew system's FLAMES filtering language [FLAMES] due to difficulty in setting it up. ...
... Because of the expectation that users will make use of filtering if it is offered and easy to use, this language has been made simple enough to allow many users to make use of it, but rich enough that it can be used productively. However, it is expected that GUI ...


... Form of the Language ...
... The language consists of a set of commands. Each command consists of a set of tokens delimited by whitespace. The command identifier ...
... The language is represented in UTF-8, as specified in [UTF-8]. ...
... allows the user to specify which [ACAP] comparator will be used to compare two strings, since different languages may impose different orderings on UTF-8 [UTF-8 ...
... "\\*" in strings to match against themselves. The first backslash escapes the second backslash; together, they escape the "*". This is awkward, but it is commonplace in several programming languages that use globs and regular expressions. ...
... In order to allow for language-independent, case-independent matches, the match type may be coupled with a comparator name. Comparators are described for [ACAP ...
... Note: The reason for this restriction is that prior experiences with languages such as LISP and Tcl suggest that this is a workable way of noting that a given script uses an extension. ...
... In any programming language, there are compile-time and run-time errors. ...


... The semantics are similar to those of any of the many other programming languages these control commands appear in. When the interpreter sees an "if", it evaluates the test associated with it. If the test is true, it executes the block associated with it. ...


... While an important part of this language, "discard" has the potential to create serious problems for users: Students who leave themselves ...


... New control structures, actions, and tests can be added to the language. Sites must make these features known to their users; this document does not define a way to discover the list of extensions supported by the server ...
... Any extensions to this language MUST define a capability string that uniquely identifies that extension. If a new version of an extension ...
... In a situation where there is a submission protocol and an extension advertisement mechanism aware of the details of this language, scripts submitted can be checked against the mail server to prevent use of an extension that the server does not support. ...


... The Sieve grammar is separated into tokens and a separate grammar as most programming languages are. ...


... Implementations SHOULD take measures to prevent languages from looping. ...


... copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. ...



Google
Web
RFC-Ref