コード例 #1
0
function GROUP_SIEVE_UPDATE()
{
    $gid = $_GET["sieve-update-users"];
    $tpl = new templates();
    $gp = new groups($gid);
    echo $tpl->_ENGINE_parse_body("<H1>{sieve_auto_script}:{events}</H1>");
    if ($gp->Privileges_array["EnableSieveArticaScript"] == 1) {
        include_once 'ressources/class.sieve.inc';
        if (!is_array($gp->members_array)) {
            echo $tpl->_ENGINE_parse_body("<span style='color:red;font-size:14px;font-weight:bold;color:red'>{ERROR_GROUP_STORE_NO_MEMBERS}</span>");
            return null;
        }
        echo "<div style='width:100%;height:200px;overflow:auto;background-color:white'>";
        while (list($num, $ligne) = each($gp->members_array)) {
            if (trim($num) == null) {
                continue;
            }
            $sieve = new clSieve($num);
            $sieve->ECHO_ERROR = false;
            if ($sieve->AddAutoScript()) {
            } else {
                $result = $tpl->_ENGINE_parse_body("{failed}:<div style='margin:4px;font-size:10px;font-weight:bold;color:red'>{$sieve->error}</div>");
            }
            echo "<div style='border:1px dotted #CCCCCC;padding:3px;margin:3px'>\n\t\t\t\t\t<div style='font-size:12px;font-weight:bold'>{$num}:&nbsp;<code>{$result}</code></div>\n\t\t\t\t\n\t\t\t\t</div>";
        }
        echo "</div>";
    }
}
コード例 #2
0
ファイル: users.sieve.php プロジェクト: BillTheBest/1.6.x
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);
}
コード例 #3
0
function SieveSaveToCyrus()
{
    $userid = $_GET["SieveSaveToCyrus"];
    $sieve = new clSieve($userid);
    $sieve->SaveToSieve();
    //and $sieve->error_raw[]
}
コード例 #4
0
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);
}