Skip to content
Snippets Groups Projects
TODO 4.9 KiB
Newer Older
Stephan Bosch's avatar
Stephan Bosch committed
Current activities:
Stephan Bosch's avatar
Stephan Bosch committed

Stephan Bosch's avatar
Stephan Bosch committed
* Add multiscript support to the testsuite. 
* Build a sieve tool to filter an entire existing mailbox through a Sieve 
Stephan Bosch's avatar
Stephan Bosch committed
	- Add commandline options to fully customize execution
Stephan Bosch's avatar
Stephan Bosch committed
	- Write manual page
Next (in order of descending priority/precedence):
Stephan Bosch's avatar
Stephan Bosch committed
* Implement namespace support for variables extension (to complete include 
  extension)
* Update include extension to latest draft:
	- Perform script name check
	- Implement global namespace
	- Allow placing the global command anywhere in the script
* Implement mechanism for implicitly including an account's aliases in the
  vacation command's :addresses list.
* Improve error handling. Now it is not very consistent, especially for the 
  Sieve command line tools. 
Stephan Bosch's avatar
Stephan Bosch committed
* Detect permission errors when writing global script binaries and advise the 
  administrator on using sievec to precompile the scripts. 
Stephan Bosch's avatar
Stephan Bosch committed
* Improve debugging support in the sieve-test tool:
	- Improve trace debugging towards something more intuitively readable.
	- Give trace debugging multiple levels of verbosity (e.g. to include more 
    messy output like value matching).
Stephan Bosch's avatar
Stephan Bosch committed
* Implement dropping errors in the user's mailbox as a mail message.
* Implement a better way to encode source line numbers into a binary for
  reporting errors at runtime. Currently, this is done explicitly for each 
  command that adds actions to the result. However, some tests, match types etc. 
  will also need this when the variables extension is active. Many of the RFC 
  deviations listed below depend on this. Also trace debugging will benefit.
Stephan Bosch's avatar
Stephan Bosch committed
* Fix remaining RFC deviations:
Stephan Bosch's avatar
Stephan Bosch committed
	- 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 :regex matching with variable key.
Stephan Bosch's avatar
Stephan Bosch committed
	- Detect assignment of too large constant values to variables at compile
	  time.
Stephan Bosch's avatar
Stephan Bosch committed
	- Verify outgoing mail addresses at runtime when necessary
	  (e.g. after variables substitution)
Stephan Bosch's avatar
Stephan Bosch committed
	- Vacation: the ":subject" parameter specifies a subject line to attach to 
Stephan Bosch's avatar
Stephan Bosch committed
	  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.
Stephan Bosch's avatar
Stephan Bosch committed
	- Body: handling of :content "multipart" and :content "message/rfc822" don't
	  work. 
	- Improve handling of invalid addresses in headers (requires Dovecot changes)
Stephan Bosch's avatar
Stephan Bosch committed
* 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:
Stephan Bosch's avatar
Stephan Bosch committed
	- Make this implementation conform section 2.7.2 of RFC5228 (Comparisons 
	  Across Character Sets). 
Stephan Bosch's avatar
Stephan Bosch committed
	- Verify validity of utf8 where necessary.
Stephan Bosch's avatar
Stephan Bosch committed
	- Implement comparator-i;unicode-casemap.
Stephan Bosch's avatar
Stephan Bosch committed
* Make testsuite much more exhaustive:
	- 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.
* Code cleanup:
	- Make address handling more uniform. 
Stephan Bosch's avatar
Stephan Bosch committed
* 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) ##

Stephan Bosch's avatar
Stephan Bosch committed
* Add support for stream matching for handling large values, e.g. from the body
  extension.
Stephan Bosch's avatar
Stephan Bosch committed
* 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)
* 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)
Stephan Bosch's avatar
Stephan Bosch committed
* Use lib/str-find.h for :contains and :matches match types 
* Warn during compile if using non-existent folders.
Stephan Bosch's avatar
Stephan Bosch committed
* Implement index extension
* 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.
* Implement editheader extension
* Implement mimeloop extension
* Import ManageSieve into this package and provide support for alternate types
  of script storage like LDAP or SQL database.
* Implement IMAP plugin for IMAPSieve support:
	- This may include support for manually running a script on a set of messages
	  through IMAP (no specification for something like this is available; we will 
	  have to provide our own)
* Variables extension: implement compile time evaluation of constant values
* Make the engine and its extensions much more configurable. Possibly this can 
  be merged with Dovecot's new master config implementation.
Stephan Bosch's avatar
Stephan Bosch committed
* 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. 
* Implement proposed notify mechanisms other than mailto. Currently defined: 
  xmpp and sip

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.