From c6e05a8eebc58624c675d4b10d33e94e6b6fa83b Mon Sep 17 00:00:00 2001 From: tbrehm <t.brehm@ispconfig.org> Date: Mon, 12 Sep 2011 10:16:19 -0400 Subject: [PATCH] Implemented: FS#1385 - Define all Email aliases in dovecot autoresponder --- server/plugins-available/maildeliver_plugin.inc.php | 26 ++++++++++++++++++++++++-- 1 files changed, 24 insertions(+), 2 deletions(-) diff --git a/server/plugins-available/maildeliver_plugin.inc.php b/server/plugins-available/maildeliver_plugin.inc.php index 7fc8a4e..61cca83 100644 --- a/server/plugins-available/maildeliver_plugin.inc.php +++ b/server/plugins-available/maildeliver_plugin.inc.php @@ -60,6 +60,7 @@ Register for the events */ + $app->plugins->registerEvent('mail_user_insert','maildeliver_plugin','update'); $app->plugins->registerEvent('mail_user_update','maildeliver_plugin','update'); $app->plugins->registerEvent('mail_user_delete','maildeliver_plugin','delete'); @@ -89,7 +90,9 @@ or $data["old"]["autoresponder"] != $data["new"]["autoresponder"] or (isset($data["new"]["email"]) and $data["old"]["email"] != $data["new"]["email"]) or $data["old"]["autoresponder_start_date"] != $data["new"]["autoresponder_start_date"] - or $data["old"]["autoresponder_end_date"] != $data["new"]["autoresponder_end_date"]) { + or $data["old"]["autoresponder_end_date"] != $data["new"]["autoresponder_end_date"] + or $data["old"]["cc"] != $data["new"]["cc"] + ) { $app->log("Mailfilter config has been changed",LOGLEVEL_DEBUG); @@ -100,6 +103,9 @@ $tpl = new tpl(); $tpl->newTemplate("sieve_filter.master"); + + // cc Field + $tpl->setVar('cc',$data["new"]["cc"]); // Custom filters $tpl->setVar('custom_mailfilter',$data["new"]["custom_mailfilter"]); @@ -109,8 +115,24 @@ // Autoresponder $tpl->setVar('autoresponder',$data["new"]["autoresponder"]); + + $data["new"]["autoresponder_text"] = str_replace("\"","'",$data["new"]["autoresponder_text"]); $tpl->setVar('autoresponder_text',$data["new"]["autoresponder_text"]); - + + //* Set alias addresses for autoresponder + $sql = "SELECT * FROM mail_forwarding WHERE type = 'alias' AND destination = '".$app->db->quote($data["new"]["email"])."'"; + $records = $app->db->queryAllRecords($sql); + $addresses = ''; + if(is_array($records)) { + $addresses .= ':addresses ['; + foreach($records as $rec) { + $addresses .= '"'.$rec['source'].'",'; + } + $addresses = substr($addresses,0,-1); + $addresses .= ']'; + } + $tpl->setVar('addresses',$addresses); + file_put_contents($sieve_file,$tpl->grab()); unset($tpl); -- Gitblit v1.9.1