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

* ## MAKE A SECOND RELEASE (0.2.x) ##
Stephan Bosch's avatar
Stephan Bosch committed

Stephan Bosch's avatar
Stephan Bosch committed
Next (in order of descending priority/precedence):

Stephan Bosch's avatar
Stephan Bosch committed
* Finish the ereject extension
	- Make reject/ereject use the LDA reject interface when available
Stephan Bosch's avatar
Stephan Bosch committed
* Improve error handling. 
	- 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).
Stephan Bosch's avatar
Stephan Bosch committed
* Further develop regex extension and update it to the latest draft:
	- Allow for :regex matching with variable key
	- Implement the :quoteregex set modifier
	- Investigate the use of the TRE regexp library to gain UTF-8 capability
Stephan Bosch's avatar
Stephan Bosch committed
* Finish body extension:
	- Implement proper :content "multipart" behavior
	- Implement proper :content "message/rfc822" behavior
	- Build test cases for decoding MIME encodings to UTF-8
* Cleanup the test suite
	- Restructure test scripts
	- Add more comment on purpose of tests
* 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
* Implement index extension
Stephan Bosch's avatar
Stephan Bosch committed
* Update include extension to latest draft (v05 currently):
	- Implement required ManageSieve behavior (pending IETF discussion)
Stephan Bosch's avatar
Stephan Bosch committed
* Vacation extension improvements:
	- Implement configurable sender exclusion list.
	- Implement mechanism for implicitly including an account's aliases in the
	  vacation command's :addresses list.
Stephan Bosch's avatar
Stephan Bosch committed
* 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)
* Implement ihave extension.
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
Stephan Bosch's avatar
Stephan Bosch committed
	- Allow for the existence of dynamic comparators (i.e. specified by 
Stephan Bosch's avatar
Stephan Bosch committed
	- Verify outgoing mail addresses at runtime when necessary
	  (e.g. after variables substitution)
	- Improve handling of invalid addresses in headers (requires Dovecot changes)
* Properly implement Sieve internationalization support (utf-8 handling), 
  currently it is not complete:
Stephan Bosch's avatar
Stephan Bosch committed
	- Make this implementation fully conform section 2.7.2 of RFC5228 (Comparisons 
Stephan Bosch's avatar
Stephan Bosch committed
	  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:
Stephan Bosch's avatar
Stephan Bosch committed
	- 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 requirements
	  are tested at least once.
* Fix ManageSieve proxy to recognize response codes from the backend and forward
  them to the user if appropriate/safe.
* Implement proper support for ManageSieve SASL ANONYMOUS login.
* Test ManageSieve behavior thoroughly:
	- Test pipelined behavior
	- Test proxy authentication
* 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.)

Stephan Bosch's avatar
Stephan Bosch committed
* ## MAKE A THIRD RELEASE (0.3.x) ##
* Implement extlists extension as a plugin
Stephan Bosch's avatar
Stephan Bosch committed
* 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.
* Make the sieve storage a base class with (possibly) various implementations, 
  just like mail-storage. This aims to provide support for alternate types
  of script storage like LDAP or SQL database.
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
* Implement message modification and extraction API in order to:
	- Implement editheader extension
	- Implement replace, enclose, foreverypart, mime and extracttext extensions 
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)
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.
* 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
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
* Add development documentation, i.e. comment on library functions and document
  the binary and byte-code format. 
Stephan Bosch's avatar
Stephan Bosch committed
* Implement sip-message notify mechanism.

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.