Sieve is language that can be used to create filter script for email. It owes its creation to the CMU Cyrus Project, creators of Cyrus IMAP server.
The language was standardized in the RFC 3028 (obsolete version) and replaced by RFC 5228. Several RFCs also published to extends functionality of Sieve. The ManageSieve protocol (defined in RFC 5804) allows users to manage their Sieve scripts on a remote server.
Sieve can be implemented in mail server. Script will be executed during final delivery, when the message is moved to the user-accessible mailbox. Several examples of Server-Based Sieve are:
- Dovecot (MDA with Pigeonhole project)
- Exim v4 (MTA)
- Perdition (proxy server supporting POP3, IMAP)
System administrator can use sieve to implement system wide filtering, for example: to move message to Spam Folder when its spam score exceeds threshold. Every user can be also write their own sieve script.
Sieve can be implemented in mail client too. Scrip will be executed when mail client is fetching/synchronizing email from the server. Several examples of Client-Based Sieve are:
- Thunderbird desktop mail client (with ManageSieve extension)
- Squirrelmail Webmail (with Avelsieve plugin)
- Roundcube Webmail