Sieve Libraries, Classes, APIs
Sieve (The Language Itself)
The following projects provide parsers for the Sieve Language.
- CMU's Sieve and ManageSieve implementation is available as part of the Cyrus IMAP Project.
- Language: C
- Sieve-Parser's sieve-parser is a pure-ruby implementation for parsing and manipulate the sieve scripts.
- Language: Ruby
- 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
- libmu_sieve from GNU Mailutils provides library for executing Sieve scripts.
- liblistserv can generate for each Listserv mailing list a Sieve script, that rejects the mails that would be anyway bounced by listserv on delivery.
- Language: C
- sievelib is a Python implementation of a Sieve parser and a ManageSieve client.
- Language: Python
- sifter is a Python library for parsing a Sieve script and evaluating it against an email message. Supports the regex extension, with support for other extensions under development.
- Language: Python
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).
- php-sieve-manager is a modern (started in 2022) PHP library for managing the ManageSieve protocol (RFC5228) and generating basic Sieve scripts. Used by Cypht Webmail.
- 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
-
- Language: Ruby
- ManageSieveJ is a Manage Sieve library written in Java.
- Language: Java
- 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
- mailing-lists-sieve Uploads Sieve scripts via ManageSieve that reflect the rejection/bouncing policy of mailing lists. Depends on liblistserv for Listserv mailing lists. Due to its modular design, can be extended to support other mailing lists servers.
- Language: C