imapsieve environment variables missing?

MRob mrobti at insiberia.net
Mon Dec 5 21:25:12 UTC 2016


On 2016-12-05 07:22, Stephan Bosch wrote:
> Op 5-12-2016 om 16:10 schreef MRob:
>> On 2016-12-05 06:13, Stephan Bosch wrote:
>>> Op 5-12-2016 om 14:32 schreef MRob:
>>> 
>>> Could you show me your full script? I am mainly interested in the
>>> require statements involved.
>> 
>> I don't know how I managed to compile only using direct access of 
>> ${imap.user} before since now I get an unknown namespace error on my 
>> test script.
>> 
>> But doing it this way compiles:
>> 
>> require ["environment", "variables", "vnd.dovecot.debug"];
>> 
>> if environment :matches "imap.user" "*" {
>>   set "u" "${1}"; }
>> debug_log "Found username: \${u}";
>> if environment :matches "name" "*" {
>>   set "n" "${1}"; }
>> debug_log "Found product name: \${n}";
>> 
>> The output is:
>> 
>> DEBUG: Found username:
>> DEBUG: Found product name: Pigeonhole Sieve
> 
> - For the "imap.user" environment item, you need to add:
> 
> require "imapsieve";

Hmm, I had tried that and get this:

error: require command: unknown Sieve capability `imapsieve'

I've already got imapsieve working (per above output, which was 
triggered by a COPY action) so it clearly is installed and configured.

> This also means that this script will only run from IMAP.

Seems as though it won't compile outside of IMAP either :)

> - For the "${imap.user}" variable, you need to add:
> 
> require "vnd.dovecot.environment";
> 
> This implicitly requires "environment", so that could be removed.
> 
> It is all in the specifications. :)

You're saying that to access the new imap. namespace vars for imapsieve 
that vnd.dovecot.environment is required? I don't find anything in the 
specifications that say this.

The RFC says those vars MUST be made available, so presumably it would 
be referring to the RFC-standard environment extension and not some 
vendor specific one.

Of course it's easy to work with that if this is how it's been built, 
but as noted above I can't get it to compile anyway. Though what's the 
point of trying to figure out imap.user or imap.email if I'm required to 
use vnd.dovecot.environment which already has "username"? :)


More information about the dovecot mailing list