From 3d3f4704489164f3c88d25fccbacc2920ecf2f3c Mon Sep 17 00:00:00 2001
From: Carsten Schoene <ispconfig-dev@j0ke.net>
Date: Wed, 1 Jan 2014 16:20:13 +0100
Subject: [PATCH] be compatible to managesieve service

- write sieve filter to sieve subdirectory into ispconfig.sieve
- link .sieve to sieve/ispconfig.sieve
---
 server/plugins-available/maildeliver_plugin.inc.php | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/server/plugins-available/maildeliver_plugin.inc.php b/server/plugins-available/maildeliver_plugin.inc.php
index 08a4998a9f..226fdfd983 100644
--- a/server/plugins-available/maildeliver_plugin.inc.php
+++ b/server/plugins-available/maildeliver_plugin.inc.php
@@ -98,8 +98,9 @@ class maildeliver_plugin {
 			$app->log("Mailfilter config has been changed", LOGLEVEL_DEBUG);
 
 			$sieve_file = $data["new"]["maildir"].'/.sieve';
+			$sieve_file_isp = $data["new"]["maildir"].'/sieve/ispconfig.sieve';
 			if(is_file($sieve_file)) unlink($sieve_file)  or $app->log("Unable to delete file: $sieve_file", LOGLEVEL_WARN);
-
+			if(is_file($sieve_file_isp)) unlink($sieve_file_isp)  or $app->log("Unable to delete file: $sieve_file_isp", LOGLEVEL_WARN);
 			$app->load('tpl');
 
 			//* Select sieve filter file for dovecot version
@@ -204,8 +205,9 @@ class maildeliver_plugin {
 
 			$tpl->setVar('addresses', $address_str);
 
-			file_put_contents($sieve_file, $tpl->grab());
-
+			file_put_contents($sieve_file_isp, $tpl->grab());
+			//* create symlink to activate sieve script
+			symlink("sieve/ispconfig.sieve", ".sieve")  or $app->log("Unable to create symlink to active sieve filter", LOGLEVEL_WARN);	
 			unset($tpl);
 
 		}
@@ -215,7 +217,9 @@ class maildeliver_plugin {
 		global $app, $conf;
 
 		$sieve_file = $data["old"]["maildir"].'/.sieve';
+		$sieve_file_isp = $data["old"]["maildir"].'/sieve/ispconfig.sieve';
 		if(is_file($sieve_file)) unlink($sieve_file)  or $app->log("Unable to delete file: $sieve_file", LOGLEVEL_WARN);
+		if(is_file($sieve_file_isp)) unlink($sieve_file_isp)  or $app->log("Unable to delete file: $sieve_file_isp", LOGLEVEL_WARN);
 	}
 
 
-- 
GitLab