Current: * Implement enotify extension: - Implement valid_notify_method test (currently skeleton) - Implement notify_method_capability test (currently skeleton) - Implement parsing :options argument - Check whether handling of error conditions matches the standard - Limit the number of notifications generated (on a per-method basis) * Implement mailto method for the enotify extension: - Implement verification of recipient addresses in mailto uris. - Add addresses contained in to to and cc URI headers to the recipients. Conversely, the generated To header must include the URI recipients apart from those stated explicitly in the To URI header. - Add owner-email to the Auto-submitted field - Implement checking the :from argument for validity and policy violations. Next (in order of descending priority/precedence): * Fix remaining RFC deviations: - Fix issues listed in doc/rfc/RFC-questions.txt when answers arrive - Allow for the existance of dynamic comparators (i.e. specified by variables). - Allow for dynamic includes (i.e. specified by variables). - Allow for :regex matching with variable key. - Detect assignment of too large constant values to variables at compile time. - Verify outgoing mail addresses at runtime when necessary (e.g. after variables substitution) - Vacation: the ":subject" parameter specifies a subject line to attach to any vacation response that is generated. UTF-8 characters can be used in the string argument; implementations MUST convert the string to [RFC2047] encoded words if and only if non-ASCII characters are present. - Body: contains various issues that need to be resolved for standards compliance. Body test support currently matches but barely exceeds the original CMU Sieve implentation in terms of standards compliance. - Improve handling of invalid addresses in headers (requires Dovecot changes) * Imapflags: merge execution of setflags, removeflags and addflags into one common implementation. * Implement executing an arbitrary number of scripts sequentially, acting on the same set of result actions (multiscript). * Implement dropping errors in the user's mailbox as a mail message. * Add normalize() method to comparators to normalize the string before matching (for efficiency). * Make this implementation conform section 2.7.2 of RFC3028 (Comparisons Across Character Sets). * Implement comparator-i;unicode-casemap * Implement environment extension * Make testsuite much more exhaustive and add support for testing the actual result. * Build a sieve tool to filter an entire existing mailbox through a sieve script. * Build a server with test mail accounts that processes lots and lots of mail (e.g. spam, mailing lists etc.) * ## MAKE A SECOND RELEASE (0.2.x) ## * Provide a solution for mail_get_headers_utf8 reparsing the whole message each time it is called (header and address test; Timo might provide solution from within Dovecot) * Implement date and index extensions * Optimize code containing true/false tests to omit explicit JMP opcodes (i.e. optimize the test away and any code that negatively depends on it) * Use lib/str-find.h for :contains and :matches match types * Warn during compile if using non-existent folders. * Import ManageSieve into this package and provide support for alternate types of script storage like LDAP or SQL database. * Make the engine and its extensions much more configurable. Possibly this can be merged with Dovecot's new master config implementation. * Add development documentation, i.e. comment on library functions and document the binary and byte-code format. * Implement editheader extension * Implement mimeloop extension * Give the byte code format some more thought, it is currently quite rough and to the point. * Try to implement proposed notify mechanisms other than mailto. Currently: xmpp and sip * Implement namespace support for variables extension (possibly needed by test suite; in that case priority is much higher)