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

📄 newmsg.php

📁 webmail系统 php + mysql
💻 PHP
字号:
<?
include("session_management.php");
echo($nocache);
if($tipo == "send") {
	$tcontent = read_file($newmsg_result_template);
	include("class_smtp.php");

	$md = new mime_decode();
	
	$ARTo = $md->get_names(stripslashes($to));
	$ARCc = $md->get_names(stripslashes($cc));
	$ARBcc = $md->get_names(stripslashes($bcc));

	if((count($ARTo)+count($ARCc)+count($ARBcc)) > 0) {

		$mail = new phpmailer;

		// for password authenticated servers

		if($use_password_for_smtp)
			$mail->UseAuthLogin($sess["user"],$sess["pass"]);
		// if using the advanced editor
		if($is_html == "true")  {
			$mail->IsHTML(1);
			if($footer != "") $body .= nl2br($footer);
		} elseif ($footer != "") $body .= $footer;

		$mail->From = $sess["email"];
		$mail->FromName = $md->mime_encode_headers($real_name);
		$mail->AddReplyTo($reply_to, $md->mime_encode_headers($real_name));
		$mail->Host = $smtp_server;
		$mail->WordWrap = 76;

		if(count($ARTo) != 0) {
			for($i=0;$i<count($ARTo);$i++) {
				$name = $ARTo[$i]["name"];
				$email = $ARTo[$i]["mail"];
				if($name != $email)
					$mail->AddAddress($email,$md->mime_encode_headers($name));
				else
					$mail->AddAddress($email);
			}
		}

		if(count($ARCc) != 0) {
			for($i=0;$i<count($ARCc);$i++) {
				$name = $ARCc[$i]["name"];
				$email = $ARCc[$i]["mail"];
				if($name != $email)
					$mail->AddCC($email,$md->mime_encode_headers($name));
				else
					$mail->AddCC($email);
			}
		}

		if(count($ARBcc) != 0) {
			for($i=0;$i<count($ARBcc);$i++) {
				$name = $ARBcc[$i]["name"];
				$email = $ARBcc[$i]["mail"];
				if($name != $email)
					$mail->AddBCC($email,$md->mime_encode_headers($name));
				else
					$mail->AddBCC($email);
			}
		}

		if(is_array($attachs = $sess["attachments"])) {
			for($i=0;$i<count($attachs);$i++) {
				if(file_exists($attachs[$i]["localname"])) {
					$mail->AddAttachment($attachs[$i]["localname"], $attachs[$i]["name"], $attachs[$i]["type"]);
				}
			}
		}

		$mail->Subject = $md->mime_encode_headers(stripslashes($subject));
		$mail->Body = stripslashes($body);

		$sucstartpos = strpos($tcontent,"<!--%UM_SUCESS_BEGIN%-->");
		$sucendpos = strpos($tcontent,"<!--%UM_SUCESS_END%-->")+22;

		$failstartpos = strpos($tcontent,"<!--%UM_FAIL_BEGIN%-->");
		$failendpos = strpos($tcontent,"<!--%UM_FAIL_END%-->")+20;


		if(($resultmail = $mail->Send()) === false) {

			$err = $mail->ErrorAlerts[count($mail->ErrorAlerts)-1];
			$tcontent = substr($tcontent,0,$sucstartpos).substr($tcontent,$failstartpos+22,$failendpos-$failstartpos-42).substr($tcontent,$failendpos);
			$tcontent = eregi_replace("<!--%UM_ERR%-->",$err,$tcontent);

		} else {
			if(is_array($attachs = $sess["attachments"])) {
				for($i=0;$i<count($attachs);$i++) {
					if(file_exists($attachs[$i]["localname"])) {
						@unlink($attachs[$i]["localname"]);
					}
				}
				
				unset($sess["attachments"]);
				reset($sess);
				save_session($sess);
			}
			$tcontent = substr($tcontent,0,$sucstartpos).substr($tcontent,$sucstartpos+24,$sucendpos-$sucstartpos-46).substr($tcontent,$failendpos);

			if($save_to_sent) {
				$struc = $md->fetch_structure($resultmail);
				$header = $struc["header"];
				$mail_info = $md->get_mail_info($header);
				$flocalname = $userfolder."sent/".md5($mail_info["subject"].$mail_info["message-id"].$mail_info["date"]).".eml";
				$myfile = fopen($flocalname,"wb+");
				fwrite($myfile,$resultmail);
				fclose($myfile);
			}

		}

	} else die("<script language=\"javascript\">location = 'error.php?msg=".urlencode($error_no_recipients)."&sid=$sid&lid=$lid';</script>");

	$jssource = "
	<script language=\"javascript\">
	function newmsg() { location = 'newmsg.php?pag=$pag&folder=".urlencode($folder)."&sid=$sid&lid=$lid'; }
	function folderlist() { location = 'folders.php?folder=".urlencode($folder)."&sid=$sid&lid=$lid'}
	function goend() { location = 'logout.php?sid=$sid&lid=$lid'; }
	function goinbox() { location = 'msglist.php?folder=inbox&sid=$sid&lid=$lid'; }
	function emptytrash() {	location = 'folders.php?empty=trash&folder=".urlencode($folder)."&goback=true&sid=$sid&lid=$lid';}
	function search() {	location = 'search.php?folder=".urlencode($folder)."&sid=$sid&lid=$lid';}
	function addresses() { location = 'addressbook.php?sid=$sid&lid=$lid'; }
	function prefs() { location = 'preferences.php?sid=$sid&lid=$lid'; }
	</script>
	";

	$tcontent = eregi_replace("<!--%UM_SID%-->",$sid,$tcontent);
	$tcontent = eregi_replace("<!--%UM_LID%-->",$lid,$tcontent);
	$tcontent = eregi_replace("<!--%UM_JS%-->",$jssource,$tcontent);
	echo($tcontent);

}else {
	$uagent = $HTTP_SERVER_VARS["HTTP_USER_AGENT"];
	$uagent = explode("; ",$uagent);
	$uagent = explode(" ",$uagent[1]);
	$bname = strtoupper($uagent[0]);
	$bvers = $uagent[1];

	$show_advanced = ($bname == "MSIE" && intval($bvers) >= 5)?1:0;
	$js_advanced = ($show_advanced)?"true":"false";

	if($show_advanced) $signature = nl2br($signature);

	$tcontent = read_file($newmsg_template);
	$tcontent = eregi_replace("<!--%UM_IS_HTML%-->",$js_advanced,$tcontent);

	$jssource = "
	<script language=\"javascript\">
	bIs_html = $js_advanced;
	function addsig() {
		with(document.composeForm) {
			if(cksig.checked) {
				if(bIs_html) {
					cur = GetHtml()
					SetHtml(cur+'<br><br>--<br>'+sig.value);
				} else
					body.value += '\\r\\n\\r\\n--\\r\\n'+sig.value;
			}
		}
	}

	function upwin(rem) { 
		mywin = 'upload.php';
		if (rem != null) mywin += '?rem='+rem+'&sid=$sid';
		else mywin += '?sid=$sid&lid=$lid';
		window.open(mywin,'Upload','width=300,height=50,scrollbars=0,menubar=0,status=0'); 
	}

	function doupload() {
		document.composeForm.tipo.value = 'edit';
		document.composeForm.submit();
	}

	function enviar() {
		error_msg = new Array();
		frm = document.composeForm;
		check_mail(frm.to.value);
		check_mail(frm.cc.value);
		check_mail(frm.bcc.value);
		errors = error_msg.length;

		if(frm.to.value == '' && frm.cc.value == '' && frm.bcc.value == '')
			alert('$error_no_recipients');

		else if (errors > 0) {

			if (errors == 1) errmsg = '$error_compose_invalid_mail1_s\\r\\r';
			else  errmsg = '$error_compose_invalid_mail1_p\\r\\r';

			for(i=0;i<errors;i++)
				errmsg += error_msg[i]+'\\r';

			if (errors == 1) errmsg += '\\r$error_compose_invalid_mail2_s';
			else  errmsg += '\\r$error_compose_invalid_mail2_p';

			alert(errmsg)
	
		} else {
			if(bIs_html) frm.body.value = GetHtml();
			frm.tipo.value = 'send';
			frm.submit();
		}
	}
	
	function newmsg() { location = 'newmsg.php?pag=$pag&folder=".urlencode($folder)."&sid=$sid&lid=$lid'; }
	function folderlist() { location = 'folders.php?folder=".urlencode($folder)."&sid=$sid&lid=$lid'}
	function goend() { location = 'logout.php?sid=$sid&lid=$lid'; }
	function goinbox() { location = 'msglist.php?folder=inbox&sid=$sid&lid=$lid'; }
	function emptytrash() {	location = 'folders.php?empty=trash&folder=".urlencode($folder)."&goback=true&sid=$sid&lid=$lid';}
	function search() {	location = 'search.php?folder=".urlencode($folder)."&sid=$sid&lid=$lid';}
	function addrpopup() {	mywin = window.open('quick_address.php?sid=$sid&lid=$lid','AddressBook','width=480,height=220,top=200,left=200'); }
	function addresses() { location = 'addressbook.php?sid=$sid&lid=$lid'; }
	function prefs() { location = 'preferences.php?sid=$sid&lid=$lid'; }
	function AddAddress(strType,strAddress) {
		obj = eval('document.composeForm.'+strType);
		if(obj.value == '') obj.value = strAddress
		else  obj.value = obj.value + ', ' + strAddress
	}
	
	function check_mail(strmail) {
		if(strmail == '') return;
		chartosplit = ',;';
		protectchar = '\"';
		temp = '';
		armail = new Array();
		inthechar = false; 
		lt = '<';
		gt = '>'; 
		isclosed = true;
	
		for(i=0;i<strmail.length;i++) {
			thischar = strmail.charAt(i);
			if(thischar == lt && isclosed) isclosed = false;
			if(thischar == gt && !isclosed) isclosed = true;
			if(thischar == protectchar) inthechar = (inthechar)?0:1;
			if(chartosplit.indexOf(thischar) != -1 && !inthechar && isclosed) {
				armail[armail.length] = temp; temp = '';
			} else temp += thischar;
		}
	
		armail[armail.length] = temp; 
	
		for(i=0;i<armail.length;i++) {
			thismail = armail[i]; strPat = /(.*)<(.*)>/;
			matchArray = thismail.match(strPat); 
			if (matchArray != null) strEmail = matchArray[2];
			else {
				strPat = /([-a-z0-9_$+.]+@[-a-z0-9_.]+[-a-z0-9_]+)((.*))/; matchArray = thismail.match(strPat); 
				if (matchArray != null) strEmail = matchArray[1];
				else strEmail = thismail;
			}
			if(strEmail.charAt(0) == '\"' && strEmail.charAt(strEmail.length-1) == '\"') strEmail = strEmail.substring(1,strEmail.length-1)
			if(strEmail.charAt(0) == '<' && strEmail.charAt(strEmail.length-1) == '>') strEmail = strEmail.substring(1,strEmail.length-1)
	
			strPat = /([-a-z0-9_$+.]+@[-a-z0-9_.]+[-a-z0-9_]+)((.*))/;
			matchArray = strEmail.match(strPat); 
			if(matchArray == null)
				error_msg[error_msg.length] = strEmail;
		}
	}
	
	
	</script>
	";
	
	$tcontent = eregi_replace("<!--%UM_JS%-->",$jssource,$tcontent);
	$tcontent = eregi_replace("<!--%UM_SID%-->",$sid,$tcontent);
	$tcontent = eregi_replace("<!--%UM_LID%-->",$lid,$tcontent);
	$body = stripslashes($body);
	switch($rtype) {
	case "reply":
		$to = $toreply;
		if($show_advanced) $body = nl2br($body);
		if($add_sig) 
			if($show_advanced) $body = "<br><br>--<br>$signature<br><br>$body";
			else $body = "\r\n\r\n--\r\n$signature\r\n\r\n$body";
		break;
	case "replyall":
		$to = $toallreply;
		$cc = $ccaalreply;
		if($show_advanced) $body = nl2br($body);
		if($add_sig) 
			if($show_advanced) $body = "<br><br>--<br>$signature<br><br>$body";
			else $body = "\r\n\r\n--\r\n$signature\r\n\r\n$body";
		break;
	case "forward":
		$sessiontype = ($folder == "inbox")?"headers":"folderheaders";
		$mail_info = $sess[$sessiontype][$ix];
		$localname = $mail_info["localname"];
		if(file_exists($localname)) {

			if(!is_array($sess["attachments"])) $ind = 0;
			else $ind = count($sess["attachments"]);

			$filename = $userfolder."_attachments/".basename($localname);
		    copy($localname, $filename);

			$sess["attachments"][$ind]["localname"] = $filename;
			$sess["attachments"][$ind]["name"] = substr(ereg_replace("[^A-Za-z0-9]","_",$mail_info["subject"]),0,20).".eml";
			$sess["attachments"][$ind]["type"] = "message/rfc822";
			$sess["attachments"][$ind]["size"] = filesize($filename);
			save_session($sess);

		}
		if($show_advanced) $body = nl2br($body);
		if($add_sig) 
			if($show_advanced) $body = "<br><br>--<br>$signature<br><br>$body";
			else $body = "\r\n\r\n--\r\n$signature\r\n\r\n$body";
		break;
	default:
		if($add_sig && $body == "") 
			if($show_advanced) $body = "<br><br>--<br>$signature";
			else $body = "\r\n\r\n--\r\n$signature";
		break;
	}

	$nameto = htmlspecialchars($nameto);
	$mailto = htmlspecialchars($mailto);
	
	$strto = (isset($nameto) && eregi("([-a-z0-9_$+.]+@[-a-z0-9_.]+[-a-z0-9_])",$mailto))?
	"<input class=formfield type=text size=35 name=to value=\"".htmlspecialchars(stripslashes($nameto))." <".htmlspecialchars(stripslashes($mailto)).">\">
	":"<input class=formfield type=text size=35 name=to value=\"".htmlspecialchars(stripslashes($to))."\">";
	
	$strcc = "<input class=formfield type=text size=35 name=cc value=\"".htmlspecialchars(stripslashes($cc))."\">";
	$strbcc = "<input class=formfield type=text size=35 name=bcc value=\"".htmlspecialchars(stripslashes($bcc))."\">";
	$strsubject = "<input class=formfield type=text size=35 name=subject value=\"".htmlspecialchars(stripslashes($subject))."\">";
	
	$attbegin = strpos($tcontent,"<!--%UM_ATTACH_BEGIN%-->");
	$attend = strpos($tcontent,"<!--%UM_ATTACH_END%-->")+22;
	
	$noattbegin = strpos($tcontent,"<!--%UM_NO_ATTACH_BEGIN%-->");
	$noattend = strpos($tcontent,"<!--%UM_NO_ATTACH_END%-->")+25;
	
	
	if(is_array($attachs = $sess["attachments"]) && count($sess["attachments"]) != 0) {
		$cleantext = substr($tcontent,$attbegin+24,$attend-$attbegin-46);
	
		$loopbegin = strpos($cleantext,"<!--%UM_AT_LOOP_BEGIN%-->");
		$loopend = strpos($cleantext,"<!--%UM_AT_LOOP_END%-->")+23;
		
		$cleanline = substr($cleantext,$loopbegin+25,$loopend-$loopbegin-48);

		for($i=0;$i<count($attachs);$i++) {
			$thisline = $cleanline;
			$thisline = eregi_replace("<!--%UM_AT_NAME%-->",htmlspecialchars($attachs[$i]["name"]),$thisline);
			$thisline = eregi_replace("<!--%UM_AT_SIZE%-->",ceil($attachs[$i]["size"]/1024)."Kb",$thisline);
			$thisline = eregi_replace("<!--%UM_AT_TYPE%-->",$attachs[$i]["type"],$thisline);
			$thisline = eregi_replace("<!--%UM_AT_DEL%-->","javascript:upwin($i)",$thisline);
			$loopresult .= $thisline;
		}
		
		$result = substr($cleantext,0,$loopbegin).$loopresult.substr($cleantext,$loopend);
		$tcontent = substr($tcontent,0,$attbegin).$result.substr($tcontent,$noattend);
	} else { 
		$cleantext = substr($tcontent,$noattbegin+27,$noattend-$noattbegin-52);
		$tcontent = substr($tcontent,0,$attbegin).$cleantext.substr($tcontent,$noattend);
	}
	if($show_advanced) {
		$editor = read_file($adv_editor_template);
		$txtarea = $editor."\r<input type=hidden name=body>";

	echo("<div id=\"hiddenCompose\" style=\"position: absolute; left: 3; top: -100; visibility: visible; z-index: 3\">	      
		<form name=\"hiddencomposeForm\">
		<textarea name=\"hiddencomposeFormTextArea\">$body</textarea>
		</form>
		</div>");

	} else {
		$txtarea = "<textarea cols=50 rows=15 name=body class=textarea>".htmlspecialchars(stripslashes($body))."</textarea>";
	}
	
	$tcontent = eregi_replace("<!--%UM_SIG%-->",$signature,$tcontent);
	$tcontent = eregi_replace("<!--%UM_TO%-->",$strto,$tcontent);
	$tcontent = eregi_replace("<!--%UM_CC%-->",$strcc,$tcontent);
	$tcontent = eregi_replace("<!--%UM_BCC%-->",$strbcc,$tcontent);
	$tcontent = eregi_replace("<!--%UM_SUBJECT%-->",$strsubject,$tcontent);
	$tcontent = eregi_replace("<!--%UM_TEXT_EDITOR%-->",$txtarea,$tcontent);
	$tcontent = eregi_replace("<!--%UM_CURRENT_FOLDER%-->",htmlspecialchars($folder),$tcontent);

	echo($tcontent);

}

?>

⌨️ 快捷键说明

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