xinyb
2024-06-15 fdd73a906963f31abb59d81c10cc163eab47404a
提交 | 用户 | age
a6a76f 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
F 2 <%
3     //@author hq
4     //2010-10-07
5 %>
6 <%@page import="com.yc.action.mail.EmailConfigUtils"%>
7 <%@page import="com.yc.action.mail.entity.MailInfo"%>
8 <%@page import="com.yc.action.mail.service.MailInfoIfc"%>
9 <%@page import="com.yc.factory.FactoryBean"%>
10 <%@ page import="com.yc.utils.MapSet"%>
11 <%@page import="com.yc.sdk.shopping.util.SettingKey"%>
12 <%
13     //得到URL
14     String URL =SettingKey.getHostUrl(request);
15     String messageId = request.getParameter("messageId");
16     //if(messageId==null)return;
17     String msgfrom = request.getParameter("msgfrom");
18     String isNew = request.getParameter("isNew");
19     MailInfo mailInfo = null;
20     if(messageId!=null&&!"".equals(messageId.trim())){
21         MailInfoIfc infoIfc = (MailInfoIfc)FactoryBean.getBean("MailInfoImpl");
22         mailInfo = infoIfc.getMailInfo(messageId,(String)session.getAttribute("@usercode"));
23         //if(mailInfo==null)return;
24     }
25     
26 %>
27 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tran sitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
28
29 <%@page import="java.net.URLDecoder"%>
30 <html>
31 <head>
32 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
33 <title>邮件发送</title>
34 <link href="<%=URL%>/mail/css/cont.css" rel="stylesheet" type="text/css"></link>
35 <script type="text/javascript" src="<%=URL%>/mail/ckeditor/ckeditor.js"></script>
36 <script type="text/javascript" src="<%=URL%>/js/jquery.js"></script>
37 <script src="<%=URL%>/mail/js/dialog.js"></script>
38 <link href="<%=URL%>/mail/images/blue/css.css" rel="stylesheet" type="text/css" id="showdialogcss" />
39
40 <script type="text/javascript" src="<%=URL%>/js/jquery-easyui-1.2.5/jquery-1.7.1.min.js"></script>
41 <script type="text/javascript" src="<%=URL%>/js/jquery-easyui-1.2.5/jquery.easyui.min.js"></script>
42     
43
44
45
46 <script type="text/javascript">
47 var isNewMail = true;//判断是否新邮件
48 $(function(){
49     $('#diagx').ShowDialog({
50         Width:"310",
51         Height:"530",
52         Title:"添加联系人",
53         skin:"blue",
54         ContentFlag:"0",
55         FrameURL:"selectContact.jsp", 
56         //Contents:'ddddddddddddddddddddddddddddddd',
57         IsDrag:"0",
58         IsAutoCenter:"0"
59         });
60 });
61     window.onunload=function(){
62         var isNew = "<%=isNew %>";
63         if(isNew=="true"&&isNewMail==true){
64             if(confirm("是否保存草稿?")){
65                 saveMail();
66             }else{
67                 $.post("/delMail.do",{"messageId":$("#messageId").val()},function(data){
68                        if(data=="error"){
69                             alert("删除出现异常!");
70                        }
71                   });
72             }
73         }
74     }
75     var messageId="<%=messageId==null?"":messageId %>";
76     //添加抄送密送-----
77     function addBcc(){
78         if($(".bcc").css("display")=="none"){
79             $(".bcc").css("display","block");
80             $("#selectBcc").css("display","inline");
81             $(".addBcc a").text("删除抄送");
82         }else{
83             $(".bcc,#selectBcc").css("display","none");
84             $("#mailBcc").val("");
85             $(".addBcc a").text("添加抄送");
86         }
87     }
88     function addCc(){
89         if($(".cc").css("display")=="none"){selectCc
90             $(".cc").css("display","block");
91             $("#selectCc").css("display","inline");
92             $(".addCc a").text("删除密送");
93         }else{
94             $(".cc,#selectCc").css("display","none").val("");
95             $("#mailCc").val("");
96             $(".addCc a").text("添加密送");
97         }
98     }
99     //保存邮件到草稿
100     function saveMail(){
101         if($.trim($("#mailSubject").val())==""){
102             alert("邮件主题不允许为空!");return;
103         }
104         $.post("/save2draft.do",{
105             mailBcc:$("#mailBcc").val(),
106             mailCc:$("#mailCc").val(),
107             mailTo:$("#mailTo").val(),
108             mailSubject:$("#mailSubject").val(),
109             mailText:remark_ck.getData(),
110             mailId:$("#mailId").val(),
111             messageId:$("#messageId").val()
112             },function(data){
113                 if(data.code=='error'){
114                     alert(data.info);
115                 }else if(data.code=='success'){
116                     isNewMail=false;//标识不是新邮件
117                     alert("保存成功!");
118                     location.href="xiexin.jsp?messageId="+data.mail.messageId;
119                 }
120         },"json");
121     }
122     //发送
123 function submits(){
124     $("#mailText").val(remark_ck.getData());
125     var mailTo=$("#mailTo").val();
126     var mailBcc=$("#mailBcc").val();
127     var mailCc=$("#mailCc").val();
128     if($.trim(mailTo)==""){
129         alert("收件人地址不允许为空!");
130         return;
131     }if(!validateeEmails(mailTo)){
132         alert("邮件地址格式不正确,多收件人时用分号隔开!");
133         return;
134     }
135     
136     if($.trim(mailBcc)!=""){
137         if(!validateeEmails(mailBcc)){
138             alert("抄送地址格式不正确,多人时用分号隔开!");
139             return;
140         }
141     }
142     if($.trim(mailCc)!=""){
143         if(!validateeEmails(mailCc)){
144             alert("密送地址格式不正确,多人时用分号隔开!");
145             return;
146         }
147     }
148     isNewMail=false;//标识不是新邮件
149
150     if(confirm("开始发送邮件?"))
151     {
152         document.getElementById("mailForm").submit();
153     }
154 }
155 //上传附件
156 function uploadAtta(){
157
158     var msgId=$("#messageId").val();
159     if($.trim(msgId)==""){
160         alert("邮件需要存草稿后才能添加附件!");return;
161     }
162     var obj = window
163     .showModalDialog("attaupload.jsp?messageId="+msgId,"",
164         "dialogWidth=360px;dialogHeight=330px;resizable=no;dialogLeft:330px;dialogTop:170px;");
165     if(obj==1){
166         getAttas();
167     }
168 }
169 //onload加载时获得附件信息
170 function getAttas(){
171     var msgId = $.trim($("#messageId").val());
172     if(msgId!=""){
173         $.post("/getMailAttas.do",{'messageId':msgId},function(json){
174             var html="";
175             var temp=null;
176             var obj=null;
177             for(var i=0;i<json.length;i++){
178                 obj=json[i];
179                 temp=parseInt(obj.filesize);
180                 if((temp/1024)>1024){
181                     temp=(temp/1024/1024).toFixed(1)+"M";
182                 }else{
183                     temp=(temp/1024).toFixed(1)+"K";
184                 }
185                 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>";
186            }
187         $(".attas").html(html);
188       },"json");
189     }
190 }
191 function delAtta(attaid,doc){
192     $.post("/delMailAtta.do",{'attachmentid':attaid},function(json){
193         if(json.code=="success"){
194             $("#atta_"+attaid).remove();
195         }else if(json.code=="error"){
196             alert(json.info);
197         }
198     },"json");
199 }
200 window.onload=function(){
201     alert("2");
202     //getAttas();
203     showMailAddress();
204 }
205 function validateEmail(field) {
206     var regex=/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i;
207     return (regex.test(field)) ? true : false;
208 }
209
210 function validateeEmails(value) {
211     var result = value.split(";");
212     for(var i = 0;i < result.length;i++)
213     if(!validateEmail(result[i])) 
214             return false;               
215     return true;
216 }
217 //选择联系人---------------------------
218 var selectType="";
219 function showSelectContact(type){
220     selectType=type;
221     $('#diagx').click();
222 }
223 function selectContactClose(){
224     $("#diagclose").click();
225 }
226 function callBackSelect(contacts){
227     var value = $("#mailTo").val();
228     var temp ="";
229     for(var i=0;i<contacts.length;i++){
230         if(value.indexOf(contacts[i].email)!=-1)continue;
231         if(temp.length>1)temp+=";";
232         temp+='"'+contacts[i].text.replaceAll('"')+'" <'+contacts[i].email+'>';
233     }
234     if(value.length>1&&value.substring(value.length-1)!=";"&&temp.length>1){
235         value+=";";
236     }
237     value+=temp;
238     if(selectType=="cc"){
239         $("#mailCc").val(value);
240     }else if(selectType=="bcc"){
241         $("#mailBcc").val(value);
242     }else{
243         $("#mailTo").val(value);
244     }
245 }
246 //为String对象添加replaceAll
247 String.prototype.replaceAll = stringReplaceAll;
248 function stringReplaceAll(AFindText,ARepText){
249 raRegExp = new RegExp(AFindText,"g");
250 return this.replace(raRegExp,ARepText)
251 }
252
253 //============收件人地址关联功能=================
254 function showMailAddress()
255 {
256     var nowid;
257     var totalid;
258     var can1press = false;
259     var emailafter;
260     var emailbefor;
261
262     alert("1");
263     $("#mailTo").focus(function(){ //文本框获得焦点,插入Email提示层
264         $("#myemail").remove();
265     $(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>");
266         if($("#myemail").html()){
267              $("#myemail").css("display","block");
268     $(".newemail").css("width",$("#myemail").width());
269         can1press = true;
270         } else {
271              $("#myemail").css("display","none");
272         can1press = false;
273         }        
274     }).keyup(function(){ //文本框输入文字时,显示Email提示层和常用Email
275         var press = $("#mailTo").val();
276         if (press!="" || press!=null){
277         var emailtxt = "";            
278         var emailvar = new Array("@163.com","@126.com","@yahoo.com","@qq.com","@sina.com","@gmail.com","@hotmail.com","@foxmail.com");
279         totalid = emailvar.length;
280             var emailmy = "<div class='newemail' style='width:170px; color:#6B6B6B; overflow:hidden;'><font color='#D33022'>" + press + "</font></div>";
281             if(!(isEmail(press))){
282                 for(var i=0; i<emailvar.length; i++) {
283                     //emailtxt = emailtxt + "<div class='newemail' style='width:170px; color:#6B6B6B; overflow:hidden;'><font color='#D33022'>" + press + "</font>" + emailvar[i] + "</div>"
284                    // alert(press+"|"+emailvar[i]+"|"+emailvar[i].indexOf(press));
285                     if(emailvar[i].indexOf(press)>-1)
286                     {
287                         emailtxt = emailtxt + "<div class='newemail' style='width:170px; color:#6B6B6B; overflow:hidden;'><font color='#D33022'>" + press + "</font>" + emailvar[i] + "</div>"
288                     }
289                 }
290             } else {
291                 emailbefor = press.split("@")[0];
292                 emailafter = "@" + press.split("@")[1];
293                 for(var i=0; i<emailvar.length; i++) {
294                      var theemail = emailvar[i];
295                      if(theemail.indexOf(emailafter) == 0)
296                      {
297                          emailtxt = emailtxt + "<div class='newemail' style='width:170px; color:#6B6B6B; overflow:hidden;'><font color='#D33022'>" + emailbefor + "</font>" + emailvar[i] + "</div>"
298                      }
299                 }
300             }
301             $("#myemail").html(emailmy+emailtxt);
302             if($("#myemail").html()){
303                  $("#myemail").css("display","block");
304                  $(".newemail").css("width",$("#myemail").width());
305                  can1press = true;
306             } else {
307                  $("#myemail").css("display","none");
308                  can1press = false;
309             }
310             beforepress = press;
311         }
312         if (press=="" || press==null){
313             $("#myemail").html("");        
314              $("#myemail").css("display","none");    
315         }                
316     })
317     $(document).click(function(){ //文本框失焦时删除层
318         if(can1press){
319             $("#myemail").remove();
320             can1press = false;    
321             if($("#mailTo").focus()){
322                 can1press = false;
323             }
324         }
325     })
326     $(".newemail").live("mouseover",function(){ //鼠标经过提示Email时,高亮该条Email
327         $(".newemail").css("background","#FFF");
328         $(this).css("background","#CACACA");        
329         $(this).focus();
330         nowid = $(this).index();
331     }).live("click",function(){ //鼠标点击Email时,文本框内容替换成该条Email,并删除提示层
332         var newhtml = $(this).html();
333         newhtml = newhtml.replace(/<.*?>/g,"");
334         $("#mailTo").val(newhtml); 
335         $("#myemail").remove();
336     })
337     $(document).bind("keydown",function(e)  
338     {     
339         if(can1press){
340             switch(e.which)     
341             {            
342                 case 38:
343                 if (nowid > 0){        
344                     $(".newemail").css("background","#FFF");
345                     $(".newemail").eq(nowid).prev().css("background","#CACACA").focus();
346                     nowid = nowid-1;        
347                 }
348                 if(!nowid){
349                     nowid = 0;
350                     $(".newemail").css("background","#FFF");
351                     $(".newemail").eq(nowid).css("background","#CACACA");        
352                     $(".newemail").eq(nowid).focus();                
353                 }
354                 break;       
355         
356                 case 40:
357                 if (nowid < totalid){                
358                     $(".newemail").css("background","#FFF");
359                     $(".newemail").eq(nowid).next().css("background","#CACACA").focus();    
360                     nowid = nowid+1;            
361                 }
362                 if(!nowid){
363                     nowid = 0;
364                     $(".newemail").css("background","#FFF");
365                     $(".newemail").eq(nowid).css("background","#CACACA");        
366                     $(".newemail").eq(nowid).focus();                
367                 }
368                 break;  
369         
370                 case 13:
371                 var newhtml = $(".newemail").eq(nowid).html();
372                 newhtml = newhtml.replace(/<.*?>/g,"");
373                 $("#mailTo").val(newhtml); 
374                 $("#myemail").remove();
375             }
376         }   
377     })
378 }
379
380 //检查email邮箱
381 function isEmail(str){
382     if(str.indexOf("@") > 0)     
383     {     
384         return true;
385     } else {
386         return false;
387     }
388 }
389 //=======================//
390
391 </script>
392 </head>
393 <body >
394 <form action="/sendMail.do" method="post"  id="mailForm">
395
396 <input  type="text" name="mailTo" id="mailTo" value=""/>
397
398 <div id="diagx" style="display: none;position: absolute;z-index:999;"></div>
399 </form>
400 </body>
401 </html>