complete patch. some parts were missing before
diff --git a/src/lib-sieve/plugins/environment/ext-environment-common.c b/src/lib-sieve/plugins/environment/ext-environment-common.c --- a/src/lib-sieve/plugins/environment/ext-environment-common.c +++ b/src/lib-sieve/plugins/environment/ext-environment-common.c @@ -24,7 +24,8 @@ static const struct sieve_environment_item *core_env_items[] = { &location_env_item, &phase_env_item, &name_env_item, - &version_env_item + &version_env_item, + &defaultfolder_env_item }; static unsigned int core_env_items_count = N_ELEMENTS(core_env_items); @@ -233,7 +234,19 @@ const struct sieve_environment_item version_env_item = { .value = PIGEONHOLE_VERSION, }; +/* "defaultfolder": + * the default folder where mail is stored when no rule matches + */ +static const char *envit_defaultfolder_get_value +(struct sieve_instance *svinst, + const struct sieve_script_env *senv) +{ + return senv->default_mailbox; +} - +const struct sieve_environment_item defaultfolder_env_item = { + .name = "defaultfolder", + .get_value = envit_defaultfolder_get_value, +}; diff --git a/src/lib-sieve/plugins/environment/ext-environment-common.h b/src/lib-sieve/plugins/environment/ext-environment-common.h --- a/src/lib-sieve/plugins/environment/ext-environment-common.h +++ b/src/lib-sieve/plugins/environment/ext-environment-common.h @@ -38,6 +38,7 @@ extern const struct sieve_environment_item location_env_item; extern const struct sieve_environment_item phase_env_item; extern const struct sieve_environment_item name_env_item; extern const struct sieve_environment_item version_env_item; +extern const struct sieve_environment_item defaultfolder_env_item; /* * Initialization On 08/07/2015 04:03 PM, matthias lay wrote: > fixed my problem. > > if somebody is interested. > I added an variable to the environment extension, which is quite easy. > And the value of the folder is already there. so this is all: > > > src/lib-sieve/plugins/environment/ext-environment-common.c > > static const char *envit_spfolder_get_value > (struct sieve_instance *svinst, > const struct sieve_script_env *senv) > { > return senv->default_mailbox; > } > > const struct sieve_environment_item spfolder_env_item = { > .name = "spfolder", > .get_value = envit_spfolder_get_value, > }; > > > after that the variable can easily be used in a script like > > if anyof ( environment :matches "spfolder" "*") { > set "myfolder" "${1}"; > } > > > > > > > > > > On 08/07/2015 12:40 PM, matthias lay wrote: >> hi jost thx for the reply, >> >> by access I mean to read the variable >> >> >> require ["fileinto", "variables", "?destfolder?" ]; >> >> if anyof ( destfolder :matches "*") { >> >> fileinto "${1}/subfolder"; >> >> }else{ >> >> fileinto "INBOX/subfolder"; >> >> } >> >> >> >> On 08/07/2015 12:26 PM, Jost Krieger wrote: >>> On Fri Aug 7 12:19:22 2015, matthias lay wrote: >>> >>>> anybody knows, if there is a way to acces the folder from a call like this >>>> >>>> deovecot-lda -m destfolder >>>> >>>> from within a sieve script? >>> >>> Depending on what you mean by "access", this could be as easy as >>> >>> require "fileinto"; >>> >>> fileinto "destfolder"; >>> >>> Yours >>> Jost Krieger >>>