Next (in order of descending priority/precedence): * Fix standards compliance issues: - Body: contains various bugs that need to be resolved for standards compliance. - 'If an address is not syntactically valid, then it will not be matched by tests specifying ":localpart" or ":domain"'. * Fix security issues: - Impose limitations on the imapflags extension regarding the number of set flags and the length of each flag name. - Malicious/Broken binary can allocate large variable storage * Finish the test suite for the base functionality * Improve debugging and error handling: - Improve byte code dumping and trace functionality to be a little more user-friendly - Improve argument errors * Make sure cmusieve can be replaced seamlessly with the new plugin. * Fix/Report issues listed in 'doc/rfc/RFC Controversy.txt' * ## MAKE A FIRST RELEASE (0.1.x) ## * Fix remaining (mostly variables-related) RFC deviations: - 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 runtime. - 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. - Vacation: properly implement construction of a References header from the original message. * Imapflags: merge execution of setflags, removeflags and addflags into one common implementation. * Warn about the use of syntactically invalid header names. * Implement notify extension with sole support for mailto mechanism. * 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 executing an arbitrary number of scripts sequentially, acting on the same set of result actions (multiscript). * 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 * Add development documentation, i.e. comment on library functions and document the binary and byte-code format. * Make the engine and its extensions much more configurable. Possibly this can be merged with Dovecot's new master config implementation. * 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)