8.5.0). // // $dir path to user's mailbox and rules.dat file, // (ie. "/opt/merak/mail///") // function convertFile($dir) { $filename = $dir.IMAP_FILE; $outfilename = $dir.OUTPUT_FILE; if (!is_readable($filename)) { if (DEBUG_INFO) echo " Cannot read from file $filename "; return false; } $filecontent = @file_get_contents($outfilename); if (!$outfile = fopen($outfilename, "w")) { if (DEBUG_INFO) echo " Cannot write to file $outfilename "; return false; } $list=file($filename); foreach($list as $line) { $line = trim($line); if (DEBUG_INFO) echo " Processing rule $line
"; $del = strpos($line, ";"); $box = substr($line, 0, $del); $cond = substr($line, $del+1, strlen($line)); $outLine = "4(T=Move%20to%20" . urlencode($box) . ",C,O=" . urlencode($box) . "):$cond\r\n"; fwrite($outfile, $outLine); } fwrite($outfile, $filecontent); fclose($outfile); for ($i=0; !(@rename($filename,$filename.".bak$i"));$i++) {} return true; } // Include files require_once("../inc/function.php"); require_once("../inc/api/api.php"); require_once("../inc/api/domain.php"); require_once("../inc/api/account.php"); require_once('../inc/conversion/login.php'); Auth::login(); // Create classes $api = new MerakAPI(); $dom = new MerakDomain(); $account = new MerakAccount(); // Mail dir $mailDir = $api->GetProperty("C_System_Storage_Dir_MailPath"); // Domain count $dCount = $api -> GetDomainCount(); for ($i=0;$i<$dCount;$i++) { // Domain $dName = $api->GetDomain($i); if (DEBUG_INFO) echo "Checking domain: $dName
\n"; if ($account->FindInitQuery($dName, "")) { while ($account->FindNext()) { if (DEBUG_INFO) echo "Checking account: $account->EmailAddress... "; if ($account->GetProperty("U_Type")==0) { $aPath = $account -> GetProperty("U_MailBoxPath"); $rPath = getusermailboxpath($mailDir, $aPath); if (file_exists($rPath.IMAP_FILE)) { if (DEBUG_INFO) echo "Proccessing imap rules file (".$rPath.IMAP_FILE.")"; convertFile($rPath); } else { if (DEBUG_INFO) echo "No imap rules file"; } } else { if (DEBUG_INFO) echo "Not user account, skipping"; } if (DEBUG_INFO) echo "
\n"; } $account->FindDone(); } } if($acc) $acc->destroy(); if($dom) $dom-> destroy(); if (DELETE_SCRIPT) @unlink($_SERVER['SCRIPT_FILENAME']); ?>