Improve supported sieve extensions enabled by default using require
These are the dovecot pigeonhole sieve extensions included in dovecot by default that we don't currently support in custom sieve filters, and the version of pigeonhole which first included them. This list is from the Dovecot wiki.
Extension | Supported since |
---|---|
body | always |
duplicate | v0.4.3+ |
enotify | v0.1.3+ |
environment | v0.4.0+ |
foreverypart | v0.4.14+ |
ihave | v0.2.4+ |
include | v0.4.0+ |
index | v0.4.7+ |
mime | v0.4.14+ |
extracttext | v0.4.14+ |
variables | always |
We should definitely be including body
and variables
as they are enabled by default and supported in every version of dovecot pigeonhole. Body in particular is vital for many custom filters. For simplicity's sake I'm submitting a merge request for these 2 extensions straight away so it can hopefully become part of %3.2.9. Having sane defaults is especially important because the list of required extensions can't be updated later in the filter due to a limitation of sieve/pigeonhole: require commands can only be placed at top level at the beginning of the file
(See #5124)
As for the others, currently the most recent extension we use is date
with a release version of v0.1.12 from 2010. The most recent pigeonhole version needed to support all these extensions would be v0.4.14 which is from April 2016, over 6 years ago. Could we safely assume that all installations would have at least that version? Perhaps for these more specific extensions we should make no default inclusion and simply carry on letting admins enable them by installing a modified config into conf-custom
? Some of these extensions also have security considerations such as include
which allows including other sieve files.
What do you think @jnorell?