📄 msglist.php
字号:
<?
include("session_management.php");
if($folder == "inbox" && ($decision == "delete" ||
$decision == "move" ||
isset($refr) ||
isset($del) ||
!is_array($sess["headers"]))) {
if(!$p3->pop_connect()) die("<script language=\"javascript\">location = 'error.php?msg=".urlencode($error_connect)."&sid=$sid&lid=$lid';</script>");
if(!$p3->pop_auth()) die("<script language=\"javascript\">location = 'badlogin.php?sid=$sid&lid=$lid'</script>");
$deleted = 0;
while(list ($key, $mid) = each($HTTP_POST_VARS)) {
if(substr($key,0,3) == "msg") {
$index = substr($key,4);
$mail_info = $sess["headers"][$index];
$mnum = $mail_info["id"];
$mid = md5($mail_info["message-id"]);
$msize = $mail_info["size"];
$filename = basename($mail_info["localname"]);
$LocalFilePath = $userfolder.$folder."/".$filename;
$NewFilePath = $userfolder.$aval_folders."/".$filename;
if ($decision == "delete") {
$read = file_exists($LocalFilePath);
$trash = 0;
if($send_to_trash) {
$trash = 1;
if($st_only_read && !$read) $trash = 0;
}
if($p3->pop_dele_msg($mnum,$mid,$msize,$trash)) $deleted++;
else die("<script language=\"javascript\">location = 'error.php?sid=$sid&lid=$lid&msg=".urlencode($error_deleting)."';</script>");
} elseif ($decision == "move") {
if (!file_exists($LocalFilePath)) {
$md = new Mime_Decode();
$tempmail = $p3->pop_retr_msg($mnum,$mid,$msize);
$tempmail = $md->set_as($tempmail,0);
$tmpfile = fopen($LocalFilePath,"wb+");
fwrite($tmpfile,$tempmail);
fclose($tmpfile);
}
if(file_exists($userfolder.$aval_folders))
copy($LocalFilePath,$NewFilePath);
@unlink($LocalFilePath);
if(!$p3->pop_dele_msg($mnum,$mid,$msize,0)) die("<script language=\"javascript\">location = 'error.php?sid=$sid&lid=$lid&msg=".urlencode($error_deleting)."';</script>");
}
}
}
$headers = $p3->pop_list_msgs();
$sess["headers"] = $headers;
save_session($sess);
$p3->pop_disconnect();
} elseif ($decision == "move" || $decision == "delete" || (isset($mnum) && isset($ix))) {
while(list ($key, $mid) = each ($HTTP_POST_VARS)) {
if(substr($key,0,3) == "msg") {
$index = substr($key,4);
$mail_info = $sess["folderheaders"][$index];
$localname = $mail_info["localname"];
$filename = basename($localname);
$newlocalname = $userfolder.$aval_folders."/$filename";
$trash = 0;
if($send_to_trash) {
$trash = 1;
if($st_only_read && !$mail_info["read"]) $trash = 0;
}
if( $decision == "delete" && $trash && $folder != "trash")
copy($localname,$userfolder."trash/$filename");
elseif ($decision == "move" && file_exists($userfolder.$aval_folders))
copy($localname,$newlocalname);
@unlink($localname);
}
}
$headers = build_local_list($userfolder.$folder);
$sess["folderheaders"] = $headers;
save_session($sess);
} elseif ($folder == "inbox") {
$headers = $sess["headers"];
} else {
$headers = build_local_list($userfolder.$folder);
$sess["folderheaders"] = $headers;
save_session($sess);
}
//loading quota info
$totalused = get_total_used_size();
if(($totalused/1024) > $quota_limit && $folder == "inbox") $exceeded = 1;
// sorting arrays..
array_qsort2($headers,$sortby,$sortorder);
reset($headers);
if($folder == "inbox")
$sess["headers"] = $headers;
else
$sess["folderheaders"] = $headers;
save_session($sess);
$useremail = $sess["email"];
$nummsg = count($headers);
if(!isset($pag) || !is_numeric(trim($pag))) $pag = 1;
$reg_pp = $records_per_page;
$start_pos = ($pag-1)*$reg_pp;
$end_pos = (($start_pos+$reg_pp) > $nummsg)?$nummsg:$start_pos+$reg_pp;
if(($start_pos >= $end_pos) && ($pag != 1)) header("Location: msglist.php?folder=$folder&pag=".($pag-1)."&sid=$sid&lid=$lid\r\n");
echo($nocache);
$tcontent = read_file($message_list_template);
$jsquota = ($exceeded)?"true":"false";
$jssource = "
<script language=\"JavaScript\">
no_quota = $jsquota;
quota_msg = '$quota_exceeded';
function readmsg(mnum,pag,ix,read) {
if(!read && no_quota)
alert(quota_msg)
else
location = 'readmsg.php?folder=".urlencode($folder)."&mnum='+mnum+'&pag='+pag+'&ix='+ix+'&sid=$sid&lid=$lid';
}
function newmsg() { location = 'newmsg.php?pag=$pag&folder=".urlencode($folder)."&sid=$sid&lid=$lid'; }
function refreshlist() { location = 'msglist.php?refr=true&folder=".urlencode($folder)."&sid=$sid&lid=$lid' }
function folderlist() { location = 'folders.php?folder=".urlencode($folder)."&sid=$sid&lid=$lid'}
function delemsg() { document.form1.submit() }
function goend() { location = 'logout.php?sid=$sid'; }
function goinbox() { location = 'msglist.php?folder=inbox&sid=$sid&lid=$lid'; }
function search() { location = 'search.php?sid=$sid&lid=$lid'; }
function emptytrash() { location = 'folders.php?empty=trash&folder=".urlencode($folder)."&goback=true&sid=$sid&lid=$lid';}
function movemsg() {
if(no_quota)
alert(quota_msg);
else {
with(document.form1) { decision.value = 'move'; submit(); }
}
}
function addresses() { location = 'addressbook.php?sid=$sid&lid=$lid'; }
function prefs() { location = 'preferences.php?sid=$sid&lid=$lid'; }
function sel() {
with(document.form1) {
for(i=0;i<elements.length;i++) {
thiselm = elements[i];
if(thiselm.name.substring(0,3) == 'msg')
thiselm.checked = !thiselm.checked
}
}
}
sort_colum = '$sortby';
sort_order = '$sortorder';
function sortby(col) {
if(col == sort_colum) ord = (sort_order == 'ASC')?'DESC':'ASC';
else ord = 'ASC';
location = 'msglist.php?folder=$folder&pag=$pag&sortby='+col+'&sortorder='+ord+'&sid=$sid&lid=$lid';
}
</script>
";
$tcontent = eregi_replace("<!--%UM_USER_EMAIL%-->",$useremail,eregi_replace("<!--%UM_JS%-->",$jssource,$tcontent));
$tcontent = eregi_replace("<!--%UM_ACTIVE_FOLDER%-->",$folder,$tcontent);
$tcontent = eregi_replace("<!--%UM_LID%-->",$lid,$tcontent);
$tcontent = eregi_replace("<!--%UM_SID%-->",$sid,$tcontent);
$tcontent = eregi_replace("<!--%UM_ACTIVE_PAGE%-->",$pag,$tcontent);
$startlist = strpos($tcontent,"<!--%UM_BEGIN_MESSAGE_LIST%-->");
$endlist = strpos($tcontent,"<!--%UM_END_MESSAGE_LIST%-->")+28;
$listline = substr($tcontent,$startlist+30,$endlist-$startlist-58);
$listlinetoreplace = substr($tcontent,$startlist,$endlist-$startlist);
$startlistloop = strpos($tcontent,"<!--%UM_ML_LOOPBEGIN%-->");
$endlistloop = strpos($tcontent,"<!--%UM_ML_LOOPEND%-->")+22;
$listloop = substr($tcontent,$startlistloop+24,$endlistloop-$startlistloop-46);
$startnolist = strpos($tcontent,"<!--%UM_BEGIN_NO_MESSAGES%-->");
$endnolist = strpos($tcontent,"<!--%UM_END_NO_MESSAGES%-->")+27;
$nomessagesline = substr($tcontent,$startnolist+29,$endnolist-$startnolist-56);
$nomessageslinetoreplace = substr($tcontent,$startnolist,$endnolist-$startnolist);
switch($folder) {
case "inbox":
$boxname = $inbox_extended;
break;
case "sent":
$boxname = $sent_extended;
break;
case "trash":
$boxname = $trash_extended;
break;
default:
$boxname = $folder;
}
if($nummsg > 0) {
$tcontent = eregi_replace($nomessageslinetoreplace,"",$tcontent);
$beforeloop = substr($listline,0,strpos($listline,"<!--%UM_ML_LOOPBEGIN%-->"));
$afterloop = substr($listline,strpos($listline,"<!--%UM_ML_LOOPEND%-->")+22);
$newmsgs = 0;
for($i=0;$i<count($headers);$i++)
if(!$headers[$i]["read"]) $newmsgs++;
if($nummsg == 1) $counttext = $msg_count_s;
else $counttext = sprintf($msg_count_p,$nummsg);
if($newmsgs == 1) $counttext .= $msg_unread_s;
elseif ($newmsgs > 1) $counttext .= sprintf($msg_unread_p,$newmsgs);
else $counttext .= $msg_no_unread;
$counttext .= sprintf($msg_boxname,$boxname);
$msglist .= eregi_replace("<!--%UM_MESSAGECOUNT%-->",$counttext,$beforeloop);
for($i=$start_pos;$i<$end_pos;$i++) {
$thisline = "$listloop\r\n";
$mnum = $headers[$i]["id"];
$mid = md5($headers[$i]["message-id"]);
$read = ($headers[$i]["read"])?"true":"false";
$link = "javascript:readmsg($mnum,$pag,$i,$read)";
$dlink = "msglist.php?folder=$folder&pag=$pag&del=true&mnum=$mnum&mid=$mid&msize=".$headers[$i]["size"]."&sid=$sid&lid=$lid";
$clink = "newmsg.php?folder=$folder&nameto=".htmlspecialchars($headers[$i]["from"][0]["name"])."&mailto=".htmlspecialchars($headers[$i]["from"][0]["mail"])."&sid=$sid&lid=$lid";
$from = htmlspecialchars(($headers[$i]["from"][0]["name"] != "")?$headers[$i]["from"][0]["name"]:$no_sender_text);
$subject = htmlspecialchars((strlen($headers[$i]["subject"]) > 25)?substr($headers[$i]["subject"],0,25)."...":$headers[$i]["subject"]);
if($subject == "") $subject = $no_subject_text;
if(!$headers[$i]["read"])
$subject = "<b>$subject</b>";
$from = (strlen($from) > 25)?substr($from,0,25)."...":$from;
$checkbox = "<input type=\"checkbox\" name=\"msg_$i\" value=\"$mid\">";
$thisline = eregi_replace("<!--%UM_ML_CHECKBOX%-->",$checkbox,$thisline);
$attachimg = ($headers[$i]["attach"])?"<img src=images/attach.gif border=0>":" ";
$thisline = eregi_replace("<!--%UM_ML_HAVE_ATTACH%-->",$attachimg,$thisline);
$fromlink = "<a href=\"$clink\">$from</a>";
$thisline = eregi_replace("<!--%UM_ML_FROM%-->",$fromlink,$thisline);
$subjectlink = "<a href=\"$link\">$subject</a>";
$thisline = eregi_replace("<!--%UM_ML_SUBJECT%-->",$subjectlink,$thisline);
$date = $headers[$i]["date"];
$thisline = eregi_replace("<!--%UM_ML_DATE%-->",@date($date_format,$date),$thisline);
$size = ceil($headers[$i]["size"]/1024)."Kb";
$thisline = eregi_replace("<!--%UM_ML_SIZE%-->",$size,$thisline);
$msglist .= $thisline;
}
$msglist .= $afterloop;
$tcontent = substr($tcontent,0,$startlist).$msglist.substr($tcontent,$endlist,strlen($tcontent));
} else {
$tcontent = substr($tcontent,0,$startlist)."".substr($tcontent,$endlist,strlen($tcontent));
$startnolist = strpos($tcontent,"<!--%UM_BEGIN_NO_MESSAGES%-->");
$endnolist = strpos($tcontent,"<!--%UM_END_NO_MESSAGES%-->")+27;
$tcontent = substr($tcontent,0,$startnolist).eregi_replace("<!--%UM_BOX_NAME%-->",$boxname,$nomessagesline).substr($tcontent,$endnolist,strlen($tcontent));
}
if($nummsg > 0) {
if($pag > 1) $navigation .= "<a href=\"msglist.php?folder=$folder&pag=".($pag-1)."&sid=$sid&lid=$lid\" class=\"navigation\">$previous_text</a> ";
for($i=1;$i<=ceil($nummsg / $reg_pp);$i++)
if($pag == $i) $navigation .= "$i ";
else $navigation .= "<a href=\"msglist.php?folder=$folder&pag=$i&sid=$sid&lid=$lid\" class=\"navigation\">$i</a> ";
if($end_pos < $nummsg) $navigation .= "<a href=\"msglist.php?folder=$folder&pag=".($pag+1)."&sid=$sid&lid=$lid\" class=\"navigation\">$next_text</a> ";
$navigation .= " ( $pag de ".ceil($nummsg / $reg_pp).")";
}
$myselect = "<select name=\"aval_folders\">\r\n";
$d = dir($userfolder);
while($entry=$d->read()) {
if( is_dir($userfolder.$entry) &&
$entry != ".." &&
$entry != "." &&
substr($entry,0,1) != "_" &&
$entry != $folder &&
$entry != "inbox") {
switch($entry) {
case "inbox":
$boxname = $inbox_extended;
break;
case "sent":
$boxname = $sent_extended;
break;
case "trash":
$boxname = $trash_extended;
break;
default:
$boxname = $entry;
}
$myselect .= "<option value=\"$entry\">$boxname\r\n";
}
}
$myselect .= "</select>";
$d->close();
$tcontent = eregi_replace("<!--%UM_MESSAGE_NAVIGATION%-->",$navigation,$tcontent);
$tcontent = eregi_replace("<!--%UM_AVAL_FOLDERS%-->",$myselect,$tcontent);
$tcontent = eregi_replace("<!--%UM_TOTAL_USED%-->",ceil($totalused/1024) ." Kb",$tcontent);
$tcontent = eregi_replace("<!--%UM_AVAL_SIZE%-->",$quota_limit ." Kb",$tcontent);
$tcontent = eregi_replace("<!--%UM_USAGE_GRAPHIC%-->",get_usage_graphic(($totalused/1024),$quota_limit),$tcontent);
echo($tcontent);
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -