diff --git a/src/lib-sieve/sieve-result.c b/src/lib-sieve/sieve-result.c
index 653e0d2b948b699db8b6c6e38ecee4d0cf3606ec..21bae05e708942756f026b6ade2b364a3c50c62e 100644
--- a/src/lib-sieve/sieve-result.c
+++ b/src/lib-sieve/sieve-result.c
@@ -148,11 +148,26 @@ pool_t sieve_result_pool(struct sieve_result *result)
 	return result->pool;
 }
 
+/*
+ * Getters/Setters
+ */
+
 struct sieve_error_handler *sieve_result_get_error_handler
 (struct sieve_result *result)
 {
 	return result->ehandler;
 }
+const struct sieve_script_env *sieve_result_get_script_env
+(struct sieve_result *result)
+{
+    return result->action_env.scriptenv;
+}
+
+const struct sieve_message_data *sieve_result_get_message_data
+(struct sieve_result *result)
+{
+	return result->action_env.msgdata;
+}
 
 struct sieve_message_context *sieve_result_get_message_context
 (struct sieve_result *result)
diff --git a/src/lib-sieve/sieve-result.h b/src/lib-sieve/sieve-result.h
index 314f8c50c8cbf9a074582388191fc9fa6e95a399..e99b8e60fd01525ebdcf4115e69dbf3bcf169fa0 100644
--- a/src/lib-sieve/sieve-result.h
+++ b/src/lib-sieve/sieve-result.h
@@ -28,11 +28,19 @@ void sieve_result_unref(struct sieve_result **result);
 
 pool_t sieve_result_pool(struct sieve_result *result);
 
+/*
+ * Getters/Setters
+ */
+
 struct sieve_error_handler *sieve_result_get_error_handler
 	(struct sieve_result *result);
 void sieve_result_set_error_handler
 	(struct sieve_result *result, struct sieve_error_handler *ehandler);
 
+const struct sieve_script_env *sieve_result_get_script_env
+	(struct sieve_result *result);
+const struct sieve_message_data *sieve_result_get_message_data
+	(struct sieve_result *result);
 struct sieve_message_context *sieve_result_get_message_context
 	(struct sieve_result *result);