From 41d7d170bc4673e9a4e89a49c191b414e38ef0d7 Mon Sep 17 00:00:00 2001
From: Sergio Cambra <sergio@programatica.es>
Date: Tue, 08 Jul 2014 08:00:01 -0400
Subject: [PATCH] default servers on system config for admin use
---
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