function MiltergreyList_month($tablesource, $time) { $q = new mysql_postfix_builder(); if (date("Y-m-d") == date("Y-m-d", $time)) { return false; } $NextTable = "mgreym_" . date("Ym", $time); if ($GLOBALS["VERBOSE"]) { echo "Processing {$tablesource} -> {$NextTable}\n"; } if (!$q->milter_BuildMonthTable($NextTable)) { return false; } $database = $q->database; $prefix = "INSERT IGNORE INTO {$NextTable}\n\t(zmd5,hits,zday,mailfrom,instancename,mailto,domainfrom,domainto,senderhost,`failed`) VALUES "; $sql = "SELECT SUM(hits) as hits,mailfrom,instancename,mailto,domainfrom,domainto,senderhost,failed FROM {$tablesource}\n\tGROUP BY mailfrom,instancename,mailto,domainfrom,domainto,senderhost,failed"; $results = $q->QUERY_SQL($sql, $database); $f = array(); while ($ligne = mysql_fetch_assoc($results)) { $zday = date("Y-m-d", $time); $zmd5 = md5(serialize($ligne) . $zday); $hits = $ligne["hits"]; $mailfrom = mysql_escape_string2($ligne["mailfrom"]); $instancename = mysql_escape_string2($ligne["instancename"]); $mailfrom = mysql_escape_string2($ligne["mailfrom"]); $mailto = mysql_escape_string2($ligne["mailto"]); $domainfrom = mysql_escape_string2($ligne["domainfrom"]); $domainto = mysql_escape_string2($ligne["domainto"]); $mailto = mysql_escape_string2($ligne["mailto"]); $senderhost = mysql_escape_string2($ligne["senderhost"]); $failed = $ligne["failed"]; $f[] = "('{$zmd5}','{$hits}','{$zday}','{$mailfrom}','{$instancename}','{$mailto}','{$domainfrom}','{$domainto}','{$senderhost}','{$failed}')"; if (count($f) > 500) { $q->QUERY_SQL($prefix . @implode(",", $f), $database); if (!$q->ok) { return false; } $f = array(); } } if (count($f) > 0) { $q->QUERY_SQL($prefix . @implode(",", $f), $database); if (!$q->ok) { return false; } $f = array(); } return true; }