EmailAction.java
Upload User: gtz2001
Upload Date: 2016-12-29
Package Size: 2489k
Code Size: 22k
Category:

WEB Mail

Development Platform:

Java

  1. package net.meybo.mail.action;
  2. import java.io.FileOutputStream;
  3. import java.io.InputStream;
  4. import java.io.OutputStream;
  5. import java.util.ArrayList;
  6. import java.util.Iterator;
  7. import java.util.List;
  8. import java.util.Map;
  9. import javax.mail.internet.MimeMessage;
  10. import javax.mail.internet.MimeMultipart;
  11. import javax.mail.internet.MimeUtility;
  12. import javax.servlet.http.HttpServletResponse;
  13. import org.apache.commons.fileupload.FileItem;
  14. import org.apache.commons.mail.ByteArrayDataSource;
  15. import org.apache.commons.mail.Email;
  16. import org.apache.commons.mail.HtmlEmail;
  17. import org.apache.commons.mail.MultiPartEmail;
  18. import net.meybo.mail.ActiveUser;
  19. import net.meybo.mail.Config;
  20. import net.meybo.mail.client.EmailManage;
  21. import net.meybo.mail.client.ParseMimeMessage;
  22. import net.meybo.mail.client.ReciveMail;
  23. import com.easyjf.util.CommUtil;
  24. import com.easyjf.util.HtmlUtil;
  25. import com.easyjf.web.ActionContext;
  26. import com.easyjf.web.IWebAction;
  27. import com.easyjf.web.Module;
  28. import com.easyjf.web.Page;
  29. import com.easyjf.web.WebForm;
  30. import com.easyjf.web.tools.*;
  31. /**
  32.  * 地址管理处理Action
  33.  * <p>Title: </p>
  34.  * <p>Description: 基于EasyJWeb框架,实现IWebAction接口,实现邮件的收发</p>
  35.  * <p>Copyright: Copyright (c) 2006</p>
  36.  * <p>Company: 脉博软件</p>
  37.  * @author 阚吉彬
  38.  * @version 1.0
  39.  */
  40. public class EmailAction implements IWebAction {
  41. public Page execute(WebForm form, Module module) throws Exception {
  42. String method=CommUtil.null2String(form.get("easyJWebCommand"));
  43. ActiveUser user=(ActiveUser)ActionContext.getContext().getSession().getAttribute("user");
  44. if(user==null)
  45. {
  46. form.addResult( "msg","您没有登录或者是超时,请重登录!");
  47. return new Page("noLoin","/login.ejf","html");
  48. }
  49. Page forward=null;
  50. System.out.println(method);
  51. if(method.equals(""))
  52. {
  53. forward=doShowMailBox(form,module,user);
  54. }
  55. else if("list".equals(method))
  56. {
  57. forward=doList(form,module,user);
  58. }
  59. else if("new".equals(method))
  60. {
  61. String editMode="html",editModeTitle="可视化编辑器";
  62. String htmlView="",textView="";
  63. if(editMode.equals("html"))
  64. {textView="none";
  65. editModeTitle="文本编辑器";
  66. }
  67. form.addResult("editMode",editMode);
  68. form.addResult("htmlView",htmlView);
  69. form.addResult("textView",textView);
  70. form.addResult("editModeTitle",editModeTitle);
  71. return module.findPage("write");
  72. }
  73. else if("edit".equals(method))
  74. {
  75. forward=doEdit(form,module,user);
  76. }
  77. else if("forward".equals(method))
  78. {
  79. forward=doForward(form,module,user);
  80. }
  81. else if("move".equals(method))
  82. {
  83. forward=doMoveMail(form,module,user);
  84. }
  85. else if("save".equals(method))
  86. {
  87. forward=doSaveMail(form,module,user);
  88. }
  89. else if("send".equals(method))
  90. {
  91. forward=doSendMail(form,module,user);
  92. }
  93. else if("sendSave".equals(method))
  94. {
  95. forward=doSendAndSaveMail(form,module,user);
  96. }
  97. else if("reply".equals(method))
  98. {
  99. forward=doReply(form,module,user);
  100. }
  101. else if("replyAll".equals(method))
  102. {
  103. forward=doReplyAll(form,module,user);
  104. }
  105. else if("search".equals(method))
  106. {
  107. forward=doSearch(form,module,user);
  108. }
  109. else if("del".equals(method))
  110. {
  111. forward=doDelMail(form,module,user);
  112. }
  113. else if("show".equals(method))
  114. {
  115. forward=doShowMail(form,module,user);
  116. }
  117. else if("download".equals(method))
  118. {
  119. doDownload(form,module,user,ActionContext.getContext().getResponse());
  120. }
  121. return forward;
  122. }
  123. private Page doReplyAll(WebForm form,Module module,ActiveUser user)
  124. {
  125. String cid=CommUtil.null2String(form.get("cid"));
  126. String box=CommUtil.null2String(form.get("box"));
  127. String editMode="";
  128. MimeMessage mail=EmailManage.getMail(user.getUserName(),user.getServerDomain(),box,cid);
  129. if(mail!=null)
  130. {
  131. try{
  132. mail=(MimeMessage)mail.reply(true);
  133. System.out.println(mail.getSubject());
  134. ParseMimeMessage email=new ParseMimeMessage(mail);
  135. form.addResult("from",email.getFrom());
  136. form.addResult("text",email.getMailContent());
  137. form.addResult("toUser",email.getMailAddress("TO"));
  138. form.addResult("copyTo",email.getMailAddress("CC"));
  139. form.addResult("secretTo",email.getMailAddress("BCC"));
  140. form.addResult("subject",email.getSubject());
  141. form.addResult("list",email.getAttachMent());
  142. if(email.isHtml())editMode="html";
  143. }
  144. catch(Exception e)
  145. {
  146. e.printStackTrace();
  147. }
  148. }
  149. String htmlView="",textView="",editModeTitle="可视化编辑器";
  150. if(editMode.equals("html"))
  151. {textView="none";
  152. editModeTitle="文本编辑器";
  153. }
  154. else htmlView="none";
  155. System.out.println(editMode);
  156. form.addResult("editMode",editMode);
  157. form.addResult("htmlView",htmlView);
  158. form.addResult("textView",textView);
  159. form.set("cid",cid);
  160. form.addResult("editModeTitle",editModeTitle);
  161. return module.findPage("write");
  162. }
  163. private Page doReply(WebForm form,Module module,ActiveUser user)
  164. {
  165. String cid=CommUtil.null2String(form.get("cid"));
  166. String box=CommUtil.null2String(form.get("box"));
  167. System.out.println(cid+":"+box);
  168. String editMode="";
  169. MimeMessage mail=EmailManage.getMail(user.getUserName(),user.getServerDomain(),box,cid);
  170. if(mail!=null)
  171. {
  172. try{
  173. mail=(MimeMessage)mail.reply(false);
  174. ParseMimeMessage email=new ParseMimeMessage(mail);
  175. form.addResult("from",email.getFrom());
  176. form.addResult("text",email.getMailContent());
  177. form.addResult("toUser",email.getMailAddress("TO"));
  178. form.addResult("copyTo",email.getMailAddress("CC"));
  179. form.addResult("secretTo",email.getMailAddress("BCC"));
  180. form.addResult("subject",email.getSubject());
  181. form.addResult("list",email.getAttachMent());
  182. if(email.isHtml())editMode="html";
  183. }
  184. catch(Exception e)
  185. {
  186. }
  187. }
  188. String htmlView="",textView="",editModeTitle="可视化编辑器";
  189. if(editMode.equals("html"))
  190. {textView="none";
  191. editModeTitle="文本编辑器";
  192. }
  193. else htmlView="none";
  194. System.out.println(editMode);
  195. form.addResult("editMode",editMode);
  196. form.addResult("htmlView",htmlView);
  197. form.addResult("textView",textView);
  198. form.set("cid",cid);
  199. form.addResult("editModeTitle",editModeTitle);
  200. return module.findPage("write");
  201. }
  202. private Page doForward(WebForm form,Module module,ActiveUser user)
  203. {
  204. String cid=CommUtil.null2String(form.get("cid"));
  205. String box=CommUtil.null2String(form.get("box"));
  206. String editMode="";
  207. MimeMessage mail=EmailManage.getMail(user.getUserName(),user.getServerDomain(),box,cid);
  208. if(mail!=null)
  209. {
  210. ParseMimeMessage email=new ParseMimeMessage(mail);
  211. try{
  212. //form.addResult("from",email.getFrom());
  213. form.addResult("text",email.getMailContent());
  214. //form.addResult("toUser",email.getMailAddress("TO"));
  215. //form.addResult("copyTo",email.getMailAddress("CC"));
  216. //form.addResult("secretTo",email.getMailAddress("BCC"));
  217. form.addResult("subject","转发:"+email.getSubject());
  218. form.addResult("attachs",email.getAttachMent());
  219. if(email.isHtml())editMode="html";
  220. }
  221. catch(Exception e)
  222. {
  223. }
  224. }
  225. String htmlView="",textView="",editModeTitle="可视化编辑器";
  226. if(editMode.equals("html"))
  227. {textView="none";
  228. editModeTitle="文本编辑器";
  229. }
  230. else htmlView="none";
  231. System.out.println(editMode);
  232. form.addResult("editMode",editMode);
  233. form.addResult("htmlView",htmlView);
  234. form.addResult("textView",textView);
  235. form.set("cid",cid);
  236. form.addResult("editModeTitle",editModeTitle);
  237. return module.findPage("write");
  238. }
  239. private Page doEdit(WebForm form,Module module,ActiveUser user)
  240. {
  241. String cid=CommUtil.null2String(form.get("cid"));
  242. String box=CommUtil.null2String(form.get("box"));
  243. String editMode="";
  244. MimeMessage mail=EmailManage.getMail(user.getUserName(),user.getServerDomain(),box,cid);
  245. if(mail!=null)
  246. {
  247. ParseMimeMessage email=new ParseMimeMessage(mail);
  248. try{
  249. form.addResult("from",email.getFrom());
  250. form.addResult("text",email.getMailContent());
  251. form.addResult("toUser",email.getMailAddress("TO"));
  252. form.addResult("copyTo",email.getMailAddress("CC"));
  253. form.addResult("secretTo",email.getMailAddress("BCC"));
  254. form.addResult("subject",email.getSubject());
  255. form.addResult("attachs",email.getAttachMent());
  256. if(email.isHtml())editMode="html";
  257. }
  258. catch(Exception e)
  259. {
  260. }
  261. }
  262. String htmlView="",textView="",editModeTitle="可视化编辑器";
  263. if(editMode.equals("html"))
  264. {textView="none";
  265. editModeTitle="文本编辑器";
  266. }
  267. else htmlView="none";
  268. System.out.println(editMode);
  269. form.addResult("editMode",editMode);
  270. form.addResult("htmlView",htmlView);
  271. form.addResult("textView",textView);
  272. form.set("cid",cid);
  273. form.addResult("editModeTitle",editModeTitle);
  274. return module.findPage("write");
  275. }
  276. private Page doDelMail(WebForm form,Module module,ActiveUser user)
  277. {
  278. String MulitCid=CommUtil.null2String(form.get("mulitCid"));
  279. String box=CommUtil.null2String(form.get("box"));
  280. List dels=new ArrayList();
  281. boolean opSuccess=false;
  282. if(!MulitCid.equals("")){//执行批量删除
  283. String[] s=MulitCid.split(",");
  284. for(int i=0;i<s.length;i++)
  285. {
  286. if(box.equals("inbox"))
  287. {
  288. dels.add("newbox/"+s[i]);
  289. }
  290. dels.add(box+"/"+s[i]);
  291. }
  292. }
  293. String id=CommUtil.null2String(form.get("cid"));
  294. if(!id.equals(""))dels.add(box+"/"+id);
  295. if(EmailManage.delMail(user.getUserName(),user.getServerDomain(),dels)>0)
  296. form.addResult("msg","删除成功!");
  297. else
  298. form.addResult("msg","删除失败!");
  299. return doList(form,module,user);
  300. }
  301. private Page doMoveMail(WebForm form,Module module,ActiveUser user)
  302. {
  303. String MulitCid=CommUtil.null2String(form.get("mulitCid"));
  304. String id=CommUtil.null2String(form.get("cid"));
  305. String newBox=CommUtil.null2String(form.get("newBox"));
  306. String box=CommUtil.null2String(form.get("box"));
  307. List dels=new ArrayList();
  308. if(!MulitCid.equals("")){//执行批量删除
  309. String[] s=MulitCid.split(",");
  310. for(int i=0;i<s.length;i++)
  311. {
  312. if(box.equals("inbox"))
  313. {
  314. dels.add("newbox/"+s[i]);
  315. }
  316. dels.add(box+"/"+s[i]);
  317. }
  318. }
  319. if(!id.equals(""))dels.add(box+"/"+id);
  320. //form.addResult("boxList",EmailManage.getMailDir(user.getUserName(),user.getServerDomain()));
  321. if(EmailManage.moveMail(user.getUserName(),user.getServerDomain(),newBox,dels)>0)
  322. form.addResult("msg","操作成功!");
  323. else
  324. form.addResult("msg","操作失败!");
  325. return doList(form,module,user);
  326. }
  327. private Page doShowMail(WebForm form,Module module,ActiveUser user)
  328. {
  329. String cid=CommUtil.null2String(form.get("cid"));
  330. String box=CommUtil.null2String(form.get("box"));
  331. MimeMessage mail=EmailManage.getMail(user.getUserName(),user.getServerDomain(),box,cid);
  332. if(mail!=null)
  333. {
  334. ParseMimeMessage email=new ParseMimeMessage(mail);
  335. try{
  336. String content=email.getMailContent();
  337. form.addResult("content",HtmlUtil.addBr(content));
  338. form.addResult("subject",email.getSubject());
  339. form.addResult("from",email.getFrom());
  340. List attachs=email.getAttachMent();
  341. if(attachs!=null && attachs.size()>0)form.addResult("haveAttach","true");
  342. form.addResult("attachs",attachs);
  343. form.addResult("to",email.getMailAddress("TO"));
  344. form.addResult("cc",email.getMailAddress("CC"));
  345. form.addResult("bcc",email.getMailAddress("BCC"));
  346. form.addResult("sendDate",email.getSentDate());
  347. if(box.equals("sendbox")||box.equals("draftbox"))form.addResult("isMyMail","true");
  348. }
  349. catch(Exception e)
  350. {
  351. System.out.println("邮件错误!"+e);
  352. }
  353. }
  354. return module.findPage("show");
  355. }
  356. private Page doDownload(WebForm form, Module module,ActiveUser user,HttpServletResponse response)
  357. {
  358. String cid=CommUtil.null2String(form.get("cid"));
  359. String box=CommUtil.null2String(form.get("box"));
  360. String fileName=CommUtil.null2String(form.get("fileName"));
  361. if(!fileName.equals("")){
  362. MimeMessage mail=EmailManage.getMail(user.getUserName(),user.getServerDomain(),box,cid);
  363. if(mail!=null){
  364. ParseMimeMessage email=new ParseMimeMessage(mail);
  365. try{
  366. InputStream in=email.getAttach(fileName);
  367. //System.out.println("准备下载"+fileName);
  368. if(in!=null)
  369. {
  370. response.setContentType("APPLICATION/OCTET-STREAM");
  371. response.setContentLength(in.available());
  372. //fileName="tttt.txt";
  373. response.setHeader("Content-Disposition","attachment; filename=""+new String(fileName.getBytes("gbk"),"iso8859-1")+""");
  374. byte[] buff = new byte[1000]; 
  375. System.out.println(fileName);
  376. OutputStream out=response.getOutputStream();
  377. int c;
  378. while((c=in.read(buff,0,1000))>0)
  379. {
  380. out.write(buff,0,c);
  381. out.flush();
  382. }
  383. //out.flush();
  384. out.close();
  385. in.close();
  386. }
  387. //System.out.println("下载完成");
  388. }
  389. catch(Exception e)
  390. {
  391. }
  392. }
  393. }
  394. return null;
  395. }
  396. private Page doShowMailBox(WebForm form, Module module,ActiveUser user)
  397. {
  398. List list=EmailManage.getMailBoxInfo(user.getUserName(),user.getServerDomain());
  399. form.addResult("list",list);
  400. return module.findPage("mail");
  401. }
  402. private Page doSaveMail(WebForm form, Module module,ActiveUser user)
  403. {
  404. Email email=saveMail(form,user);
  405. boolean op=false;
  406. if(email!=null)
  407. {
  408. try{
  409. String cid=CommUtil.null2String(form.get("cid"));
  410.             OutputStream out=new FileOutputStream(Config.getMailPath()+"/"+user.getServerDomain()+"/"+user.getUserName()+"/draftbox/"+cid);
  411. email.buildMimeMessage();
  412. email.getMimeMessage().writeTo(out);
  413. out.close();
  414. op=true;
  415. email=null;//释放内存资源
  416. }
  417. catch(Exception e)
  418. {
  419. e.printStackTrace();
  420. }
  421. }
  422. if(op){
  423. form.addResult("msg","邮件保存成功!");}
  424. else
  425. {
  426. form.addResult("msg","邮件保存失败!");
  427. }
  428. return doEdit(form,module,user);
  429. }
  430. private Page doSendMail(WebForm form, Module module,ActiveUser user)
  431. {
  432. boolean op=false;
  433. Email email=saveMail(form,user);
  434. if(email!=null)
  435. {
  436. //String cid=CommUtil.null2String(form.get("cid"));
  437. //String box=CommUtil.null2String(form.get("box"));
  438. //MimeMessage mime=EmailManage.getMail(user.getUserName(),user.getServerDomain(),box,cid);
  439. try{
  440. //email.setHostName(user.getServerHost());
  441.     //email.setAuthentication(user.getUserName()+"@"+user.getServerDomain(),user.getPassword());
  442. email.setAuthentication(user.getUserName(),user.getPassword());
  443.     email.send();
  444.     op=true;
  445. }
  446. catch(Exception e)
  447. {
  448. e.printStackTrace();
  449. }
  450. }
  451. if(op)
  452. {
  453. form.addResult("msg","发送邮件成功!");
  454. form.set("box","inbox");
  455. return doList(form,module,user);
  456. }
  457. else
  458. {
  459. form.addResult("msg","发送邮件失败,请重新发送!");
  460. return module.findPage("write");
  461. }
  462. }
  463. private Page doSendAndSaveMail(WebForm form, Module module,ActiveUser user)
  464. {
  465. boolean op=false;
  466. Email email=saveMail(form,user);
  467. if(email!=null)
  468. {
  469. try{
  470.     email.setAuthentication(user.getUserName()+"@"+user.getServerDomain(),user.getPassword());     
  471.     email.send();
  472.     String cid=CommUtil.null2String(form.get("cid"));
  473.         OutputStream out=new FileOutputStream(Config.getMailPath()+"/"+user.getServerDomain()+"/"+user.getUserName()+"/sendbox/"+cid);
  474. email.buildMimeMessage();
  475. email.getMimeMessage().writeTo(out);
  476. out.close();
  477.     op=true;
  478.     email=null;
  479. }
  480. catch(Exception e)
  481. {
  482. e.printStackTrace();
  483. }
  484. }
  485. if(op)
  486. {
  487. form.addResult("msg","发送邮件成功!");
  488. form.set("box","sendbox");
  489. return doList(form,module,user);
  490. }
  491. else
  492. {
  493. form.addResult("msg","发送邮件失败,请重新发送!");
  494. return module.findPage("write");
  495. }
  496. }
  497. private Page doList(WebForm form, Module module,ActiveUser user)
  498. {
  499. if(user==null)return new Page("err","/err.htm","html");
  500. int currentPage=CommUtil.null2Int(form.get("page"));
  501. int pageSize=CommUtil.null2Int(form.get("pageSize"));
  502. String boxName=CommUtil.null2String(form.get("box"));
  503. if(currentPage<1)currentPage=1;
  504. if(pageSize<1)pageSize=10;
  505. List list=null;
  506. System.out.println(boxName+currentPage);
  507. if(boxName.equals("inbox")){
  508. //接收邮件
  509. String path=Config.getMailPath()+"/"+user.getServerDomain()+"/"+user.getUserName()+"/newbox";
  510. Thread thread=new Thread(new ReciveMail(user.getUserName()+"@"+user.getServerDomain(),user.getPassword(),user.getServerHost(),path));
  511. thread.start();
  512. try{
  513. Thread.sleep(2000);
  514. }
  515. catch(Exception e)
  516. {
  517. }
  518. list=EmailManage.getMailList(user.getUserName(),user.getServerDomain(),"newbox");
  519. if(list!=null)
  520. {
  521. for(int i=0;i<list.size();i++)
  522. {
  523. Map mail=(Map)list.get(i);
  524. mail.put("isNew","true");
  525. }
  526. }
  527. List nList=EmailManage.getMailList(user.getUserName(),user.getServerDomain(),"inbox");
  528. if(list!=null && nList!=null) list.addAll(nList);
  529. }
  530. else 
  531. {
  532. if("sendbox".equals(boxName))
  533. {
  534. list=EmailManage.getMailList(user.getUserName(),user.getServerDomain(),"sendbox");
  535. }
  536. else if("draftbox".equals(boxName))
  537. {
  538. list=EmailManage.getMailList(user.getUserName(),user.getServerDomain(),"draftbox");
  539. }
  540. else if("delbox".equals(boxName))
  541. {
  542. list=EmailManage.getMailList(user.getUserName(),user.getServerDomain(),"delbox");
  543. }
  544. else 
  545. {
  546. list=EmailManage.getMailList(user.getUserName(),user.getServerDomain(),boxName);
  547. }
  548. }
  549.   IPageList pList=new PageList(new ListQuery(list));   
  550.   if(pList!=null){
  551.     pList.doList(pageSize,currentPage,"","");
  552. form.addResult("list",pList.getResult());
  553. form.addResult("pages",new Integer(pList.getPages()));
  554. form.addResult("rows",new Integer(pList.getRowCount()));
  555. form.addResult("page",new Integer(pList.getCurrentPage()));
  556. form.addResult("gotoPageHTML",CommUtil.showPageHtml(pList.getCurrentPage(),pList.getPages()));
  557. }  
  558.  // form.addResult("list",list);   
  559.   form.addResult("boxList",EmailManage.getMailDir(user.getUserName(),user.getServerDomain()));
  560.   if(boxName.equals("sendbox")||boxName.equals("draftbox"))form.addResult("isMyMail","true");
  561.  // form.addResult("domain",domain);  
  562.   return module.findPage("list");
  563. }
  564. private Page doSearch(WebForm form, Module module,ActiveUser user)
  565. {
  566.   return module.findPage("search");
  567. }
  568. private Email saveMail(WebForm form,ActiveUser user)
  569. {
  570. //Email email=null;
  571. String cid=CommUtil.null2String(form.get("cid"));
  572. String toUser=CommUtil.null2String(form.get("toUser"));
  573. String copyTo=CommUtil.null2String(form.get("copyTo"));
  574. String secretTo=CommUtil.null2String(form.get("secretTo"));
  575. String subject=CommUtil.null2String(form.get("subject"));
  576. String content=CommUtil.null2String(form.get("text"));
  577. //System.out.println(content);
  578. String priority=CommUtil.null2String(form.get("priority"));
  579. String needAutoReply=CommUtil.null2String(form.get("needAutoReply"));
  580. String needNotify=CommUtil.null2String(form.get("needNotify"));
  581. boolean isHtml=false;
  582. Map files=form.getFileElement();
  583. MultiPartEmail email=null;
  584. if(content.indexOf("<html>")==0 && (content.endsWith("</html>")))
  585. {
  586.  content=content.substring("<html>".length(),content.lastIndexOf("</html>"));
  587.  isHtml=true;
  588.  email=new HtmlEmail();
  589. }
  590. else
  591. email=new MultiPartEmail();
  592. email.setCharset("gbk");
  593. if(!cid.equals(""))
  594. {
  595. MimeMessage mime=EmailManage.getMail(user.getUserName(),user.getServerDomain(),"draftbox",cid);
  596. if(mime!=null)
  597. {
  598. try{
  599. email.addPart((MimeMultipart)mime.getContent());
  600. }
  601. catch(Exception e)
  602. {
  603. System.out.println("出错!"+e);
  604. e.printStackTrace();
  605. }
  606. }
  607. }
  608. else
  609. {
  610. cid=CommUtil.getOnlyID()+".eml";
  611. }
  612. if(!files.isEmpty()){
  613. Iterator it=files.values().iterator();
  614. while(it.hasNext())
  615. {
  616. FileItem file=(FileItem)it.next();
  617. if(file.getName()!=null && (!file.getName().equals(""))){
  618. String fileName=file.getName();
  619. fileName=fileName.substring(fileName.lastIndexOf("\")+1);
  620. String newName=CommUtil.getOnlyID()+fileName.substring(fileName.lastIndexOf("."));
  621. //System.out.println(fileName);
  622. try{
  623. ByteArrayDataSource dataSource=new ByteArrayDataSource(file.getInputStream(),null);
  624. email.attach(dataSource,MimeUtility.encodeText(fileName),fileName);
  625. }
  626. catch(Exception e)
  627. {
  628. System.out.println("附件处理错误:"+e);
  629. }
  630. }
  631. }
  632. }
  633. try{
  634. if(isHtml)
  635. {
  636. //((HtmlEmail)email).setTextMsg("can't");
  637. ((HtmlEmail)email).setHtmlMsg(content);
  638. }
  639. else
  640. {
  641. email.setMsg(content);
  642. //email.se
  643. }
  644. email.setSubject(subject);
  645. email.setFrom(user.getUserName()+"@"+user.getServerDomain(),user.getUserName());
  646. System.out.println(user.getSmptpHost());
  647. email.setHostName(user.getSmptpHost()); //MeyboMail使用hostIP.开源的使用smtpHost
  648. List list=EmailManage.formatAddress(toUser);
  649. if(list!=null)
  650. {
  651. for(int i=0;i<list.size();i++)
  652. {
  653. Map map=(Map)list.get(i);
  654. email.addTo((String)map.get("email"),(String)map.get("name"));
  655. }
  656. }
  657. list=EmailManage.formatAddress(copyTo);
  658. if(list!=null)
  659. {
  660. for(int i=0;i<list.size();i++)
  661. {
  662. Map map=(Map)list.get(i);
  663. email.addCc((String)map.get("email"),(String)map.get("name"));
  664. }
  665. }
  666. list=EmailManage.formatAddress(secretTo);
  667. if(list!=null)
  668. {
  669. for(int i=0;i<list.size();i++)
  670. {
  671. Map map=(Map)list.get(i);
  672. email.addBcc((String)map.get("email"),(String)map.get("name"));
  673. }
  674. }
  675. // OutputStream out=new FileOutputStream(Config.getMailPath()+"/"+user.getServerDomain()+"/"+user.getUserName()+"/draftbox/"+cid);
  676. // email.buildMimeMessage();
  677. // email.getMimeMessage().writeTo(out);
  678. // out.close();
  679. }
  680. catch(Exception e)
  681. {
  682. System.out.println("保存邮件出错!"+e);
  683. e.printStackTrace();
  684. }
  685. form.addResult("msg","邮件保存成功!");
  686. /*
  687. String editMode=CommUtil.null2String(form.get("editMode"));
  688.     String htmlView="",textView="",editModeTitle="可视化编辑器";
  689. if(editMode.equals("html"))
  690. {textView="none";
  691. editModeTitle="文本编辑器";
  692. }
  693. else htmlView="none";
  694. System.out.println(editMode);*/
  695. //form.addResult("editMode",editMode);
  696. //form.addResult("htmlView",htmlView);
  697. //form.addResult("textView",textView);
  698. form.set("cid",cid);
  699. //form.addResult("editModeTitle",editModeTitle);
  700. //form.set("cid",cid);
  701. //form.set("box","draftbox");
  702. //return module.findPage("write");
  703. return email;
  704. }
  705. }