imapsieve environment variables missing?

MRob mrobti at insiberia.net
Mon Dec 5 15:10:19 UTC 2016


On 2016-12-05 06:13, Stephan Bosch wrote:
> Op 5-12-2016 om 14:32 schreef MRob:
>> On 2016-12-05 04:38, Stephan Bosch wrote:
>>> Op 5-12-2016 om 13:28 schreef MRob:
>>>> RFC6785 says imap.user and imap.email environment variables should 
>>>> be made available but I can't access them no matter what I try. Are 
>>>> they not implemented because vnd.dovecot.environment already 
>>>> provides the username? (which does work for me)
>>>> 
>>>> If imap.user and imap.email are there, can you provide an example 
>>>> how to access them so I can see what I did wrong?
>>> 
>>> That should work.
>>> 
>>> Do you have an example script demonstrating what your trying to do?
>> 
>> Trying to access as a variable:
>> 
>> \${imap.user}
>> 
>> Also tried:
>> 
>> if environment :matches "imap.user" "*" {
>>   set "username" "${1}";
>> }
>> 
>> Also tried prefixing with "env." or removing "imap."
>> 
>> Result is always empty string (dumped with debug_log)
>> 
>> Script is run during COPY operations, newest tarball releases 
>> installed for dovecot and pigeonhole.
> 
> 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


More information about the dovecot mailing list