msglist.php
来自「通达OA2007SE源代码 非常好的」· PHP 代码 · 共 452 行
PHP
452 行
<?
function my_connect ()
{
global $UM;
global $sid;
global $tid;
global $lid;
if (!$UM->mail_connect ())
{
header ((((((((''.'Location: error.php?err=1&sid=').$sid).'&tid=').$tid).'&lid=').$lid).'
'));
exit ();
}
if (!$UM->mail_auth (true))
{
header ((((((((''.'Location: badlogin.php?sid=').$sid).'&tid=').$tid).'&lid=').$lid).'
'));
exit ();
}
}
require './inc/inc.php';
$smarty->assign ('umUser', $f_user);
$smarty->assign ('umJS', $jssource);
$refreshurl = (((((((((''.'msglist.php?sid=').$sid).'&tid=').$tid).'&lid=').$lid).'&folder=').urlencode ($folder)).(((''.'&pag=').$pag).'&refr=true'));
$headers = array ();
if (((!is_array ($sess['headers'][base64_encode (strtolower ($folder))]) OR isset ($decision)) OR isset ($refr)))
{
my_connect ();
$sess['auth'] = true;
$headers = $sess['headers'][base64_encode (strtolower ($folder))];
if ((isset ($start_pos) AND isset ($end_pos)))
{
for ($i = $start_pos; ($i < $end_pos); ++$i)
{
if (isset ($((''.'msg_').$i)))
{
if (($decision == 'delete'))
{
$UM->mail_delete_msg ($headers[$i], $prefs['save-to-trash'], $prefs['st-only-read']);
}
else
{
$UM->mail_move_msg ($headers[$i], $aval_folders);
}
$expunge = true;
continue;
}
}
if ($expunge)
{
if ($prefs['save-to-trash'])
{
unset ($$sess['headers']);
}
if (($decision == 'move'))
{
unset ($$sess['headers']);
}
$SS->Save ($sess);
$UM->mail_disconnect ();
my_connect ();
if ($back)
{
$back_to = $start_pos;
}
}
unset ($$sess['headers']);
}
else
{
if (isset ($refr))
{
unset ($$sess['headers']);
}
}
$boxes = $UM->mail_list_boxes ();
$sess['folders'] = $boxes;
$sess['last-update'] = time ();
if ($quota_limit)
{
for ($n = 0; ($n < count ($boxes)); ++$n)
{
$entry = $boxes[$n]['name'];
if (!is_array ($sess['headers'][base64_encode (strtolower ($entry))]))
{
$sess['headers'][base64_encode (strtolower ($entry))] = $UM->mail_list_msgs ($entry);
continue;
}
}
}
else
{
$sess['headers'][base64_encode (strtolower ($folder))] = $UM->mail_list_msgs ($folder);
}
$headers = $sess['headers'][base64_encode (strtolower ($folder))];
$UM->mail_disconnect ();
if (($check_first_login AND !$prefs['first-login']))
{
$prefs['first-login'] = 1;
save_prefs ($prefs);
$SS->Save ($sess);
header (((((((((''.'Location: preferences.php?sid=').$sid).'&tid=').$tid).'&lid=').$lid).'&folder=').urlencode ($folder)));
exit ();
}
}
else
{
$headers = $sess['headers'][base64_encode (strtolower ($folder))];
}
$arrow = (($sortorder == 'ASC') ? 'images/arrow_up.gif' : 'images/arrow_down.gif');
$arrow = (((''.' <img src=').$arrow).' width=8 height=7 border=0 alt=>');
$attach_arrow = '';
$subject_arrow = '';
$fromname_arrow = '';
$date_arrow = '';
$size_arrow = '';
switch ($sortby)
{
case 'subject':
{
$subject_arrow = $arrow;
break;
}
case 'fromname':
{
$fromname_arrow = $arrow;
break;
}
case 'date':
{
$date_arrow = $arrow;
break;
}
case 'size':
{
$size_arrow = $arrow;
break;
}
}
array_qsort2 ($headers, $sortby, $sortorder);
reset ($headers);
$sess['headers'][base64_encode (strtolower ($folder))] = $headers;
$SS->Save ($sess);
if ($back_to)
{
if (($back_to < count ($headers)))
{
header ((('Location: readmsg.php?folder='.urlencode ($folder)).((((((((((''.'&pag=').$pag).'&ix=').$back_to).'&sid=').$sid).'&tid=').$tid).'&lid=').$lid)));
exit ();
}
}
$elapsedtime = ((time () - $sess['last-update']) / 60);
$timeleft = ($prefs['refresh-time'] - $elapsedtime);
if ((0 < $timeleft))
{
echo (('<META HTTP-EQUIV="Refresh" CONTENT="'.(ceil ($timeleft) * 60)).(((''.'; URL=').$refreshurl).'">'));
}
else
{
if ($prefs['refresh-time'])
{
header (((''.'Location: ').$refreshurl));
}
}
while (list ($box, $info) = each ($sess['headers']))
{
for ($i = 0; ($i < count ($info)); ++$i)
{
($totalused += $info[$i]['size']);
}
}
unset ($UM);
$smarty->assign ('umTotalUsed', ceil (($totalused / 1024)));
$quota_enabled = ($quota_limit ? 1 : 0);
$smarty->assign ('umQuotaEnabled', $quota_enabled);
$smarty->assign ('umQuotaLimit', $quota_limit);
$usageGraph = get_usage_graphic (($totalused / 1024), $quota_limit);
$smarty->assign ('umUsageGraph', $usageGraph);
$exceeded = ($quota_limit AND ($quota_limit <= ceil (($totalused / 1024))));
$smarty->assign ('umAttachArrow', $attach_arrow);
$smarty->assign ('umSubjectArrow', $subject_arrow);
$smarty->assign ('umFromArrow', $fromname_arrow);
$smarty->assign ('umDateArrow', $date_arrow);
$smarty->assign ('umSizeArrow', $size_arrow);
$nummsg = count ($headers);
if ((!isset ($pag) OR !is_numeric (trim ($pag))))
{
$pag = 1;
}
$reg_pp = $prefs['rpp'];
$start_pos = (($pag - 1) * $reg_pp);
$end_pos = (($nummsg < ($start_pos + $reg_pp)) ? $nummsg : ($start_pos + $reg_pp));
if ((($end_pos <= $start_pos) AND ($pag != 1)))
{
header ((((((''.'Location: msglist.php?folder=').$folder).'&pag=').($pag - 1)).(((((((''.'&sid=').$sid).'&tid=').$tid).'&lid=').$lid).'
')));
}
echo $nocache;
$jsquota = ($exceeded ? 'true' : 'false');
$jssource = (((((((((((((((((''.'
<script language="JavaScript">
no_quota = ').$jsquota).';
quota_msg = \'').ereg_replace ('\'', '\\\'', $quota_exceeded)).'\';
function readmsg(ix,read) {
if(!read && no_quota)
alert(quota_msg)
else
location = \'readmsg.php?folder=').urlencode ($folder)).(((((((((''.'&pag=').$pag).'&ix=\'+ix+\'&sid=').$sid).'&tid=').$tid).'&lid=').$lid).'\';
}
function outputmsg(ix,read) {
if(!read && no_quota)
alert(quota_msg)
else
location = \'export.php?folder=')).urlencode ($folder)).(((((((((((''.'&pag=').$pag).'&ix=\'+ix+\'&sid=').$sid).'&tid=').$tid).'&lid=').$lid).'\';
}
function newmsg() { location = \'newmsg.php?pag=').$pag).'&folder=')).urlencode ($folder)).(((((((''.'&sid=').$sid).'&tid=').$tid).'&lid=').$lid).'\'; }
function refreshlist() { location = \'msglist.php?refr=true&folder=')).urlencode ($folder)).(((((((((''.'&pag=').$pag).'&sid=').$sid).'&tid=').$tid).'&lid=').$lid).'\' }
function folderlist() { location = \'folders.php?folder=')).urlencode ($folder)).(((((((((((((((((((((((((''.'&sid=').$sid).'&tid=').$tid).'&lid=').$lid).'\'}
function delemsg() { document.form1.submit() }
function goend() { location = \'logout.php?sid=').$sid).'&tid=').$tid).'&lid=').$lid).'\'; }
function goinbox() { location = \'msglist.php?folder=inbox&sid=').$sid).'&tid=').$tid).'&lid=').$lid).'\'; }
function search() { location = \'search.php?sid=').$sid).'&tid=').$tid).'&lid=').$lid).'\'; }
function emptytrash() { location = \'folders.php?empty=trash&folder=')).urlencode ($folder)).(((((((((((((((((((((((((((((((((''.'&goback=true&sid=').$sid).'&tid=').$tid).'&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).'&tid=').$tid).'&lid=').$lid).'\'; }
function prefs() { location = \'preferences.php?sid=').$sid).'&tid=').$tid).'&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).'&tid=').$tid).'&lid=').$lid).'\';
}
</script>
'));
$smarty->assign ('umErrorMessage', $msg);
$forms = (((((((''.'<input type=hidden name=lid value=').$lid).'>
<input type=hidden name=sid value="').$sid).'">
<input type=hidden name=decision value=delete>
<input type=hidden name=folder value="').htmlspecialchars ($folder)).(((((((''.'">
<input type=hidden name=pag value=').$pag).'>
<input type=hidden name=start_pos value=').$start_pos).'>
<input type=hidden name=end_pos value=').$end_pos).'>'));
$smarty->assign ('umJS', $jssource);
$smarty->assign ('umForms', $forms);
$smarty->assign ('umUserEmail', $sess['email']);
$smarty->assign ('umFolder', $folder);
$messagelist = array ();
$func ($textout);
if ((0 < $nummsg))
{
$newmsgs = 0;
for ($i = 0; ($i < count ($headers)); ++$i)
{
if (!eregi ('\\SEEN', $headers[$i]['flags']))
{
++$newmsgs;
continue;
}
}
if (($nummsg == 1))
{
$counttext = $msg_count_s;
}
else
{
$counttext = sprintf ($msg_count_p, $nummsg);
}
if (($newmsgs == 1))
{
($counttext .= $msg_unread_s);
}
else
{
if ((1 < $newmsgs))
{
($counttext .= sprintf ($msg_unread_p, $newmsgs));
}
else
{
($counttext .= $msg_no_unread);
}
}
($counttext .= sprintf ($msg_boxname, $boxname));
for ($i = $start_pos; ($i < $end_pos); ++$i)
{
$mnum = $headers[$i]['id'];
$read = (eregi ('\\SEEN', $headers[$i]['flags']) ? 'true' : 'false');
$readlink = (((((''.'javascript:readmsg(').$i).',').$read).')');
$outputlink = (((((''.'javascript:outputmsg(').$i).',').$read).')');
$composelink = (((((((''.'newmsg.php?folder=').$folder).'&nameto=').htmlspecialchars ($headers[$i]['from'][0]['name'])).'&mailto=').htmlspecialchars ($headers[$i]['from'][0]['mail'])).((((((''.'&sid=').$sid).'&tid=').$tid).'&lid=').$lid));
$composelinksent = (((((((''.'newmsg.php?folder=').$folder).'&nameto=').htmlspecialchars ($headers[$i]['to'][0]['name'])).'&mailto=').htmlspecialchars ($headers[$i]['to'][0]['name'])).((((((''.'&sid=').$sid).'&tid=').$tid).'&lid=').$lid));
$from = $headers[$i]['from'][0]['name'];
$to = $headers[$i]['to'][0]['name'];
$subject = $headers[$i]['subject'];
if (!eregi ('\\SEEN', $headers[$i]['flags']))
{
$msg_img = './images/msg_unread.gif';
}
else
{
if (eregi ('\\ANSWERED', $headers[$i]['flags']))
{
$msg_img = './images/msg_answered.gif';
}
else
{
$msg_img = './images/msg_read.gif';
}
}
$prior = $headers[$i]['priority'];
if ((($prior == 4) OR ($prior == 5)))
{
$img_prior = ' <img src="./images/prior_low.gif" width=5 height=11 border=0 alt="">';
}
else
{
if ((($prior == 1) OR ($prior == 2)))
{
$img_prior = ' <img src="./images/prior_high.gif" width=5 height=11 border=0 alt="">';
}
else
{
$img_prior = '';
}
}
$msg_img = (((''.' <img src="').$msg_img).'" width=14 height=14 border=0 alt="">');
$checkbox = (((''.'<input type="checkbox" name="msg_').$i).'" value=1>');
$attachimg = ($headers[$i]['attach'] ? ' <img src=images/attach.gif border=0>' : '');
$date = $headers[$i]['date'];
$size = ceil (($headers[$i]['size'] / 1024));
$index = count ($messagelist);
$messagelist[$index]['read'] = $read;
$messagelist[$index]['readlink'] = $readlink;
$messagelist[$index]['composelink'] = $composelink;
$messagelist[$index]['composelinksent'] = $composelinksent;
$messagelist[$index]['from'] = $from;
$messagelist[$index]['to'] = $to;
$messagelist[$index]['subject'] = $subject;
$messagelist[$index]['date'] = $date;
$messagelist[$index]['statusimg'] = $msg_img;
$messagelist[$index]['checkbox'] = $checkbox;
$messagelist[$index]['attachimg'] = $attachimg;
$messagelist[$index]['priorimg'] = $img_prior;
$messagelist[$index]['size'] = $size;
$messagelist[$index]['outputlink'] = $outputlink;
}
}
$smarty->assign ('umNumMessages', $nummsg);
$smarty->assign ('umNumUnread', $newmsgs);
$smarty->assign ('umMessageList', $messagelist);
switch (strtolower ($folder))
{
case 'inbox':
{
$display = $inbox_extended;
break;
}
case 'sent':
{
$display = $sent_extended;
break;
}
case 'trash':
{
$display = $trash_extended;
break;
}
default:
{
$display = $entry;
}
}
$smarty->assign ('umBoxName', $display);
if ((0 < $nummsg))
{
if ((1 < $pag))
{
$smarty->assign ('umPreviousLink', (((((''.'msglist.php?folder=').$folder).'&pag=').($pag - 1)).((((((''.'&sid=').$sid).'&tid=').$tid).'&lid=').$lid)));
}
for ($i = 1; ($i <= ceil (($nummsg / $reg_pp))); ++$i)
{
if (($pag == $i))
{
($navigation .= ((''.$i).' '));
continue;
}
else
{
($navigation .= (((((((((((((''.'<a href="msglist.php?folder=').$folder).'&pag=').$i).'&sid=').$sid).'&tid=').$tid).'&lid=').$lid).'" class="navigation">').$i).'</a> '));
continue;
}
}
if (($end_pos < $nummsg))
{
$smarty->assign ('umNextLink', (((((''.'msglist.php?folder=').$folder).'&pag=').($pag + 1)).((((((''.'&sid=').$sid).'&tid=').$tid).'&lid=').$lid)));
}
($navigation .= (((((''.' (').$pag).'/').ceil (($nummsg / $reg_pp))).')'));
}
$smarty->assign ('umNavBar', $navigation);
$avalfolders = array ();
$d = dir ($userfolder);
while ($entry = $d->read ())
{
if ((((((is_dir (($userfolder.$entry)) AND ($entry != '..')) AND ($entry != '.')) AND (substr ($entry, 0, 1) != '_')) AND ($entry != $folder)) AND (($mail_protocol == 'imap') OR ($entry != 'inbox'))))
{
switch (strtolower ($entry))
{
case 'inbox':
{
$display = $inbox_extended;
break;
}
case 'sent':
{
$display = $sent_extended;
break;
}
case 'trash':
{
$display = $trash_extended;
break;
}
default:
{
$display = $entry;
}
}
$avalfolders[] = array ('path' => $entry, 'display' => $display);
continue;
}
}
$d->close ();
$smarty->assign ('umAvalFolders', $avalfolders);
$smarty->display ('neotech.net/messagelist.htm');
?>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?