Avelsieve 1.9.9 implements the Index extension, as defined in RFC 5260: Sieve Email Filtering Date and Index Extensions.
Normally, a Sieve "header" test would be performed in all headers of the same name. The Index Extension to Sieve is a pretty simple extension that adds the capability of specifying a particular header index in a test.
When the "index" capability is detected via ManageSieve capabilities response, then the user interface will be enhanced with options to specify the index of the header to operate on.
The most common scenario to use this feature would be in a set of Received: headers, where the user might want to perform a test only on a specific header:
Avelsieve 1.9.9 introduces setting IMAP message flags and labels as part of its feature set.
Previously, the only option for IMAP message flags was the option "keep a copy in Inbox, marked as deleted", a feature request that was implemented quickly.
If the "imap4flag" capability is detected via the ManageSieve capabilities response, then a new option "Flag" will be available under "Additional Actions":
The user has an option to easily set certain flags for the current message that is being processed by the Sieve engine.
The flags are grouped under three categories:
- Standard message flags. These are common in all IMAP servers and clients.
- Message "Labels". These are supported by many e-mail clients such as Mozilla Thunderbird.
- Free-form input box for any flags the user wishes to set.
As always, flags can be seen and searched for quickly in the main rules table screen.
The custom flags input box is clever, in that it parses the user input properly and does not duplicate any of the flags shown above; it only shows custom flags.
The generated Sieve script snippet looks like this:
In addition to this user interface, Avelsieve's Sieve generation backend supports the setflag, addflag and removeflag Sieve actions, as defined in RFC 5232. These actions can be set by a custom rule, will affect the internal variable of the Sieve server engine and in the end will result in a set of flags that will be applied later in a Sieve script.
A new kind of filters
Previously, all conditions had to do something with the incoming email message that is processed by the Sieve engine. The Date/Time? extension changes that, as it allows for different things to happen depending on the time the message arrives.
Therefore, a new select button has been added to distinguish between conditions having to do with the message itself:
and conditions that have to do with current date / time:
In the future, more options could be placed in this widget. For instance, a new kind of conditions would be a test against a variable (when Sieve Variables is implemented, see ticket #75), or any other factor outside of the current message.
Of course, regarding the date / time test, it can be checked against the date claimed by the message itself:
A user can choose to do tests against the Date: and Received: headers and act accordingly.
Editing Date / Time Conditions
A user can choose between a variety of options with regard to date / time tests.
When certain occurences are needed, the user interface consists of select widgets that guide the user along the way.
As all Avelsieve rules, Date/Time? rules are displayed in a user-friendly way in the table of filtering rules of a Sieve script:
The Sieve code generated for these rules is according to RFC 5228:
Some more substantial examples of the Sieve Date/Time? feature follow.
An equivalent of the following rule could be used by service / helpdesk / support departments that use e-mail as a medium. When outside office hours, an autoresponder is sent to the original sender.
(In fact, the "vacation" feature has even been renamed to "Vacation / Autoresponder" during this release, in order to make this kind of usage more clear).
The following rule might be a part of a ruleset that files and organizes messages in different folders per year and month.
This also shows the "occurence" user interface.
A new alpha release of Avelsieve is available.
Avelsieve 1.9.9 implements new Sieve extensions that can be found in modern server counterparts.
- The Sieve Date Extension allows conditions and tests against the message's date/time, or the date and time during the execution of the Sieve script. Sieve Date is tested against the server-counterpart implementation of the excellent IMAP server Isode M-Box.
- The Sieve Index Extension allows for checks against a specific header index (for instance, the second Received: header counting from the last one).
- The Sieve IMAP4Flags Extension allows additional Sieve actions that set specific IMAP flags or labels to messages. Standard IMAP4 flags, Thunderbird labels and even custom labels are supported.
More details for these new features can be found in the following posts in the Avelsieve Blog.
This alpha release is not recommended for production usage. However, your feedback, comments and suggestions are much appreciated. You can report bugs, enhancements and feature requests in Avelsieve Trac site, or you can communicate your ideas and suggestions in Squirrelmail-Plugins mailing list?.
You can read the more detailed Changelog here.
This release is sponsored by:
- Alexey Melnikov (Isode Ltd.)
- Ellak.gr ("Εταιρία Ελεύθερου Λογισμικού / Λογισμικού Ανοιχτού Κώδικα")
without whom the new avelsieve features wouldn't have existed.
New and regular releases are resumed for avelsieve, the Sieve Mail Filters plugin for Squirrelmail. First in line comes version 1.9.8, which is alpha quality due to the large number of changes which were only made available through the repository for three years.
The purpose of the 1.9.8 milestone is to resume regular releases of avelsieve and move on with major planned features.
As seen in the Roadmap for Avelsieve, two important Sieve extensions will be implemented in the next version: Date-Time and IMAPFlags. More information on these new features will be posted in future blog posts.
At the moment, you can download and experiment with version 1.9.8 of Avelsieve: