1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
|
Current activities:
* Rework string matching:
- Give Sieve its own runtime string type, rather than (ab)using string_t.
- Add support for stream matching for handling large values, e.g. from the
body extension.
- Improve efficiency of :matches and :contains match types.
* Build proper comparator support:
- Add normalize() method to comparators to normalize the string before
matching (for efficiency).
- Allow for the existence of dynamic comparators (i.e. specified by
variables).
- Implement comparator-i;unicode-casemap.
Parallel plugin-based efforts (on hold at the moment):
* Implement enotify xmpp method as a plugin.
Next (mostly in order of descending priority/precedence):
* Implement message modification and extraction API in order to:
- Properly implement the interaction between editheader and foreverypart/mime.
- Implement replace, enclose extensions.
* Properly implement Sieve internationalization support (utf-8 handling),
currently it is not complete:
- Make this implementation fully conform section 2.7.2 of RFC5228 (Comparisons
Across Character Sets).
- Verify validity of utf8 where necessary.
* Further develop regex extension and update it to the latest draft:
- Implement the :quoteregex set modifier
- Investigate the use of the TRE regexp library to gain UTF-8 capability
(posix regexes actually do support utf8, but only when locale is set
accordingly)
* Finish LDAP Sieve script storage for read-only access.
- Consolidate LDAP connections when more than a single Sieve script must be
loaded from different storages linked to the same LDAP server.
- Adjust Sieve script API to support asynchronous script retrieval to
retrieve scripts in parallel when possible.
* Improve error handling.
- Implement dropping errors in the user's mailbox as a mail message.
* Finish body extension:
- Build test cases for decoding MIME encodings to UTF-8
* Cleanup the test suite
- Restructure test scripts
- Add more comment on purpose of tests
* Finish the ereject extension
* Vacation extension improvements:
- Implement configurable sender exclusion list.
- Implement mechanism for implicitly including an account's aliases in the
vacation command's :addresses list.
* Fix remaining RFC deviations:
- Fix issues listed in doc/rfc/RFC-questions.txt based on answers
- Verify outgoing mail addresses at runtime when necessary
(e.g. after variables substitution)
- Improve handling of invalid addresses in headers (requires Dovecot changes)
* Improve sieve_extprograms plugin:
- Redesign (forcible) local script termination. It should use SIGCHLD and
a ioloop-based timeout.
- Add facility to trigger a temporary failure condition when a program
fails rather than an implicit keep.
- Add a method to implicitly pass environment variables such as SENDER and
RECIPIENT through the script socket service.
* 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 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. Probably means implementing a proper
ManageSieve client library.
* Test ManageSieve behavior thoroughly:
- Test pipelined behavior
- Test proxy authentication
* Code cleanup:
- Make address handling more uniform.
- Review all FIXMEs
* Build a server with test mail accounts that processes lots and lots of mail
(e.g. spam, mailing lists etc.)
Low priority items:
* Implement extlists extension as a plugin
* 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.
* 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)
* Warn during compile if using non-existent folders.
* Variables extension: implement compile time evaluation of constant values
- Detect assignment of too large constant values to variables at compile
time.
* Add development documentation, i.e. comment on library functions and document
the binary and byte-code format.
* Implement sip-message notify mechanism.
|