Example #1
0
if (!is_array($msgs)) {
    settype($msgs, 'array');
}
if (isset($_REQUEST['msgmove'])) {
    $msgmove = $_REQUEST['msgmove'];
}
$mail = new GetMail(array('Username' => $atmail->username, 'Pop3host' => $atmail->pop3host, 'Password' => $auth->password, 'Type' => $atmail->MailType, 'Mode' => $atmail->Mode));
$status = $mail->login();
// We have an error while logging in. Tell the user
if ($status) {
    print $atmail->parse("html/{$atmail->Language}/auth_misc.html", array('status' => "Remote mail-server not responding - Check connection - {$status}"));
    $mail->quit();
    $atmail->end();
}
// Receive the list of mailbox folders
$folders = GetMail::_sort_folders($mail->listfolders());
// Make sure the requested folder exists (help avoid XSS etc)
if (!empty($var['folder']) && !in_array($var['folder'], $folders)) {
    die("requested folder does not exist");
}
$fol = array();
// Create the select box for moving messages to another folder
$var['folderbox'] = $mail->folder_select($var['folder'], $folders);
$var['folderbox'] = $mail->folder_select_lang($var['folderbox'], $atmail->Language);
// By default, we want to move to Trash
$var['folderbox'] = str_replace("value=\"Trash\"", "value=\"Trash\" selected", $var['folderbox']);
// If the user has set the messages to another flag; update the UIDL database.
if ($var['flag'] && $msgs[0]) {
    $c = 0;
    foreach ($msgs as $id) {
        $folder = urldecode($_REQUEST['folders'][$c]);
Example #2
0
function util_info()
{
    global $mail, $atmail, $var, $domains;
    $mail->login();
    $reload = false;
    // We keep the folder info in session to speed up page loading as
    // when we have large folders this can take a while. Data stays valid
    // for 15 minutes
    //if (isset($_SESSION['folderinfo']) && ($_SESSION['folderinfo']['created'] < (time() - 900))) {
    //	unset($_SESSION['folderinfo']);
    //}
    $var['delim'] = $mail->Deliminator;
    if (isset($_REQUEST['renamefolder']) && !empty($_REQUEST['curname']) && !empty($_REQUEST['foldername'])) {
        if ($_REQUEST['curname'] != 'Sent' && $_REQUEST['curname'] != 'Trash' && $_REQUEST['curname'] != 'Drafts' && $_REQUEST['curname'] != 'Spam') {
            // Cannot change parent name
            if (false !== ($pos = strrpos($_REQUEST['curname'], $mail->Deliminator))) {
                $parent = substr($_REQUEST['curname'], 0, $pos);
                $new_folder = $parent . $mail->Deliminator . $_REQUEST['foldername'];
            } else {
                $new_folder = $_REQUEST['foldername'];
            }
            $mail->renamefolder(str_replace('/', $mail->Deliminator, $_REQUEST['curname']), str_replace('/', $mail->Deliminator, $new_folder));
            $reload = true;
            //$_SESSION['folderinfo'][$new_folder] = $_SESSION['folderinfo'][$_REQUEST['curname']];
            //unset($_SESSION['folderinfo'][$_REQUEST['curname']]);
        }
    }
    // The user selects to create a new mailbox
    if ($_REQUEST['creatembox']) {
        $folder = $_REQUEST['foldername'];
        $mail->newfolder($folder);
        // Add the folder to the session data if required
        //if (isset($_SESSION['folderinfo']) && !preg_match('^(inbox|spam|trash|drafts|sent)$/i', $folder)) {
        //	$_SESSION['folderinfo'][$folder]['msgs'] = 0;
        //	$_SESSION['folderinfo'][$folder]['size'] = 0;
        //}
        $reload = true;
    } elseif ($_REQUEST['delete']) {
        $del = urldecode($_REQUEST['delete']);
        if ($_REQUEST['purge'] == 1) {
            $mail->purgefolder($del);
        } else {
            $mail->delfolder($del);
        }
        // Update the folder data in the session if required
        //if (isset($_SESSION['folderinfo']) && preg_match('/^(inbox|spam|trash|drafts|sent)$/i', $del)) {
        //	$_SESSION['folderinfo'][$del]['msgs'] = 0;
        //	$_SESSION['folderinfo'][$del]['size'] = 0;
        //} elseif (isset($_SESSION['folderinfo'])) {
        //	unset($_SESSION['folderinfo'][$del]);
        //	unset($_SESSION['folderinfo'][$del]);
        //}
        if ($_REQUEST['purge'] != 1 && $del != 'Trash' && $del != 'Spam') {
            // Delete any message filters that match the foldername
            $sort_subject = $atmail->getsort('EmailSubject', 'hash');
            foreach ($sort_subject as $k => $v) {
                if ($v == $del) {
                    $atmail->delsort($k, 'EmailSubject');
                }
            }
            $sort_email = $atmail->getsort('EmailAddress', 'hash');
            foreach ($sort_email as $k => $v) {
                if ($v == $del) {
                    $atmail->delsort($k, 'EmailAddress');
                }
            }
        }
        $reload = true;
    } elseif ($_REQUEST['spamadd']) {
        $atmail->addspamer();
    } elseif ($_REQUEST['spamdel']) {
        $atmail->delspamer();
    } elseif ($_REQUEST['addsort']) {
        $atmail->addsort();
    } elseif ($_REQUEST['delsort']) {
        $atmail->delsort(base64_decode($_REQUEST['delete_sort']), $_REQUEST['type']);
    }
    // Find the folder names , size and number of messages
    $folders = $mail->listfolders();
    // sort the folders by name
    $folders = GetMail::_sort_folders($folders);
    // Make a select box with the foldernames
    $var['folderbox'] = $var['renamefolderbox'] = $mail->folder_select('Inbox', $folders, false);
    // Remove System folders from rename options
    $patterns = array("<option value=\"Trash\">Trash</option>", "<option value=\"Spam\">Spam</option>", "<option value=\"Drafts\">Drafts</option>", "<option value=\"Sent\">Sent</option>");
    $var['renamefolderbox'] = str_replace($patterns, '', $var['renamefolderbox']);
    $var['renamefolderbox'] = '<option value="">--</option>' . $var['renamefolderbox'];
    $var['folderbox'] = str_replace("value=\"Trash\"", "value=\"Trash\" selected", $var['folderbox']);
    //$var['folderbox'] = preg_replace('/<option value="erase">.*?<\/option>/', '', $var['folderbox']);
    //$var['folderbox'] = preg_replace('/<option value="" style=\'color: gray;\'>.*?<\/option>/', '', $var['folderbox']);
    // Translate the mailbox folders into another language
    $var['folderbox'] = Language::folder_language($var['folderbox'], $atmail->Language, null);
    //list($var['usedquota'], $var['totalquota']) = $mail->getquota();
    // The size of our quota in Kb
    /*
    if (!$var['totalquota'])
    {
    	$var['totalquota'] = $atmail->UserQuota;
    	$var['totalquota'] = sprintf("%2.0f", $var['totalquota']);
    }
    
    if ($var['usedquota'] > 0 && $var['totalquota'] > 0)
    {
    	$var['used'] = ( $var['usedquota'] / $var['totalquota']) * 100;
    
    	if ($var['used'] < 1)
    		$var['used'] = '1%';
    	else
    		$var['used'] = round($var['used'], 2) . '%';
    }
    
    $var['used_percent'] = $var['used']? $var['used'] : '1%';
    */
    foreach ($folders as $folder) {
        // Retrieve the foldername without any / extension
        $folderlink = $mail->folder_getlink($folder);
        list($num, $size) = $mail->sizefolder($folderlink);
        // Get the data from the session if it exists
        //if (isset($_SESSION['folderinfo'][$folder]) && $_SESSION['folderinfo'][$folder]['msgs'] > 0) {
        //	$num = $_SESSION['folderinfo'][$folder]['msgs'];
        //	$size = $_SESSION['folderinfo'][$folder]['size'];
        //} else {
        // Implement cache function soon - Read the size for the moment
        //	list( $num, $size ) = $mail->sizefolder($folderlink);
        //	$_SESSION['folderinfo'][$folder] = array('msgs' => $num, 'size' => $size);
        //	$_SESSION['folderinfo']['created'] = time();
        //}
        // Skip Inbox for the POP3 protocol
        if (strtoupper($folder) == 'INBOX' && !$domains[$atmail->pop3host] && $atmail->MailType == 'pop3') {
            continue;
        }
        // Change the display language, depending on the user language login
        $foldername = Language::folder_language($folder, $atmail->Language, 1);
        $var['folders'] .= $atmail->parse("html/{$atmail->Language}/{$atmail->LoginType}/foldertr.html", array('Folder' => $folder, 'FolderLink' => $folderlink, 'FolderName' => $foldername, 'Size' => $size, 'MsgNum' => $num, 'SystemFolder' => $mail->isAtmailFolder($folder)));
    }
    // Make a select box with our list of spammers
    //$var['spam_select'] = $atmail->spam_select();
    $var['sort_email'] = $atmail->getsort('EmailAddress');
    $var['sort_subj'] = $atmail->getsort('EmailSubject');
    // Translate the mailbox folders into another language
    $var['sort_email'] = $mail->folder_select_lang($var['sort_email'], $atmail->Language, 1);
    $var['sort_subj'] = $mail->folder_select_lang($var['sort_subj'], $atmail->Language, 1);
    $var['reloadFolders'] = isset($_REQUEST['noreload']) || $reload == false ? 'false' : 'true';
    print $atmail->parse("html/{$atmail->Language}/{$atmail->LoginType}/folders.html", $var);
}