<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
|
<%
|
//@author hq
|
//2010-10-07
|
%>
|
<%@page import="com.yc.action.mail.EmailConfigUtils"%>
|
<%@page import="com.yc.action.mail.entity.MailInfo"%>
|
<%@page import="com.yc.action.mail.service.MailInfoIfc"%>
|
<%@page import="com.yc.factory.FactoryBean"%>
|
<%@ page import="com.yc.utils.MapSet"%>
|
<%@page import="com.yc.sdk.shopping.util.SettingKey"%>
|
<%
|
//得到URL
|
String URL =SettingKey.getHostUrl(request);
|
|
String messageId = request.getParameter("messageId");
|
if(messageId==null)return;
|
String msgfrom = request.getParameter("msgfrom");
|
String isNew = request.getParameter("isNew");
|
MailInfo mailInfo = null;
|
if(messageId!=null&&!"".equals(messageId.trim())){
|
MailInfoIfc infoIfc = (MailInfoIfc)FactoryBean.getBean("MailInfoImpl");
|
mailInfo = infoIfc.getMailInfo(messageId,(String)session.getAttribute("@usercode"));
|
if(mailInfo==null)return;
|
}
|
|
//获取邮件地址历史
|
List arraylist_email=(List)request.getAttribute("arraylist_email");
|
if (arraylist_email == null)
|
arraylist_email = Collections.EMPTY_LIST;
|
Map colMap;
|
for (int i = 0; i < arraylist_email.size(); i++) {
|
colMap = (Map) arraylist_email.get(i);
|
String msgto=MapSet.ShowMap(colMap,"msgto");
|
System.out.println("msgto:"+msgto);
|
}
|
%>
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tran sitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<%@page import="java.net.URLDecoder"%>
|
<html>
|
<head>
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<title>邮件发送</title>
|
<link href="<%=URL%>/mail/css/cont.css" rel="stylesheet" type="text/css"></link>
|
<script type="text/javascript" src="<%=URL%>/mail/ckeditor/ckeditor.js"></script>
|
<script type="text/javascript" src="<%=URL%>/js/jquery.js"></script>
|
<script src="<%=URL%>/mail/js/dialog.js"></script>
|
<link href="<%=URL%>/mail/images/blue/css.css" rel="stylesheet" type="text/css" id="showdialogcss" />
|
|
<script type="text/javascript" src="<%=URL%>/js/jquery-easyui-1.2.5/jquery-1.7.1.min.js"></script>
|
<script type="text/javascript" src="<%=URL%>/js/jquery-easyui-1.2.5/jquery.easyui.min.js"></script>
|
|
<style type="text/css">
|
input.in {
|
width: 655px;border: 1px solid #cccccc;height: 18px;float: left;
|
}.mhead{float: left;width:760px;}
|
.mhead ul{display: block;float: left;}
|
.dis_lab{width: 80px;margin:0px 0px 0px 5px;padding:0px;}
|
.values{width: 670px;margin: 0px;padding:0px;}
|
.dis_lab li,.values li{list-style: none;height: 30px;line-height: 30px;vertical-align: middle;}
|
.bcc,.cc{display: none;}
|
.addBcc{margin-left: 35px;}
|
.addCc{margin-left:10px;}
|
.selectContact{margin-left: 50px;}
|
.selectCc{margin-left: 20px;display: none;}
|
.attas{line-height: 30px;height: auto;}
|
.atta{display:block;float: left;margin-right:35px;}
|
.atta font{margin-left:10px;margin-right:10px;}
|
.atta a{margin-left:5px;margin-right:5px;}
|
<%if(mailInfo!=null&&!"".equals(mailInfo.getMsgbcc())){ %>
|
.bcc{display:block;}
|
<%} %>
|
<%if(mailInfo!=null&&!"".equals(mailInfo.getMsgcc())){ %>
|
.cc{display:block;}
|
<%} %>
|
|
|
#contaner{margin:0px;margin-left:10px;padding-left:0px; width: 790px;}
|
#m_hDetail{background-color:#F4F9FB;margin-top:0px;padding-top:0px;width: 100%;}
|
#m_hDetail span{display: block;margin-top:5px;}
|
</style>
|
|
|
|
<script type="text/javascript">
|
var isNewMail = true;//判断是否新邮件
|
$(function(){
|
$('#diagx').ShowDialog({
|
Width:"310",
|
Height:"530",
|
Title:"添加联系人",
|
skin:"blue",
|
ContentFlag:"0",
|
FrameURL:"selectContact.jsp",
|
//Contents:'ddddddddddddddddddddddddddddddd',
|
IsDrag:"0",
|
IsAutoCenter:"0"
|
});
|
});
|
window.onunload=function(){
|
var isNew = "<%=isNew %>";
|
if(isNew=="true"&&isNewMail==true){
|
if(confirm("是否保存草稿?")){
|
saveMail();
|
}else{
|
$.post("/delMail.do",{"messageId":$("#messageId").val()},function(data){
|
if(data=="error"){
|
alert("删除出现异常!");
|
}
|
});
|
}
|
}
|
}
|
var messageId="<%=messageId==null?"":messageId %>";
|
//添加抄送密送-----
|
function addBcc(){
|
if($(".bcc").css("display")=="none"){
|
$(".bcc").css("display","block");
|
$("#selectBcc").css("display","inline");
|
$(".addBcc a").text("删除抄送");
|
}else{
|
$(".bcc,#selectBcc").css("display","none");
|
$("#mailBcc").val("");
|
$(".addBcc a").text("添加抄送");
|
}
|
}
|
function addCc(){
|
if($(".cc").css("display")=="none"){selectCc
|
$(".cc").css("display","block");
|
$("#selectCc").css("display","inline");
|
$(".addCc a").text("删除密送");
|
}else{
|
$(".cc,#selectCc").css("display","none").val("");
|
$("#mailCc").val("");
|
$(".addCc a").text("添加密送");
|
}
|
}
|
//保存邮件到草稿
|
function saveMail(){
|
if($.trim($("#mailSubject").val())==""){
|
alert("邮件主题不允许为空!");return;
|
}
|
$.post("/save2draft.do",{
|
mailBcc:$("#mailBcc").val(),
|
mailCc:$("#mailCc").val(),
|
mailTo:$("#mailTo").val(),
|
mailSubject:$("#mailSubject").val(),
|
mailText:remark_ck.getData(),
|
mailId:$("#mailId").val(),
|
messageId:$("#messageId").val()
|
},function(data){
|
if(data.code=='error'){
|
alert(data.info);
|
}else if(data.code=='success'){
|
isNewMail=false;//标识不是新邮件
|
alert("保存成功!");
|
location.href="xiexin.jsp?messageId="+data.mail.messageId;
|
}
|
},"json");
|
}
|
//发送
|
function submits(){
|
$("#mailText").val(remark_ck.getData());
|
var mailTo=$("#mailTo").val();
|
var mailBcc=$("#mailBcc").val();
|
var mailCc=$("#mailCc").val();
|
if($.trim(mailTo)==""){
|
alert("收件人地址不允许为空!");
|
return;
|
}if(!validateeEmails(mailTo)){
|
alert("邮件地址格式不正确,多收件人时用分号隔开!");
|
return;
|
}
|
|
if($.trim(mailBcc)!=""){
|
if(!validateeEmails(mailBcc)){
|
alert("抄送地址格式不正确,多人时用分号隔开!");
|
return;
|
}
|
}
|
if($.trim(mailCc)!=""){
|
if(!validateeEmails(mailCc)){
|
alert("密送地址格式不正确,多人时用分号隔开!");
|
return;
|
}
|
}
|
isNewMail=false;//标识不是新邮件
|
|
if(confirm("开始发送邮件?"))
|
{
|
document.getElementById("mailForm").submit();
|
}
|
}
|
//上传附件
|
function uploadAtta(){
|
|
var msgId=$("#messageId").val();
|
if($.trim(msgId)==""){
|
alert("邮件需要存草稿后才能添加附件!");return;
|
}
|
var obj = window
|
.showModalDialog("attaupload.jsp?messageId="+msgId,"",
|
"dialogWidth=360px;dialogHeight=330px;resizable=no;dialogLeft:330px;dialogTop:170px;");
|
if(obj==1){
|
getAttas();
|
}
|
}
|
//onload加载时获得附件信息
|
function getAttas(){
|
var msgId = $.trim($("#messageId").val());
|
if(msgId!=""){
|
$.post("/getMailAttas.do",{'messageId':msgId},function(json){
|
var html="";
|
var temp=null;
|
var obj=null;
|
for(var i=0;i<json.length;i++){
|
obj=json[i];
|
temp=parseInt(obj.filesize);
|
if((temp/1024)>1024){
|
temp=(temp/1024/1024).toFixed(1)+"M";
|
}else{
|
temp=(temp/1024).toFixed(1)+"K";
|
}
|
html+="<span id=\"atta_"+obj.id+"\" class=\"atta\">"+obj.filename+"<font class=\"fsize\">"+temp+"</font> <a href=\"/mailAtta.do?attachmentid="+obj.id+"\">下载</a>|<a href=\"javascript:delAtta('"+obj.id+"');\">删除</a></span>";
|
}
|
$(".attas").html(html);
|
},"json");
|
}
|
}
|
function delAtta(attaid,doc){
|
$.post("/delMailAtta.do",{'attachmentid':attaid},function(json){
|
if(json.code=="success"){
|
$("#atta_"+attaid).remove();
|
}else if(json.code=="error"){
|
alert(json.info);
|
}
|
},"json");
|
}
|
window.onload=function(){
|
//alert("2");
|
getAttas();
|
showMailAddress();
|
}
|
function validateEmail(field) {
|
var regex=/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i;
|
return (regex.test(field)) ? true : false;
|
}
|
|
function validateeEmails(value) {
|
var result = value.split(";");
|
for(var i = 0;i < result.length;i++)
|
if(!validateEmail(result[i]))
|
return false;
|
return true;
|
}
|
//选择联系人---------------------------
|
var selectType="";
|
function showSelectContact(type){
|
selectType=type;
|
$('#diagx').click();
|
}
|
function selectContactClose(){
|
$("#diagclose").click();
|
}
|
function callBackSelect(contacts){
|
var value = $("#mailTo").val();
|
var temp ="";
|
for(var i=0;i<contacts.length;i++){
|
if(value.indexOf(contacts[i].email)!=-1)continue;
|
if(temp.length>1)temp+=";";
|
temp+='"'+contacts[i].text.replaceAll('"')+'" <'+contacts[i].email+'>';
|
}
|
if(value.length>1&&value.substring(value.length-1)!=";"&&temp.length>1){
|
value+=";";
|
}
|
value+=temp;
|
if(selectType=="cc"){
|
$("#mailCc").val(value);
|
}else if(selectType=="bcc"){
|
$("#mailBcc").val(value);
|
}else{
|
$("#mailTo").val(value);
|
}
|
}
|
//为String对象添加replaceAll
|
String.prototype.replaceAll = stringReplaceAll;
|
function stringReplaceAll(AFindText,ARepText){
|
raRegExp = new RegExp(AFindText,"g");
|
return this.replace(raRegExp,ARepText)
|
}
|
|
//============收件人地址关联功能=================
|
function showMailAddress()
|
{
|
var nowid;
|
var totalid;
|
var can1press = false;
|
var emailafter;
|
var emailbefor;
|
|
alert("1");
|
$("#mailTo").focus(function(){ //文本框获得焦点,插入Email提示层
|
$("#myemail").remove();
|
$(this).after("<div id='myemail' style='width:170px; height:auto; background:#fff; color:#6B6B6B; position:absolute; left:"+$(this).get(0).offsetLeft+"px; top:"+($(this).get(0).offsetTop+$(this).height()+2)+"px; border:1px solid #ccc;z-index:5px; '></div>");
|
if($("#myemail").html()){
|
$("#myemail").css("display","block");
|
$(".newemail").css("width",$("#myemail").width());
|
can1press = true;
|
} else {
|
$("#myemail").css("display","none");
|
can1press = false;
|
}
|
}).keyup(function(){ //文本框输入文字时,显示Email提示层和常用Email
|
var press = $("#mailTo").val();
|
if (press!="" || press!=null){
|
var emailtxt = "";
|
var emailvar = new Array("@163.com","@126.com","@yahoo.com","@qq.com","@sina.com","@gmail.com","@hotmail.com","@foxmail.com");
|
totalid = emailvar.length;
|
var emailmy = "<div class='newemail' style='width:170px; color:#6B6B6B; overflow:hidden;'><font color='#D33022'>" + press + "</font></div>";
|
if(!(isEmail(press))){
|
for(var i=0; i<emailvar.length; i++) {
|
//emailtxt = emailtxt + "<div class='newemail' style='width:170px; color:#6B6B6B; overflow:hidden;'><font color='#D33022'>" + press + "</font>" + emailvar[i] + "</div>"
|
// alert(press+"|"+emailvar[i]+"|"+emailvar[i].indexOf(press));
|
if(emailvar[i].indexOf(press)>-1)
|
{
|
emailtxt = emailtxt + "<div class='newemail' style='width:170px; color:#6B6B6B; overflow:hidden;'><font color='#D33022'>" + press + "</font>" + emailvar[i] + "</div>"
|
}
|
}
|
} else {
|
emailbefor = press.split("@")[0];
|
emailafter = "@" + press.split("@")[1];
|
for(var i=0; i<emailvar.length; i++) {
|
var theemail = emailvar[i];
|
if(theemail.indexOf(emailafter) == 0)
|
{
|
emailtxt = emailtxt + "<div class='newemail' style='width:170px; color:#6B6B6B; overflow:hidden;'><font color='#D33022'>" + emailbefor + "</font>" + emailvar[i] + "</div>"
|
}
|
}
|
}
|
$("#myemail").html(emailmy+emailtxt);
|
if($("#myemail").html()){
|
$("#myemail").css("display","block");
|
$(".newemail").css("width",$("#myemail").width());
|
can1press = true;
|
} else {
|
$("#myemail").css("display","none");
|
can1press = false;
|
}
|
beforepress = press;
|
}
|
if (press=="" || press==null){
|
$("#myemail").html("");
|
$("#myemail").css("display","none");
|
}
|
})
|
$(document).click(function(){ //文本框失焦时删除层
|
if(can1press){
|
$("#myemail").remove();
|
can1press = false;
|
if($("#mailTo").focus()){
|
can1press = false;
|
}
|
}
|
})
|
$(".newemail").live("mouseover",function(){ //鼠标经过提示Email时,高亮该条Email
|
$(".newemail").css("background","#FFF");
|
$(this).css("background","#CACACA");
|
$(this).focus();
|
nowid = $(this).index();
|
}).live("click",function(){ //鼠标点击Email时,文本框内容替换成该条Email,并删除提示层
|
var newhtml = $(this).html();
|
newhtml = newhtml.replace(/<.*?>/g,"");
|
$("#mailTo").val(newhtml);
|
$("#myemail").remove();
|
})
|
$(document).bind("keydown",function(e)
|
{
|
if(can1press){
|
switch(e.which)
|
{
|
case 38:
|
if (nowid > 0){
|
$(".newemail").css("background","#FFF");
|
$(".newemail").eq(nowid).prev().css("background","#CACACA").focus();
|
nowid = nowid-1;
|
}
|
if(!nowid){
|
nowid = 0;
|
$(".newemail").css("background","#FFF");
|
$(".newemail").eq(nowid).css("background","#CACACA");
|
$(".newemail").eq(nowid).focus();
|
}
|
break;
|
|
case 40:
|
if (nowid < totalid){
|
$(".newemail").css("background","#FFF");
|
$(".newemail").eq(nowid).next().css("background","#CACACA").focus();
|
nowid = nowid+1;
|
}
|
if(!nowid){
|
nowid = 0;
|
$(".newemail").css("background","#FFF");
|
$(".newemail").eq(nowid).css("background","#CACACA");
|
$(".newemail").eq(nowid).focus();
|
}
|
break;
|
|
case 13:
|
var newhtml = $(".newemail").eq(nowid).html();
|
newhtml = newhtml.replace(/<.*?>/g,"");
|
$("#mailTo").val(newhtml);
|
$("#myemail").remove();
|
}
|
}
|
})
|
}
|
|
//检查email邮箱
|
function isEmail(str){
|
if(str.indexOf("@") > 0)
|
{
|
return true;
|
} else {
|
return false;
|
}
|
}
|
//=======================//
|
|
</script>
|
</head>
|
<body class="right_body">
|
<form action="/sendMail.do" method="post" id="mailForm">
|
|
<div class="mhead">
|
<ul class="dis_lab">
|
<li> </li>
|
<li>发件人</li>
|
<li>邮件标题</li>
|
<li>收件人</li>
|
<li class="bcc">抄送</li>
|
<li class="cc">密送</li>
|
<li><a href="javascript:uploadAtta();">添加附件</a></li>
|
</ul>
|
<ul class="values">
|
<li><input type="button" onclick="submits();" value="发 送" id="send"/>
|
<input type="button" value="保存草稿" id="save2draft" onclick="saveMail();"></input></li>
|
<li><%=session.getAttribute("@usercode").toString().toLowerCase()+"@"+EmailConfigUtils.getMailConfig("mail.domain") %>
|
<span class="addBcc"><a href="javascript:addBcc();"><% if(mailInfo!=null&&mailInfo.getMsgbcc()!=null&&!"".equals(mailInfo.getMsgbcc())){ %>删除抄送<%}else{ %>添加抄送<%} %></a></span>
|
<span class="addCc"><a href="javascript:addCc();"><% if(mailInfo!=null&&mailInfo.getMsgcc()!=null&&!"".equals(mailInfo.getMsgcc())){ %>删除密送<%}else{ %>添加密送<%} %></a></span>
|
<span class="selectContact"><a href="javascript:showSelectContact();">选择收件人地址</a></span>
|
<span class="selectCc" id="selectBcc"><a href="javascript:showSelectContact('bcc');">选择抄送地址</a></span>
|
<span class="selectCc" id="selectCc"><a href="javascript:showSelectContact('cc');">选择密送地址</a></span>
|
</li>
|
<%if(mailInfo!=null){
|
%>
|
<input type="hidden" id="mailId" name="mailId" value="<%=mailInfo.getMailId() %>"></input>
|
<input type="hidden" id="messageId" name="messageId" value="<%=mailInfo.getMessageid() %>"></input>
|
<li><input class="in" type="text" id="mailSubject" name="mailSubject" value="<%=mailInfo.getSubject() %>"/></li>
|
<li><input class="in" type="text" name="mailTo" id="mailTo" value="<%=mailInfo.getMsgto()==null?"":mailInfo.getMsgto().replace("\"",""") %>" /></li>
|
<li class="bcc"><input class="in" type="text" id="mailBcc" name="mailBcc" value="<%=mailInfo.getMsgbcc()==null?"":mailInfo.getMsgbcc().replace("\"",""") %>"/></li>
|
<li class="cc"><input class="in" type="text" id="mailCc" name="mailCc" value="<%=mailInfo.getMsgcc()==null?"":mailInfo.getMsgcc().replace("\"",""") %>"/></li>
|
<%}else{%>
|
<input type="hidden" id="mailId" name="mailId"></input>
|
<input type="hidden" id="messageId" name="messageId" />
|
<li><input class="in" type="text" id="mailSubject" name="mailSubject"/></li>
|
<li><input class="in" type="text" name="mailTo" id="mailTo" value="<%=msgfrom==null?"":URLDecoder.decode(msgfrom,"UTF-8") %>"/></li>
|
<li class="bcc"><input class="in" type="text" id="mailBcc" name="mailBcc"/></li>
|
<li class="cc"><input class="in" type="text" id="mailCc" name="mailCc"/></li>
|
<%} %>
|
<li class="attas">
|
</li>
|
</ul>
|
</div>
|
|
<table width="100%" height="100%" border="0">
|
<tr>
|
<td colspan="2">
|
<div id="mText"></div>
|
|
<textarea cols="500" id="content" name="content" rows="10" >
|
|
<% if(mailInfo!=null){ %>
|
<%=mailInfo.getBodytext().replaceAll("cid:","/mailResource.do?messageid="+mailInfo.getMessageid()+"&cid=") %>
|
<%} %>
|
</textarea>
|
<script type="text/javascript">
|
var remark_ck=CKEDITOR.replace( 'content',
|
{
|
skin : 'kama',
|
language : 'zh-cn',
|
height: '250px',
|
width:'90%'
|
});
|
</script>
|
|
<input type="hidden" id="mailText" name="mailText"></input>
|
</td>
|
</tr>
|
</table>
|
<script type="text/javascript">
|
|
//var remark_ck=CKEDITOR.appendTo("mText");
|
//remark_ck.setData('aaammmmmmmmmmmmmmmm');
|
//remark_ck.text="mmmmmmmmmmmmmnnbbbb";
|
<% if(mailInfo!=null){ %>
|
//remark_ck.setData('<%=mailInfo.getBodytext().replaceAll("\r|\n","\\\\r\\\\n").replaceAll("cid:","/mailResource.do?messageid="+mailInfo.getMessageid()+"&cid=") %>');
|
<%} %>
|
|
</script>
|
|
<div id="diagx" style="display: none;position: absolute;z-index:999;"></div>
|
</form>
|
</body>
|
</html>
|