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
>>>