function sieve_edit_filter() { $uid = $_GET["sieve-edit-filter"]; $rulename = $_GET["sieve-rule-name"]; $rulenumber = $_GET["sieve-rule-number"]; $index = $_GET["sieve-filter-index"]; $condition = $_GET["condition"]; $matchType = $_GET["matchType"]; $matchStr = $_GET["matchStr"]; $header = $_GET["header"]; $sieve = new clSieve($uid); $rules = $sieve->GetRules($rulename); if (isset($_GET["control"])) { $rules[$rulenumber]["control"] = $_GET["control"]; } if (isset($_GET["control"])) { $rules[$rulenumber]["control"] = $_GET["control"]; } if (isset($_GET["matchAny"])) { $rules[$rulenumber]["matchAny"] = $_GET["matchAny"]; } switch ($condition) { case "from": $arr["type"] = "address"; $arr["header"] = "from"; break; case "subject": $arr["type"] = "header"; $arr["header"] = "subject"; break; case "tocc": $arr["type"] = "address"; $arr["header"][] = "to"; $arr["header"][] = "cc"; break; case "to": $arr["type"] = "address"; $arr["header"] = "to"; break; case "header": $arr["type"] = "header"; $arr["header"] = "{$header}"; default: break; } $arr["matchStr"] = $matchStr; $arr["matchType"] = $matchType; $rules[$rulenumber]["conditions"][$index] = $arr; $content = $sieve->CompileRule($rules, $rulename); $sieve->SaveRule($rulename, $content); }
function sieve_save_vacation() { $sieve = new clSieve($_GET["sieve-save-vacation"]); $sieve->GetRuleVacation(); $sieve_rule_name = $sieve->sieve_rulename; writelogs("uid={$_GET["sieve-save-vacation"]}:: rule:{$sieve_rule_name},", __FUNCTION__, __FILE__); if ($sieve_rule_name != null) { $rules = $sieve->GetRules($sieve_rule_name); $vacation_rule = $rules[$sieve->sieve_ruleindex]; } else { writelogs("uid={$_GET["sieve-save-vacation"]}:: create default rule:AntiSpamJunk", __FUNCTION__, __FILE__); if ($sieve->CreateArticaRule()) { $sieve = new clSieve($_GET["sieve-save-vacation"]); $sieve_rule_name = "AntiSpamJunk"; $rules = $sieve->GetRules($sieve_rule_name); $sieve->sieve_ruleindex = count($rules); } else { writelogs("uid={$_GET["sieve-save-vacation"]}:: create default rule:AntiSpamJunk FAILED!", __FUNCTION__, __FILE__); } } writelogs("{$_GET["sieve-save-vacation"]}:: put rule name \"{$sieve_rule_name}\"", __FUNCTION__, __FILE__); switch ($_GET["vacation_enabled"]) { case 1: $rules[$sieve->sieve_ruleindex]["status"] = "ENABLED"; break; case 0: $rules[$sieve->sieve_ruleindex]["status"] = "DISABLED"; break; default: $rules[$sieve->sieve_ruleindex]["status"] = "ENABLED"; break; } $_GET["message"] = str_replace("\n", "\r\n", $_GET["message"]); $rules[$sieve->sieve_ruleindex]["control"] = ""; $rules[$sieve->sieve_ruleindex]["matchAny"] = ""; $rules[$sieve->sieve_ruleindex]["conditions"] = array(); $rules[$sieve->sieve_ruleindex]["special"] = "vacation"; $rules[$sieve->sieve_ruleindex]["actions"][0]["days"] = $_GET["days"]; $rules[$sieve->sieve_ruleindex]["actions"][0]["message"] = $_GET["message"]; $ct = new user($_GET["sieve-save-vacation"]); $rules[$sieve->sieve_ruleindex]["actions"][0]["addresses"] = $ct->HASH_ALL_MAILS; $content = $sieve->CompileRule($rules, $sieve_rule_name); $sieve->SaveRule($sieve_rule_name, $content); }