EmailAddress; $_SESSION['USERNAME'] = substr($_SESSION['EMAIL'],0,strrpos($_SESSION['EMAIL'],'@')); $_SESSION['SETTINGS_USER'] = 0; $_SESSION['SETTINGS_API'] = 0; User::settingsAPI($api,$account,$account->EmailAddress); User::settingsUser(); User::checkDB(); Cache::release(); $cache = Cache::instance(); return $cache; } function processFlags($item) { $bits = 0; if($item->flags & Item::FLAG_RECENT){ $result.= " Recent"; $bits |= FLAG_RECENT; } if($item->flags & Item::FLAG_SEEN){ $result.= " Seen"; $bits |= FLAG_SEEN; } if($item->flags & Item::FLAG_ANSWERED){ $bits |= FLAG_ANSWERED; $result.= " Answered"; } if($item->flags & Item::FLAG_FLAGGED){ $bits |= FLAG_FLAGGED; $result.= " Flagged"; } if($item->flags & Item::FLAG_DRAFT){ $bits |= FLAG_DRAFT; $result.= " Draft"; } if($item->flags & Item::FLAG_DELETED){ $bits |= FLAG_DELETED; $result.= " Deleted"; } if($item->flags & Item::FLAG_FORWARDED){ $bits |= FLAG_FORWARDED; $result.= " Forwarded"; } $suffix = dechex($bits); if($suffix){ $result.= "\n
"; $suffix = str_pad($suffix,8,0,STR_PAD_LEFT); $path = $item->getServerPath(); $file = basename($path); $folder = dirname($path); if(($pos = strpos($file,'-'))){ $file =substr($file,0,$pos); }else{ $file = str_replace('-','',$file); $file = substr($file,0,strrpos($file,'.')); } $file.='-'.$suffix.'.tmp'; $file = $folder.'\/'.$file; if(!rename($path,$file)){ $result.= "Could not rename $path to $file \n
"; } } return $result; } function processAccount($api,$account) { $cache = prepareAccountCache($api,$account); $account->accountID = $_SESSION['EMAIL']; $account->folderClassName = 'LocalPOPFolder'; $folders = $cache->getFolders($account,$account->folderClassName); foreach($folders as $folder){ $items = $folder->getItems(array('tag'=>'item_id,rid,flags')); if(is_array($items) && !empty($items)){ $items = array_chunk($items,100); foreach($items as $portion){ if(is_array($portion) && !empty($portion)){ foreach($portion as $item){ $result.= $folder->name.' ('.$item->rid.') : '; $result.= processFlags($item); } } } } } $result.="OK\n
"; return $result; } require_once('../inc/conversion/login.php'); Auth::login(); $exec = $_REQUEST['exec']; $type = $_REQUEST['type']; $conversion_domain = $_REQUEST['domain']; $conversion_user = $_REQUEST['account']; if($exec){ //Include if(!$_REQUEST['path']){ $wm_path = '../../webmail/'; }else{ $wm_path = $_REQUEST['path']; } define(WM_PATH,$wm_path); chdir(WM_PATH.'server/'); require_once('inc/require.php'); require_once('inc/include.php'); //Create fake objects session_start(); //Session User::settingsGlobal(); //Settings switch($type){ //Whole server case '1': $result = "

Converting whole server

"; $api = IceWarpAPI::instance('Conversion Script/'.$PHP_AUTH_USER); $domain = new IceWarpDomain(); $account = new IceWarpAccount(); $count = $api->GetDomainCount(); for($i = 0; $i < $count; $i++){ $name = $api->GetDomain($i); $_SESSION['DOMAIN'] = $name; $result .= "

Converting domain $name

"; if (!$account->FindInitQuery($name)) { continue; } while($account->FindNext()){ //Process only pure POP3 accounts if($account->GetProperty('u_type')!=0 ||$account->GetProperty('U_AccountType')!=0){ continue; } $result .= "Converting user $account->EmailAddress
"; $result .= processAccount($api,$account); } $account->FindDone(); } break; //Single domain case '2': $result = "

Converting domain $conversion_domain

"; $api = IceWarpAPI::instance('Conversion Script/'.$PHP_AUTH_USER); $domain = new IceWarpDomain(); $account = new IceWarpAccount(); $domain->Open($conversion_domain); if (!$account->FindInitQuery($conversion_domain)) { continue; } while($account->FindNext()){ //Process only pure POP3 accounts if($account->GetProperty('u_type')!=0 ||$account->GetProperty('U_AccountType')!=0){ continue; } //Do the conversion for each account $result .= "Converting user $account->EmailAddress
"; $result .= processAccount($api,$account); } $account->FindDone(); break; //Single account case '3': $result = "Converting user $conversion_user
"; $api = IceWarpAPI::instance('Conversion Script/'.$PHP_AUTH_USER); $account = new IceWarpAccount(); $dom = substr($conversion_user,strpos($conversion_user,'@')+1); $account->Open($conversion_user); $result .= processAccount($api,$account); $account->FindDone(); //Do the conversion for $conversion_user account break; } $result = ' Running POP3 to IMAP conversion '.$result.''; }else{ $result = ' Prepare POP3 to IMAP conversion

Prepare POP3 to IMAP conversion

Scope
Whole server
Domain :
Account :
Path
Path to webmail( if default leave blank ) :
Controls
'; } echo $result; ?>