Sieve-editor is a modern single page web application to manage sieve scripts using a intuitive graphical user interface.
Sieve is a language describing rules for filtering email messages at the time of final delivering. The scripts are stored and executed on the server side, thus mails can be sorted in an independent way of the user’s email client (MUA).
The application interacts with the MDA (Mail Delivery Agent) using the manage-sieve protocol, developed to allow users to upload sieve scripts to the server without granting them full shell access.
Sieve-editor is build with Angular2, boostrap and PHP. Featuring Dovecot as MDA.
The PHP back end provides a modern RESTful resource oriented JSON API. It also implements a full featured object oriented PHP parser-library of the sieve grammar.
Sieve can be extended with extensions. The modular design of the front end facilitates the implementation of support for such extensions.
Sieve-editor is more powerful as most of the sieve based filter editors, since the full power of the sieve scripting language is passed to the user. The user can nest if/else branches, combine filters with logical and/or/not and make use of a broad subset of the sieve commands defined by the RFCs and dovecot extension.
The demo runs entirely in my openshift cluster. The deployment is intended as example deployment of an microservice based app. A Diagram on how to the containers work together can be found on the openshift deployment page