jSieve is a Java implementation of the Sieve mail filtering language defined by RFC 3028. jSieve is implemented as a language processor that can be plugged into any internet mail application to add Sieve support.

JSieve Utilities collects lightweight frameworks and utilities useful when working with Sieve (in general) and JSieve (in particular).

What is Sieve?

Sieve is an extensible mail filtering language. It's limited expressiveness (no loops or variables, no tests with side effects) allows user created scripts to be run safely on email servers. Sieve is targeted at the final delivery phase (where an incoming email is transferred to a user's mailbox).

Sieve scripts are composed of commands. Control commands manage the execution of the script. Test commands define side-effect free criteria. Action commands are mail operations to be performed.


Script Checker

Checks Sieve scripts. Includes monitoring controlled execution of a script against a message.

Sieve In Xml

Sieve-in-xml is an Internet Draft. It describes a method to convert Sieve scripts to and from an XML format suitable for editing by a UI. A typical use case is as the payload for a web based editor backed by web services.

OutputUtils contains an experimental preview of a subset of this draft. It allows a JSieve node tree to be output as sieve-in-xml. Full support is planned but feedback is encouraged, through the mailing lists or the issue tracker.