From 8edabf647814a012307bbf68628e4656ecf89eff Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Wed, 30 Apr 2014 14:12:28 -0400 Subject: [PATCH] Merge remote-tracking branch 'ispc/master' --- server/plugins-available/maildeliver_plugin.inc.php | 24 +++++++++++++++++++++++- 1 files changed, 23 insertions(+), 1 deletions(-) diff --git a/server/plugins-available/maildeliver_plugin.inc.php b/server/plugins-available/maildeliver_plugin.inc.php index 16e3e73..f4d8194 100644 --- a/server/plugins-available/maildeliver_plugin.inc.php +++ b/server/plugins-available/maildeliver_plugin.inc.php @@ -98,8 +98,9 @@ $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 @@ -120,7 +121,14 @@ $tpl->newTemplate($filter_file_template); // cc Field + $tmp_mails_arr = explode(',',$data["new"]["cc"]); + $tmp_addresses_arr = array(); + foreach($tmp_mails_arr as $address) { + if(trim($address) != '') $tmp_addresses_arr[] = array('address' => trim($address)); + } + $tpl->setVar('cc', $data["new"]["cc"]); + $tpl->setLoop('ccloop', $tmp_addresses_arr); // Custom filters $tpl->setVar('custom_mailfilter', $data["new"]["custom_mailfilter"]); @@ -204,9 +212,21 @@ $tpl->setVar('addresses', $address_str); + if ( ! is_dir($data["new"]["maildir"].'/sieve/') ) { + $app->system->mkdirpath($data["new"]["maildir"].'/sieve/', 0700, $mail_config['mailuser_name'], $mail_config['mailuser_group']); + } file_put_contents($sieve_file, $tpl->grab()); exec('chown '.$mail_config['mailuser_name'].':'.$mail_config['mailuser_group'].' '.escapeshellcmd($sieve_file)); + chown($sieve_file_isp,$mail_config['mailuser_name']); + chgrp($sieve_file_isp,$mail_config['mailuser_group']); + chdir($data["new"]["maildir"]); + //* create symlink to activate sieve script + symlink("sieve/ispconfig.sieve", ".sieve") or $app->log("Unable to create symlink to active sieve filter", LOGLEVEL_WARN); + if (is_link(".sieve")) { + lchown(".sieve",$mail_config['mailuser_name']); + lchgrp(".sieve",$mail_config['mailuser_group']); + } unset($tpl); } @@ -216,7 +236,9 @@ 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); } -- Gitblit v1.9.1