  Medium-priority Items

     * Clean up ManageSieve library (e.g. function that gets sieve
       capabilities should not depend on user being logged in).
     * Support multiple Sieve scripts and switching between them.
     * Support import / export / backup of Sieve scripts.
     * Sieve scripts in shared folders, via ANNOTATEMORE (aka METADATA),
       as implemented in Cyrus 2.3.
       Current status: there is a backend library for ANNOTATEMORE
       operations already written (see annotatemore Squirrelmail plugin).
       A new "storage backend" for avelsieve needs to be written to take
       advantage of it.
     * Sort out the GUI when adding a new rule. Make it more dynamic and
       support mixed, complicated AND/OR logic.
     * Support [1]Sieve Extension: Copying Without Side Effects (RFC 3894)
     * Fine-tune TLS connections via stream_context_create() options.
     * Support sending and receiving of Sieve scripts & rules via email.
       For this purpose, according to RFC 3028, the mime media type:
       application/sieve should be used.
     * Parse Sieve scripts using [2]libsieve-php project by Heiko Hund.

  Low Priority

     * Use Squirrelmail 1.5.2 template sub-system.
     * Standalone version that does not depend on Squirrelmail.
     * Support advanced mode, so that the user can edit the Sieve scripts
       directly (if she knows Sieve). However this will disable the nice
       GUI altogether after the first edit.
     * Support [3]Sieve Extension: Relational Tests, the :count matchtype.
     * Support Sieve spamtest and virustest extensions.
     * RFC 3834 suggests to use Auto-Submitted: header for automated
       replies, such as vacation messages. Perhaps this could be added in
       the automatic rule creation. ([4]RFC 3834, [5]Valid values per
       IANA)
     * Support [6]IMAP flag Extension (its recent version).

  Things to Check

   These are implemented, but they might need some more QA.
     * [7]Sieve - body extension
       Status: implemented
     * Error handling when creating a folder with invalid characters etc.
       Status: implemented
     * Synchronization between folders mentioned in fileinto rules and
       actual folders that exist in the Cyrus tree.
       Status: Partially implemented: a warning message is being displayed
       when there is such an inconsistency.
     * Support multiple storage backends, instead of just ManageSieve, so
       that it can be used with non-ManageSieve servers such as MTAs
       (Exim).
       Status: implemented
     * Support TLS connects to timsieved, in sieve-php.lib.php.
       Status: implemented

  Wishlist

     * Header match rule: user can put a custom header to be matched
       against (editable box instead of Select).
       Status: tried it with dhtmlgoodies' corresponding widget. It will
       only work with Javascript, and it looks ugly.
     * Folder creation does not work while editing an existing rule.
     * 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!)
     * Respond with mime-encoded files. Support the :mime parameter.
       [8](info-cyrus relevant mail)
     * Support Sieve Variables Extension (draft-ietf-sieve-variables)
     * Support Sieve Date and Index Extensions
       (draft-freed-sieve-date-index)
     * Support Sieve extension for accessing mailbox metadata
       (draft-melnikov-sieve-imapext-metadata)

References

   1. http://www.ietf.org/rfc/rfc3894.txt
   2. http://libsieve-php.sourceforge.net/
   3. http://www.oceana.com/ftp/drafts/draft-segmuller-sieve-relation-01.txt
   4. http://www.rfc-editor.org/rfc/rfc3834.txt
   5. http://www.iana.org/assignments/auto-response-parameters
   6. http://tools.ietf.org/html/draft-melnikov-sieve-imapflags-06
   7. http://www.ietf.org/internet-drafts/draft-degener-sieve-body-00.txt
   8. http://www.irbs.net/internet/info-cyrus/0110/0252.html
