Avelsieve or, verbosely, "SIEVE Mail Filters Plugin for
Squirrelmail" is a Squirrelmail
plugin for creating SIEVE scripts on a Cyrus IMAP server
that runs timsieved (Tim's SIEVE daemon).
SIEVE is a mail filtering language, intended for server-side filtering of
emails. See RFC 3028 and Cyrusoft's page about SIEVE for more
details.
Notice: change in the creation and handling of header-type filtering
rules will mean that the existing rules that your users have probably created
in the pre-0.6 era will not be displayed anymore. This might not be
catastrophic, but it would be better for the users to recreate the scripts
anyway, to avoid any confusion.
The web interface provides a wizard-like interface that, in the end,
creates part of a SIEVE script, a 'rule' as I call it. It then assembles all
the rules to form a SIEVE script.
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.
I haven't followed the Squirrelmail coding style, sorry. I use tabs. :)
This is beta software. It 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. Features (and bugs) are added every other day. Insert standard
GPL_Disclaimer(); here.
This plugin provides:
- Simple HTML, no Javascript.
- 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.
- Vacation (a la SIEVE).
- Runs through all the rules, but supports a "stop" command when a rule matches.
- Change the order of rules - or delete them altogether.
- Make a textual description of the rule.
- Localizable.
- Automatic adaption to the capabilities of each site's SIEVE.
..but does not provide:
- Error handling when creating a folder with invalid characters etc.
- Folder creation does not work yet while editing an existing rule.
If you'd like to take some quick look before installing, here are some screenshots of avelsieve in action:
![[action.png]](images/avelsieve/.catalogimages/action-png-indexicon.jpg) Action to take in a rule |
![[headermatch.png]](images/avelsieve/.catalogimages/headermatch-png-indexicon.jpg) Header match definition |
![[table.png]](images/avelsieve/.catalogimages/table-png-indexicon.jpg) The table that lists all the rules |
Aside from the screenshots above, you can see the plugin in action, if you
wish. Check the Live Demo page for more information.
- It has been tested with Cyrus IMAP
server and its timsieved SIEVE parser.
- Squirrelmail version 1.4.0 or
greater.
- sieve-php.lib, a PHP class
for transporting SIEVE scripts, by Dan Ellis. Included.
- The mhash PHP extension, if you need DIGEST-MD5 or CRAM-MD5 authentication
methods.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the 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. See the GNU General Public
License for more details.
There's still a lot of stuff to do. If anyone wants to help, you are mostly
welcome!
- Error handling when creating a new folder in step #3 really sucks.
Fix it.
- (1.0) Support "ready-made rules", like: All messages sent
only to me, Place emails alphabetically in folders A-M and N-Z,
Spam Filter etc. (need ideas!)
- (1.0) In a message with List-ID: header, provide the option to
automatically add a filtering rule for mailing list emails.
- Support Sieve
Extension: Relational Tests, the :count matchtype.
- Support
Sieve - body extension (started partial implementation)
- Respond with mime-encoded files. Support the :mime parameter. (info-cyrus
relevant mail)
- (2.0+) Support multiple SIEVE scripts.
- (2.0?) Synchronization between folders mentioned in fileinto rules and
actual folders that exist in the Cyrus tree.
- (3.0+) Sort out the GUI when adding a new rule. Make it more dynamic and
support mixed, complicated AND/OR logic.
Alexandros Vellis,
Network Operations Centre, University of Athens
(Personal home page).
Translators:
- Chinese (simplified): Jack Gao (jack @ gaofamily org)
- French: Juan-Francisco Diez (jfdiez @ sitejf com)
- French: John Cotter of Sierre-Energie S.A. (john.cotter @ siesa ch)
- Finnish: Veli Pirttila (titus @ iki.fi)
- German: Torsten Westermann (torsten.westermann @ addcom de)
- Greek (Hellenic): Alexandros Vellis (avel @ users.sourceforge.net)
- Icelandic: Þór Sigurðsson (tosi @ hi.is)
- Norwegian: Alexander Brill (iowa @ project23.no)
- Russian: Vadim Kozlov (vad @ tomsknet ru)
- Spanish: Eduardo Mayoral (emayoral @ arsys es)
- David Mendenhall (david at digitalfountain com), for a lot
of code contributions and good ideas (just check the changelog for 0.4). Many
thanks!
- Dan Ellis (danellis at rushmore dot com), for developing the sieve-php class, since this plugin
was originally based on his class and test scripts.
- Our translators!
- Nikos Voutsinas (nvoutsin at noc uoa gr), for all the ideas, suggestions
and constructive criticism. And for patching Cyrus imapd to work better
with Squirrelmail.
- Maria Nassiakou for bringing us ice cream.
- Thumbnails in this page generated by HTMLThumbnail
1.1.4