⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msglist.php

📁 极限网络智能办公系统—MYOA26—100%—源程序。
💻 PHP
字号:
<?php

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}\r\n" );
		exit( );
	}
	if ( !$UM->mail_auth( true ) )
	{
		header( "Location: badlogin.php?sid={$sid}&tid={$tid}&lid={$lid}\r\n" );
		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";
if ( !is_array( $sess['headers'][base64_encode( strtolower( $folder ) )] ) || isset( $decision ) || isset( $refr ) )
{
	my_connect( );
	$sess['auth'] = true;
	$headers = $sess['headers'][base64_encode( strtolower( $folder ) )];
	if ( isset( $start_pos, $end_pos ) )
	{
		$i = $start_pos;
		for ( ;	$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;
			}
		}
		if ( $expunge )
		{
			if ( $prefs['save-to-trash'] )
			{
				unset( $this->headers->base64_encode( "trash" ) );
			}
			if ( $decision == "move" )
			{
				unset( $this->headers->base64_encode( strtolower( $aval_folders ) ) );
			}
			$SS->save( $sess );
			$UM->mail_disconnect( );
			my_connect( );
			if ( $back )
			{
				$back_to = $start_pos;
			}
		}
		unset( $this->headers->base64_encode( strtolower( $folder ) ) );
	}
	else if ( isset( $refr ) )
	{
		unset( $this->headers->base64_encode( strtolower( $folder ) ) );
	}
	$boxes = $UM->mail_list_boxes( );
	$sess['folders'] = $boxes;
	$sess['last-update'] = time( );
	if ( $quota_limit )
	{
		$n = 0;
		for ( ;	$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 );
			}
		}
	}
	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 && !$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 = "&nbsp;<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;
}
array_qsort2( $headers, $sortby, $sortorder );
reset( $headers );
$sess['headers'][base64_encode( strtolower( $folder ) )] = $headers;
$SS->save( $sess );
if ( $back_to && $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'] ) )
{
	$i = 0;
	for ( ;	$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 && $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 ) || !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 && $pag != 1 )
{
	header( ( "Location: msglist.php?folder={$folder}&pag=".( $pag - 1 ) )."&sid={$sid}&tid={$tid}&lid={$lid}\r\n" );
}
echo $nocache;
$jsquota = $exceeded ? "true" : "false";
$jssource = "\r\n<script language=\"JavaScript\">\r\nno_quota  = {$jsquota};\r\nquota_msg = '".ereg_replace( "'", "\\'", $quota_exceeded )."';\r\nfunction readmsg(ix,read) {\r\n\tif(!read && no_quota)\r\n\t\talert(quota_msg)\r\n\telse\r\n\t\tlocation = 'readmsg.php?folder=".urlencode( $folder )."&pag={$pag}&ix='+ix+'&sid={$sid}&tid={$tid}&lid={$lid}'; \r\n}\r\nfunction outputmsg(ix,read) {\r\n\tif(!read && no_quota)\r\n\t\talert(quota_msg)\r\n\telse\r\n\t\tlocation = 'export.php?folder=".urlencode( $folder )."&pag={$pag}&ix='+ix+'&sid={$sid}&tid={$tid}&lid={$lid}'; \r\n}\r\nfunction newmsg() { location = 'newmsg.php?pag={$pag}&folder=".urlencode( $folder )."&sid={$sid}&tid={$tid}&lid={$lid}'; }\r\nfunction refreshlist() { location = 'msglist.php?refr=true&folder=".urlencode( $folder )."&pag={$pag}&sid={$sid}&tid={$tid}&lid={$lid}' }\r\nfunction folderlist() { location = 'folders.php?folder=".urlencode( $folder )."&sid={$sid}&tid={$tid}&lid={$lid}'}\r\nfunction delemsg() { document.form1.submit() }\r\nfunction goend() { location = 'logout.php?sid={$sid}&tid={$tid}&lid={$lid}'; }\r\nfunction goinbox() { location = 'msglist.php?folder=inbox&sid={$sid}&tid={$tid}&lid={$lid}'; }\r\nfunction search() { location = 'search.php?sid={$sid}&tid={$tid}&lid={$lid}'; }\r\nfunction emptytrash() {\tlocation = 'folders.php?empty=trash&folder=".urlencode( $folder )."&goback=true&sid={$sid}&tid={$tid}&lid={$lid}';}\r\nfunction movemsg() { \r\n\tif(no_quota) \r\n\t\talert(quota_msg);\r\n\telse {\r\n\t\twith(document.form1) { decision.value = 'move'; submit(); } \r\n\t}\r\n}\r\nfunction addresses() { location = 'addressbook.php?sid={$sid}&tid={$tid}&lid={$lid}'; }\r\nfunction prefs() { location = 'preferences.php?sid={$sid}&tid={$tid}&lid={$lid}'; }\r\nfunction sel() {\r\n\twith(document.form1) {\r\n\t\tfor(i=0;i<elements.length;i++) {\r\n\t\t\tthiselm = elements[i];\r\n\t\t\tif(thiselm.name.substring(0,3) == 'msg')\r\n\t\t\t\tthiselm.checked = !thiselm.checked\r\n\t\t}\r\n\t}\r\n}\r\nsort_colum = '{$sortby}';\r\nsort_order = '{$sortorder}';\r\n\r\nfunction sortby(col) {\r\n\tif(col == sort_colum) ord = (sort_order == 'ASC')?'DESC':'ASC';\r\n\telse ord = 'ASC';\r\n\tlocation = 'msglist.php?folder={$folder}&pag={$pag}&sortby='+col+'&sortorder='+ord+'&sid={$sid}&tid={$tid}&lid={$lid}';\r\n}\r\n\r\n</script>\r\n";
$smarty->assign( "umErrorMessage", $msg );
$forms = "<input type=hidden name=lid value={$lid}>\r\n<input type=hidden name=sid value=\"{$sid}\">\r\n<input type=hidden name=decision value=delete>\r\n<input type=hidden name=folder value=\"".htmlspecialchars( $folder )."\">\r\n<input type=hidden name=pag value={$pag}>\r\n<input type=hidden name=start_pos value={$start_pos}>\r\n<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;
	$i = 0;
	for ( ;	$i < count( $headers );	++$i	)
	{
		if ( !eregi( "\\SEEN", $headers[$i]['flags'] ) )
		{
			++$newmsgs;
		}
	}
	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 );
	$i = $start_pos;
	for ( ;	$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 || $prior == 5 )
		{
			$img_prior = "&nbsp;<img src=\"./images/prior_low.gif\" width=5 height=11 border=0 alt=\"\">";
		}
		else if ( $prior == 1 || $prior == 2 )
		{
			$img_prior = "&nbsp;<img src=\"./images/prior_high.gif\" width=5 height=11 border=0 alt=\"\">";
		}
		else
		{
			$img_prior = "";
		}
		$msg_img = "&nbsp;<img src=\"{$msg_img}\" width=14 height=14 border=0 alt=\"\">";
		$checkbox = "<input type=\"checkbox\" name=\"msg_{$i}\" value=1>";
		$attachimg = $headers[$i]['attach'] ? "&nbsp;<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}" );
	}
	$i = 1;
	for ( ;	$i <= ceil( $nummsg / $reg_pp );	++$i	)
	{
		if ( $pag == $i )
		{
			$navigation .= "{$i} ";
		}
		else
		{
			$navigation .= "<a href=\"msglist.php?folder={$folder}&pag={$i}&sid={$sid}&tid={$tid}&lid={$lid}\" class=\"navigation\">{$i}</a> ";
		}
	}
	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 ) && $entry != ".." && $entry != "." && substr( $entry, 0, 1 ) != "_" && $entry != $folder && ( $mail_protocol == "imap" || $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
		);
	}
}
$d->close( );
$smarty->assign( "umAvalFolders", $avalfolders );
$smarty->display( "neotech.net/messagelist.htm" );
?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -