Carnegie Mellon University Website Home Page
 

Introduction

Sieve is a language that can be used to create filters for electronic mail. Based on a series of matching rules that work from the message headers, Sieve scripts can discard mail, bounce it back to the sender with a rejection notice, redirect the message to another address or file mail into a specific folder. The Cyrus IMAP server enables server-side mail filtering. In contrast, client side filtering on the old AMS mail system (FLAMES) was triggered when the user launched the mail reading program. This made the concept of vacation mail infeasible. With server-side filtering, vacation mail is possible and your filtering rules are in effect regardless of which machine or mail reader you use.

Note: You can also install Sieve scripts online via the Carnegie Mellon Web Portal. Select the My Accounts tab and then select the Edit Sieve Scripts option from the left sidebar.

Technical Profile

What Sieve is

Sieve is a valuable, safe server-side system that facilitiates the development of simple mail filters and GUI-based editors but restricts anything that is more complex. The language is not Turing-complete, and offers no way to write a loop or a function. Variables are not provided.

Sieve is not tied to any particular operating system or mail architecture. It requires the use of RFC822-compliant messages, but otherwise should work well with other systems that meet these criteria. Sieve is designed as a proposed Internet Standard. Click here for detailed information on the Sieve RFC. Sieve design and development has followed Internet Engineering Task Force (IETF) procedures as described in RFC 2026.

We expect Sieve to be a popular tool the language is 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-based editors will be the preferred way of editing filters for most users.

What Sieve is not

Sieve is a specialized standard filtering syntax/language and is not intended to be a complete programming language.

  • Sieve is not intended to be useful with filtering or processing anything other than RFC822 messages.
  • Sieve is not intended as a replacement for the basis of a specific existing tool.
  • Sieve does not provide the most sophisticated filtering syntax possible. However, it does provide fundamental basics common to all RFC822 messages to establish a basic standard syntax for interoperation. It also provides an extension mechanism to allow individual implementations to provide extended functionality within an open standards framework. As such, Sieve is intended as a first-stage building block for mail filters and provides significant functionality for a large number of uses.
  • Sieve is not a once-and-for-all solution for pressing problems addressed by filtering, such as anti-Spam efforts, although it can facilitate construction of such solutions.
Last Updated: 6/20/06