This is an old revision of the document!

Sieve Libraries, Classes, APIs

Sieve (The Language Itself)

The following projects provide parsers for the Sieve Language.

  • JSieve is a Java implementation of the Sieve mail filtering language. It is implemented as a language processor that can be plugged into any internet mail application to add Sieve support. jSieve is a subproject of Apache JAMES.
    • Language: Java
  • libSieve implements the Sieve mail sorting language, per RFC 3028. LibSieve was based on the Cyrus Imapd project, but offers a standalone library that other projects can use.
    • Language: C
  • libsieve-php implements the Sieve mail sorting language, per RFC 3028 and extensions, for PHP. Currently under development. ManageSieve support is planned.
    • Language: PHP
  • Net::Sieve::Script is a Perl interface to parse and write Sieve scripts. Works together with Net::Sieve (below).
    • Language: Perl
  • liblistserv can generate for each Listserv mailing list a Sieve script, that rejects the mails that would be anyway bounced by listserv on delivery.

ManageSieve (The Transport Protocol for Script Management)

The following projects provide support for ManageSieve; the purpose is to upload and activate a Sieve script to an email service. It is assumed that the actual Sieve script is created by other means (e.g. manually or through a client UI).

  • sieve-php is a PHP ManageSieve class.
    • Language: PHP
  • PEAR's Net_Sieve is another PHP ManageSieve class that is bundled in PHP's PEAR.
    • Language: PHP
  • Net::Sieve on CPAN provides a Perl library interface. This is derived from the sieve-connect client. See also Net::Sieve::Script (above).
    • Language: Perl
  • pysieved Python Managesieve Server.
    • Language: Python