📄 readmsg.php
字号:
<?php
require( "./inc/inc.php" );
if ( !isset( $ix ) || !isset( $pag ) )
{
header( "Location: error.php?err=3&sid={$sid}&tid={$tid}&lid={$lid}" );
}
$mysess = $sess['headers'][base64_encode( strtolower( $folder ) )];
$mail_info = $mysess[$ix];
if ( !$UM->mail_connect( ) )
{
header( "Location: error.php?err=1&sid={$sid}&tid={$tid}&lid={$lid}\r\n" );
exit( );
}
if ( !$UM->mail_auth( ) )
{
header( "Location: badlogin.php?sid={$sid}&tid={$tid}&lid={$lid}\r\n" );
exit( );
}
if ( !( $result = $UM->mail_retr_msg( $mail_info, 1 ) ) )
{
header( "Location: msglist.php?err=2&folder=".urlencode( $folder )."&pag={$pag}&sid={$sid}&tid={$tid}&lid={$lid}&refr=true\r\n" );
exit( );
}
if ( $UM->mail_set_flag( $mail_info, "\\SEEN", "+" ) )
{
$sess['headers'][base64_encode( strtolower( $folder ) )][$ix] = $mail_info;
$SS->save( $sess );
}
echo $nocache;
$UM->displayimages = $prefs['display-images'];
$email = $UM->decode( $result );
if ( 0 < $ix )
{
$umHavePrevious = 1;
$umPreviousSubject = $mysess[$ix - 1]['subject'];
$umPreviousLink = ( "readmsg.php?folder=".urlencode( $folder )."&pag={$pag}&ix=".( $ix - 1 ) )."&sid={$sid}&tid={$tid}&lid={$lid}";
$smarty->assign( "umHavePrevious", $umHavePrevious );
$smarty->assign( "umPreviousSubject", $umPreviousSubject );
$smarty->assign( "umPreviousLink", $umPreviousLink );
}
if ( $ix < count( $mysess ) - 1 )
{
$umHaveNext = 1;
$umNextSubject = $mysess[$ix + 1]['subject'];
$umNextLink = ( "readmsg.php?folder=".urlencode( $folder )."&pag={$pag}&ix=".( $ix + 1 ) )."&sid={$sid}&tid={$tid}&lid={$lid}";
$smarty->assign( "umHaveNext", $umHaveNext );
$smarty->assign( "umNextSubject", $umNextSubject );
$smarty->assign( "umNextLink", $umNextLink );
}
$body = $email['body'];
$uagent = $HTTP_SERVER_VARS['HTTP_USER_AGENT'];
$ns4 = ereg( "Mozilla/4", $uagent ) && !ereg( "MSIE", $uagent ) && !ereg( "Gecko", $uagent );
$ns6moz = ereg( "Gecko", $uagent );
$ie4up = ereg( "MSIE (4|5|6)", $uagent );
$other = !$ns4 && !$ns6moz && !$ie4up;
if ( $other )
{
$body = eregi_replace( "<base", "<uebimiau_base_not_alowed", eregi_replace( "<link", "<uebimiau_link_not_alowed", $body ) );
if ( eregi( "<[ ]*body.*background[ ]*=[ ]*[\"']?([A-Za-z0-9._&?=:/{}%+-]+)[\"']?.*>", $body, $regs ) )
{
$backimg = " background=\"".$regs[1]."\"";
}
$smarty->assign( "umBackImg", $backimg );
if ( eregi( "<[ ]*body[A-Z0-9._&?=:/\"' -]*bgcolor=[\"']?([A-Z0-9#]+)[\"']?[A-Z0-9._&?=:/\"' -]*>", $body, $regs ) )
{
$backcolor = " bgcolor=\"".$regs[1]."\"";
}
$smarty->assign( "umBackColor", $backcolor );
$body = eregi_replace( "<body", "<uebimiau_body_not_alowed", $body );
$body = eregi_replace( "a:(link|visited|hover)", ".".uniqid( "" ), $body );
$body = eregi_replace( "(body)[ ]?\\{", ".".uniqid( "" ), $body );
}
else if ( $ie4up || $ns6moz )
{
$sess['currentbody'] = $body;
$SS->save( $sess );
$body = "<iframe src=\"show_body.php?sid={$sid}&tid={$tid}&lid={$lid}&folder=".htmlspecialchars( $folder )."&ix={$ix}\" width=\"100%\" height=\"400\" frameborder=\"0\"></iframe>";
}
else if ( $ns4 )
{
$sess['currentbody'] = $body;
$SS->save( $sess );
$body = "<ilayer width=\"100%\" left=\"0\" top=\"0\">{$body}</ilayer>";
}
$smarty->assign( "umMessageBody", $body );
$ARFrom = $email['from'];
$useremail = $sess['email'];
$name = $ARFrom[0]['name'];
$thismail = $ARFrom[0]['mail'];
$ARFrom[0]['link'] = "newmsg.php?nameto=".urlencode( $name )."&mailto={$thismail}&sid={$sid}&tid={$tid}&lid={$lid}";
$ARFrom[0]['title'] = "{$name} <{$thismail}>";
$smarty->assign( "umFromList", $ARFrom );
$ARTo = $email['to'];
$i = 0;
for ( ; $i < count( $ARTo ); ++$i )
{
$name = $ARTo[$i]['name'];
$thismail = $ARTo[$i]['mail'];
$link = "newmsg.php?nameto=".urlencode( $name )."&mailto={$thismail}&sid={$sid}&tid={$tid}&lid={$lid}";
$ARTo[$i]['link'] = $link;
$ARTo[$i]['title'] = "{$name} <{$thismail}>";
$smarty->assign( "umTOList", $ARTo );
}
$ARCC = $email['cc'];
if ( 0 < count( $ARCC ) )
{
$smarty->assign( "umHaveCC", 1 );
$i = 0;
for ( ; $i < count( $ARCC ); ++$i )
{
$name = $ARCC[$i]['name'];
$thismail = $ARCC[$i]['mail'];
$link = "newmsg.php?nameto=".urlencode( $name )."&mailto={$thismail}&sid={$sid}&tid={$tid}&lid={$lid}";
$ARCC[$i]['link'] = $link;
$ARCC[$i]['title'] = "{$name} <{$thismail}>";
}
$smarty->assign( "umCCList", $ARCC );
}
$smarty->assign( "umPageTitle", $email['subject'] );
$jssource = "\r\n<script language=\"JavaScript\">\r\nfunction deletemsg() { \r\n\tif(confirm('".ereg_replace( "'", "\\'", $confirm_delete )."')) \r\n\t\twith(document.move) { decision.value = 'delete'; submit(); } \r\n}\r\nfunction reply() { document.msg.submit(); }\r\nfunction movemsg() { document.move.submit(); }\r\nfunction newmsg() {\tlocation = 'newmsg.php?folder={$folder}&pag={$pag}&sid={$sid}&tid={$tid}&lid={$lid}'; }\r\nfunction headers() { mywin = window.open('headers.php?folder=".urlencode( $folder )."&ix={$ix}&sid={$sid}&tid={$tid}&lid={$lid}','Headers','width=550, top=100, left=100, height=320,directories=no,toolbar=no,status=no,scrollbars=yes,resizable=yes'); }\r\nfunction catch_addresses() { mywin = window.open('catch.php?folder=".urlencode( $folder )."&ix={$ix}&sid={$sid}&tid={$tid}&lid={$lid}','Catch','width=550, top=100, left=100, height=320,directories=no,toolbar=no,status=no,scrollbars=yes'); }\r\nfunction replyall() { with(document.msg) { rtype.value = 'replyall'; submit(); } }\r\nfunction forward() { with(document.msg) { rtype.value = 'forward'; submit(); } }\r\nfunction newmsg() { location = 'newmsg.php?pag={$pag}&folder=".urlencode( $folder )."&sid={$sid}&tid={$tid}&lid={$lid}'; }\r\nfunction folderlist() { location = 'folders.php?folder=".urlencode( $folder )."&sid={$sid}&tid={$tid}&lid={$lid}'}\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 goback() { location = 'msglist.php?folder=".urlencode( $folder )."&sid={$sid}&tid={$tid}&lid={$lid}&pag={$pag}'; }\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 addresses() { location = 'addressbook.php?sid={$sid}&tid={$tid}&lid={$lid}'; }\r\nfunction prefs() { location = 'preferences.php?sid={$sid}&tid={$tid}&lid={$lid}'; }\r\nfunction printit() { window.open('printmsg.php?sid={$sid}&tid={$tid}&lid={$lid}&folder=".urlencode( $folder )."&ix={$ix}','PrintView','resizable=1,top=10,left=10,width=600,heigth=500,scrollbars=1,status=0'); }\r\n\r\n</script>\r\n";
$umDeleteForm = ( "<input type=hidden name=lid value={$lid}>\r\n<input type=hidden name=sid value=\"{$sid}\">\r\n<input type=hidden name=decision value=move>\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={$ix}>\r\n<input type=hidden name=end_pos value=".( $ix + 1 ) ).">\r\n<input type=hidden name=msg_{$ix} value=X>\r\n<input type=hidden name=back value=true>";
$umReplyForm = "<form name=msg action=\"newmsg.php\" method=POST>\r\n<input type=hidden name=rtype value=\"reply\">\r\n<input type=hidden name=sid value=\"{$sid}\">\r\n<input type=hidden name=lid value=\"{$lid}\">\r\n<input type=hidden name=folder value=\"".htmlspecialchars( $folder )."\">\r\n<input type=hidden name=ix value=\"{$ix}\">\r\n</form>\r\n";
$smarty->assign( "umDeleteForm", $umDeleteForm );
$smarty->assign( "umReplyForm", $umReplyForm );
$smarty->assign( "umJS", $jssource );
$smarty->assign( "umSubject", $email['subject'] );
$smarty->assign( "umDate", $email['date'] );
$anexos = $email['attachments'];
$haveattachs = 0 < count( $anexos ) ? 1 : 0;
$smarty->assign( "umHaveAttachments", $haveattachs );
if ( 0 < count( $anexos ) )
{
$i = 0;
for ( ; $i < count( $anexos ); ++$i )
{
$link1 = "download.php?folder={$folder}&ix={$ix}&mnum={$mnum}&bound=".base64_encode( $anexos[$i]['boundary'] )."&part=".$anexos[$i]['part']."&sid={$sid}&tid={$tid}&lid={$lid}";
$link2 = "{$link1}&down=1";
$anexos[$i]['normlink'] = $link1;
$anexos[$i]['downlink'] = $link2;
$anexos[$i]['size'] = ceil( $anexos[$i]['size'] / 1024 );
$anexos[$i]['type'] = trim( $anexos[$i]['content-type'] );
}
$smarty->assign( "umAttachList", $anexos );
}
$UM->mail_disconnect( );
unset( $UM );
$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/readmsg.htm" );
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -