Introduction Avelsieve or, verbosely, "Sieve Mail Filters Plugin for Squirrelmail" is a [1]Squirrelmail [2]plugin for creating [3]Sieve scripts on a Cyrus IMAP server that runs timsieved (Tim's Sieve daemon). Avelsieve will also be a part of [4]Cyrusmaster, a web-based Cyrus administration tool. It should provide the same interface of the user's filters to administrators and/or helpdesk staff. Sieve is a mail filtering language, intended for server-side filtering of emails. See [5]RFC 3028 and [6]Cyrusoft's page about Sieve for more details. About this implementation The web interface provides a wizard-like interface that, in the end, creates part of a Sieve script, a so called rule. It then assembles all the rules to form a Sieve script. For the sake of user-friendliness, it provides only a subset of Sieve's functionality; the main goal was to provide a simple interface for Joe User to create server-side filters without knowing anything about the language itself. The plugin does not provide a parser; instead, it saves PHP meta-data in the script itself, in order to continue editing and manipulation of the filters. The only thing that is supported is a script called "phpscript" on the Cyrus server. Multiple scripts are not supported yet. I've tried to make it sane enough that it won't break a lot. Some more testing is needed - hence the beta status. Status * Devel Branch (1.9): Considered beta quality. This release should be considered 'beta quality'. At the moment it works for me without any major glitches, but who knows, there might be a bug that DoS'es the Apache Server by eating all of its memory in there. * Stable Branch (1.0): This plugin has been out for a while and is known to work pretty well. You'll have to check for yourselves if it is for a production environment. Insert standard GPL_Disclaimer(); here. Features This plugin provides: * Simple HTML interface. * Javascript functionality that enhances the user interaction, however there is HTML-only fallback for accessibility. * Match messages based on email headers, size, or apply to all messages. * Configurable number of header matches. * Support of keeping a message, move to an existing or new folder, email redirection. * Supports Sieve Vacation. * Supports Sieve Notification action. * Create a rule on-the-fly, while reading a message in Squirrelmail. This function will auto-detect List-Id: headers for mailing lists. * Runs through all the rules, but supports a stop command when a rule matches. * Change the order of rules - or delete them altogether. * Enable / Disable rules on the fly, without deleting them. * Make a textual description of the rule. * Localizable. * Automatic adaption to the capabilities of each site's Sieve. ..but does not provide: * A Sieve parser. Screenshots If you'd like to take some quick look before installing, you can check out some [7]screenshots of avelsieve in action. Demo You can see the plugin in action, if you wish. Check the [8]Live Demo page for more information. Requirements * A Sieve management daemon (ManageSieve-compatible). It has been tested with [9]Cyrus IMAP server and its timsieved Sieve parser. There have been reports about it working with [10]DBMail, too. * [11]Squirrelmail version 1.4.0 or greater. * The [12]multibyte string (mbstring) PHP extension is very much recommended. It provides very robust conversion between character sets. Otherwise, recode or iconv will also do the job. * [13]sieve-php.lib, a PHP class for transporting Sieve scripts, by [14]Dan Ellis. Included. License This program is free software; you can redistribute it and/or modify it under the terms of the [15]GNU General Public License as published by the [16]Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. [17]See the GNU General Public License for more details. Author [18]Alexandros Vellis, [19]Network Operations Centre, [20]University of Athens ([21]Personal home page). References 1. http://www.squirrelmail.org/ 2. http://www.squirrelmail.org/plugins.php 3. http://www.cyrusoft.com/sieve 4. http://cyrusmaster.edunet.uoa.gr/ 5. http://www.faqs.org/rfcs/rfc3028.html 6. http://www.cyrusoft.com/sieve/ 7. file://localhost/tmp/avelsieve/doc/avelsieve_screenshots.php 8. file://localhost/tmp/avelsieve/doc/demo.php 9. http://asg.web.cmu.edu/cyrus/ 10. http://www.dbmail.org/ 11. http://www.squirrelmail.org/ 12. http://www.php.net/manual/en/ref.mbstring.php 13. http://sieve-php.sourceforge.net/ 14. mailto:danellis__@.com 15. http://www.gnu.org/licenses/gpl.html 16. http://www.fsf.org/ 17. http://www.gnu.org/licenses/gpl.html 18. mailto:avel@users.sourceforge.net 19. http://www.noc.uoa.gr/ 20. http://www.uoa.gr/ 21. http://www.noc.uoa.gr/~avel/