Skip to content
Snippets Groups Projects
TODO 3.92 KiB
Next (in order of descending priority/precedence):
* Fix standards compliance issues:
	- Body: contains various bugs that need to be resolved for standards
	  compliance.
	- Imapflags: when keep/fileinto is used multiple times in a script and
	  duplicate message elimination is performed, the last flag list value
	  MUST win.
	- 'If an address is not syntactically valid, then it will not be matched
	  by tests specifying ":localpart" or ":domain"'.
	- Vacation: If the Sieve variables extension is used, the arguments 
	  MUST NOT have undergone variable expansion prior to their use in response 
	  tracking.
* 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.
* 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)

Consent

On this website, we use the web analytics service Matomo to analyze and review the use of our website. Through the collected statistics, we can improve our offerings and make them more appealing for you. Here, you can decide whether to allow us to process your data and set corresponding cookies for these purposes, in addition to technically necessary cookies. Further information on data protection—especially regarding "cookies" and "Matomo"—can be found in our privacy policy. You can withdraw your consent at any time.