On 2025-05-24 08:39, DK via dovecot wrote:
Any clues what could be the cause of such problem?

Ok, I was wrong. In 2.4 vnd.dovecot.environment does not work at all. It looks like a bug. Could some dev look into it, please? Sieve script to reproduce problem printed below. You can reproduce it on build-in varialbes. No need to set custom config variables. So should be easy.

I loaded: environment variables vnd.dovecot.debug vnd.dovecot.environment.
 - environment variables vnd.dovecot.debug - works, I can access environment "version" variable, I can debug log, I can set variables.  - vnd.dovecot.environment - does not work for some reason, I can not access build-in nor config variables

Sometimes on logs I see such error, but it shows up randomly:
 - dovecot0: lmtp(test.u...@domain.com)<66724><ZAM4IH6TNWikBAEAXAnA5A>: Error: sieve: 0000.test: line X: referring to variable in unknown namespace 'vnd'

More logs and sieve trace below.


Dovecot config:

sieve_extensions = environment variables vnd.dovecot.debug vnd.dovecot.environment


Sieve script:

require "environment";
require "variables";
require "vnd.dovecot.debug";
require "vnd.dovecot.environment";

if environment :matches "version" "*" { set "environment_version" "${0}"; }
if string :matches "${vnd.dovecot.username}" "*" { set "dovecot_username" "${0}"; } if string :matches "${env.vnd.dovecot.config.fs_group}" "*" { set "dovecot_config_fs_group" "${0}"; }

debug_log "environment_version= '${environment_version}'";
debug_log "dovecot_username= '${dovecot_username}'";
debug_log "dovecot_config_fs_group= '${dovecot_config_fs_group}'";
debug_log "vnd.dovecot.username= '${vnd.dovecot.username}'";
debug_log "env.vnd.dovecot.config.fs_group= '${env.vnd.dovecot.config.fs_group}'";


Logs:

2025-05-27T13:27:08.298554+02:00 h04f9 dovecot0: lmtp(test.u...@domain.com)<72184><ISQiCoyhNWj4GQEAXAnA5A>: Debug: sieve: Executing script from '/etc/dovecot/sieve/before.d/0000.test.svbin' 2025-05-27T13:27:08.298758+02:00 h04f9 dovecot0: lmtp(test.u...@domain.com)<72184><ISQiCoyhNWj4GQEAXAnA5A>: Debug: sieve: multi-script: Run script '/etc/dovecot/sieve/before.d/0000.test.svbin' 2025-05-27T13:27:08.299101+02:00 h04f9 dovecot0: lmtp(test.u...@domain.com)<72184><ISQiCoyhNWj4GQEAXAnA5A>: Debug: sieve: Started running script '/etc/dovecot/sieve/before.d/0000.test.svbin' 2025-05-27T13:27:08.299662+02:00 h04f9 dovecot0: lmtp(test.u...@domain.com)<72184><ISQiCoyhNWj4GQEAXAnA5A>: sieve: DEBUG: environment_version=                '2.4.1-4' 2025-05-27T13:27:08.299893+02:00 h04f9 dovecot0: lmtp(test.u...@domain.com)<72184><ISQiCoyhNWj4GQEAXAnA5A>: sieve: DEBUG: dovecot_username=                   '' 2025-05-27T13:27:08.300125+02:00 h04f9 dovecot0: lmtp(test.u...@domain.com)<72184><ISQiCoyhNWj4GQEAXAnA5A>: sieve: DEBUG: dovecot_config_fs_group=            '' 2025-05-27T13:27:08.300365+02:00 h04f9 dovecot0: lmtp(test.u...@domain.com)<72184><ISQiCoyhNWj4GQEAXAnA5A>: sieve: DEBUG: vnd.dovecot.username=               ''


Trace:

00000000:       ## Started executing script '0000.test'
0000004f:    7: environment test
0000004f:    7:   starting ':matches' match with 'i;ascii-casemap' comparator:
0000004f:    7:   matching value '2.4.1-4'
0000004f:    7:     with key '*' => 1
0000004f:    7:   finishing match with result: matched
00000063:    7: jump if result is false
00000063:    7:   not jumping
00000068:    7: set command
00000072:    8:   assign 'environment_version' [0] = "2.4.1-4"
00000072:    8: string test
00000072:    8:   starting ':matches' match with 'i;ascii-casemap' comparator:
00000072:    8:   matching value ''
00000072:    8:     with key '*' => 1
00000072:    8:   finishing match with result: matched
0000007f:    8: jump if result is false
0000007f:    8:   not jumping
00000084:    8: set command
0000008e:    9:   assign 'dovecot_username' [1] = ""
0000008e:    9: string test
0000008e:    9:   starting ':matches' match with 'i;ascii-casemap' comparator:
0000008e:    9:   matching value ''
0000008e:    9:     with key '*' => 1
0000008e:    9:   finishing match with result: matched
000000b9:    9: jump if result is false
000000b9:    9:   not jumping
000000be:    9: set command
000000c8:   11:   assign 'dovecot_config_fs_group' [2] = ""
000000c8:   11: debug_log "environment_version= '2.4.1-4'"
000000fb:   12: debug_log "dovecot_username=                   ''"
0000012e:   13: debug_log "dovecot_config_fs_group=            ''"
00000161:   14: debug_log "vnd.dovecot.username=               ''"
00000190:   15: debug_log "env.vnd.dovecot.config.fs_group=    ''"
000001df:       ## Finished executing script '0000.test'

Greets.
DK
_______________________________________________
dovecot mailing list -- dovecot@dovecot.org
To unsubscribe send an email to dovecot-le...@dovecot.org

Reply via email to