Current: * Test new enotify extension extensively. * Test new multiscript support extensively. Next (in order of descending priority/precedence): * Improve error handling. Now it is not very consistent, especially for the sieve command line tools and multiscript. * Implement dropping errors in the user's mailbox as a mail message. * Fix remaining RFC deviations: - Fix issues listed in doc/rfc/RFC-questions.txt based on answers - 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) * Implement environment extension * Add normalize() method to comparators to normalize the string before matching (for efficiency). * Properly implement Sieve internationalization support (utf-8 handling), currently it is not complete: - Make this implementation conform section 2.7.2 of RFC5228 (Comparisons Across Character Sets). - Verify validity of utf8 where necessary. - Implement comparator-i;unicode-casemap. * Make testsuite much more exhaustive: - add support for testing delivered and outgoing smtp messages by looping these back as the active mail message - add support for testing the content of result actions - test as many error/warning/info conditions as possible. - review the specification documents and check whether the given conditions are tested at least once. * 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. * Implement editheader extension * Implement mimeloop extension * Variables extension: implement compile time evaluation of constant values * Enotify extension: detect use of variable values extracted from the message that are used in the method argument. RFC reports this as a security issue. * 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. * 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)