📄 emailaction.java
字号:
package net.meybo.mail.action;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.mail.ByteArrayDataSource;
import org.apache.commons.mail.Email;
import org.apache.commons.mail.HtmlEmail;
import org.apache.commons.mail.MultiPartEmail;
import net.meybo.mail.ActiveUser;
import net.meybo.mail.Config;
import net.meybo.mail.client.EmailManage;
import net.meybo.mail.client.ParseMimeMessage;
import net.meybo.mail.client.ReciveMail;
import com.easyjf.util.CommUtil;
import com.easyjf.util.HtmlUtil;
import com.easyjf.web.ActionContext;
import com.easyjf.web.IWebAction;
import com.easyjf.web.Module;
import com.easyjf.web.Page;
import com.easyjf.web.WebForm;
import com.easyjf.web.tools.*;
/**
* 地址管理处理Action
* <p>Title: </p>
* <p>Description: 基于EasyJWeb框架,实现IWebAction接口,实现邮件的收发</p>
* <p>Copyright: Copyright (c) 2006</p>
* <p>Company: 脉博软件</p>
* @author 阚吉彬
* @version 1.0
*/
public class EmailAction implements IWebAction {
public Page execute(WebForm form, Module module) throws Exception {
String method=CommUtil.null2String(form.get("easyJWebCommand"));
ActiveUser user=(ActiveUser)ActionContext.getContext().getSession().getAttribute("user");
if(user==null)
{
form.addResult( "msg","您没有登录或者是超时,请重登录!");
return new Page("noLoin","/login.ejf","html");
}
Page forward=null;
System.out.println(method);
if(method.equals(""))
{
forward=doShowMailBox(form,module,user);
}
else if("list".equals(method))
{
forward=doList(form,module,user);
}
else if("new".equals(method))
{
String editMode="html",editModeTitle="可视化编辑器";
String htmlView="",textView="";
if(editMode.equals("html"))
{textView="none";
editModeTitle="文本编辑器";
}
form.addResult("editMode",editMode);
form.addResult("htmlView",htmlView);
form.addResult("textView",textView);
form.addResult("editModeTitle",editModeTitle);
return module.findPage("write");
}
else if("edit".equals(method))
{
forward=doEdit(form,module,user);
}
else if("forward".equals(method))
{
forward=doForward(form,module,user);
}
else if("move".equals(method))
{
forward=doMoveMail(form,module,user);
}
else if("save".equals(method))
{
forward=doSaveMail(form,module,user);
}
else if("send".equals(method))
{
forward=doSendMail(form,module,user);
}
else if("sendSave".equals(method))
{
forward=doSendAndSaveMail(form,module,user);
}
else if("reply".equals(method))
{
forward=doReply(form,module,user);
}
else if("replyAll".equals(method))
{
forward=doReplyAll(form,module,user);
}
else if("search".equals(method))
{
forward=doSearch(form,module,user);
}
else if("del".equals(method))
{
forward=doDelMail(form,module,user);
}
else if("show".equals(method))
{
forward=doShowMail(form,module,user);
}
else if("download".equals(method))
{
doDownload(form,module,user,ActionContext.getContext().getResponse());
}
return forward;
}
private Page doReplyAll(WebForm form,Module module,ActiveUser user)
{
String cid=CommUtil.null2String(form.get("cid"));
String box=CommUtil.null2String(form.get("box"));
String editMode="";
MimeMessage mail=EmailManage.getMail(user.getUserName(),user.getServerDomain(),box,cid);
if(mail!=null)
{
try{
mail=(MimeMessage)mail.reply(true);
System.out.println(mail.getSubject());
ParseMimeMessage email=new ParseMimeMessage(mail);
form.addResult("from",email.getFrom());
form.addResult("text",email.getMailContent());
form.addResult("toUser",email.getMailAddress("TO"));
form.addResult("copyTo",email.getMailAddress("CC"));
form.addResult("secretTo",email.getMailAddress("BCC"));
form.addResult("subject",email.getSubject());
form.addResult("list",email.getAttachMent());
if(email.isHtml())editMode="html";
}
catch(Exception e)
{
e.printStackTrace();
}
}
String htmlView="",textView="",editModeTitle="可视化编辑器";
if(editMode.equals("html"))
{textView="none";
editModeTitle="文本编辑器";
}
else htmlView="none";
System.out.println(editMode);
form.addResult("editMode",editMode);
form.addResult("htmlView",htmlView);
form.addResult("textView",textView);
form.set("cid",cid);
form.addResult("editModeTitle",editModeTitle);
return module.findPage("write");
}
private Page doReply(WebForm form,Module module,ActiveUser user)
{
String cid=CommUtil.null2String(form.get("cid"));
String box=CommUtil.null2String(form.get("box"));
System.out.println(cid+":"+box);
String editMode="";
MimeMessage mail=EmailManage.getMail(user.getUserName(),user.getServerDomain(),box,cid);
if(mail!=null)
{
try{
mail=(MimeMessage)mail.reply(false);
ParseMimeMessage email=new ParseMimeMessage(mail);
form.addResult("from",email.getFrom());
form.addResult("text",email.getMailContent());
form.addResult("toUser",email.getMailAddress("TO"));
form.addResult("copyTo",email.getMailAddress("CC"));
form.addResult("secretTo",email.getMailAddress("BCC"));
form.addResult("subject",email.getSubject());
form.addResult("list",email.getAttachMent());
if(email.isHtml())editMode="html";
}
catch(Exception e)
{
}
}
String htmlView="",textView="",editModeTitle="可视化编辑器";
if(editMode.equals("html"))
{textView="none";
editModeTitle="文本编辑器";
}
else htmlView="none";
System.out.println(editMode);
form.addResult("editMode",editMode);
form.addResult("htmlView",htmlView);
form.addResult("textView",textView);
form.set("cid",cid);
form.addResult("editModeTitle",editModeTitle);
return module.findPage("write");
}
private Page doForward(WebForm form,Module module,ActiveUser user)
{
String cid=CommUtil.null2String(form.get("cid"));
String box=CommUtil.null2String(form.get("box"));
String editMode="";
MimeMessage mail=EmailManage.getMail(user.getUserName(),user.getServerDomain(),box,cid);
if(mail!=null)
{
ParseMimeMessage email=new ParseMimeMessage(mail);
try{
//form.addResult("from",email.getFrom());
form.addResult("text",email.getMailContent());
//form.addResult("toUser",email.getMailAddress("TO"));
//form.addResult("copyTo",email.getMailAddress("CC"));
//form.addResult("secretTo",email.getMailAddress("BCC"));
form.addResult("subject","转发:"+email.getSubject());
form.addResult("attachs",email.getAttachMent());
if(email.isHtml())editMode="html";
}
catch(Exception e)
{
}
}
String htmlView="",textView="",editModeTitle="可视化编辑器";
if(editMode.equals("html"))
{textView="none";
editModeTitle="文本编辑器";
}
else htmlView="none";
System.out.println(editMode);
form.addResult("editMode",editMode);
form.addResult("htmlView",htmlView);
form.addResult("textView",textView);
form.set("cid",cid);
form.addResult("editModeTitle",editModeTitle);
return module.findPage("write");
}
private Page doEdit(WebForm form,Module module,ActiveUser user)
{
String cid=CommUtil.null2String(form.get("cid"));
String box=CommUtil.null2String(form.get("box"));
String editMode="";
MimeMessage mail=EmailManage.getMail(user.getUserName(),user.getServerDomain(),box,cid);
if(mail!=null)
{
ParseMimeMessage email=new ParseMimeMessage(mail);
try{
form.addResult("from",email.getFrom());
form.addResult("text",email.getMailContent());
form.addResult("toUser",email.getMailAddress("TO"));
form.addResult("copyTo",email.getMailAddress("CC"));
form.addResult("secretTo",email.getMailAddress("BCC"));
form.addResult("subject",email.getSubject());
form.addResult("attachs",email.getAttachMent());
if(email.isHtml())editMode="html";
}
catch(Exception e)
{
}
}
String htmlView="",textView="",editModeTitle="可视化编辑器";
if(editMode.equals("html"))
{textView="none";
editModeTitle="文本编辑器";
}
else htmlView="none";
System.out.println(editMode);
form.addResult("editMode",editMode);
form.addResult("htmlView",htmlView);
form.addResult("textView",textView);
form.set("cid",cid);
form.addResult("editModeTitle",editModeTitle);
return module.findPage("write");
}
private Page doDelMail(WebForm form,Module module,ActiveUser user)
{
String MulitCid=CommUtil.null2String(form.get("mulitCid"));
String box=CommUtil.null2String(form.get("box"));
List dels=new ArrayList();
boolean opSuccess=false;
if(!MulitCid.equals("")){//执行批量删除
String[] s=MulitCid.split(",");
for(int i=0;i<s.length;i++)
{
if(box.equals("inbox"))
{
dels.add("newbox/"+s[i]);
}
dels.add(box+"/"+s[i]);
}
}
String id=CommUtil.null2String(form.get("cid"));
if(!id.equals(""))dels.add(box+"/"+id);
if(EmailManage.delMail(user.getUserName(),user.getServerDomain(),dels)>0)
form.addResult("msg","删除成功!");
else
form.addResult("msg","删除失败!");
return doList(form,module,user);
}
private Page doMoveMail(WebForm form,Module module,ActiveUser user)
{
String MulitCid=CommUtil.null2String(form.get("mulitCid"));
String id=CommUtil.null2String(form.get("cid"));
String newBox=CommUtil.null2String(form.get("newBox"));
String box=CommUtil.null2String(form.get("box"));
List dels=new ArrayList();
if(!MulitCid.equals("")){//执行批量删除
String[] s=MulitCid.split(",");
for(int i=0;i<s.length;i++)
{
if(box.equals("inbox"))
{
dels.add("newbox/"+s[i]);
}
dels.add(box+"/"+s[i]);
}
}
if(!id.equals(""))dels.add(box+"/"+id);
//form.addResult("boxList",EmailManage.getMailDir(user.getUserName(),user.getServerDomain()));
if(EmailManage.moveMail(user.getUserName(),user.getServerDomain(),newBox,dels)>0)
form.addResult("msg","操作成功!");
else
form.addResult("msg","操作失败!");
return doList(form,module,user);
}
private Page doShowMail(WebForm form,Module module,ActiveUser user)
{
String cid=CommUtil.null2String(form.get("cid"));
String box=CommUtil.null2String(form.get("box"));
MimeMessage mail=EmailManage.getMail(user.getUserName(),user.getServerDomain(),box,cid);
if(mail!=null)
{
ParseMimeMessage email=new ParseMimeMessage(mail);
try{
String content=email.getMailContent();
form.addResult("content",HtmlUtil.addBr(content));
form.addResult("subject",email.getSubject());
form.addResult("from",email.getFrom());
List attachs=email.getAttachMent();
if(attachs!=null && attachs.size()>0)form.addResult("haveAttach","true");
form.addResult("attachs",attachs);
form.addResult("to",email.getMailAddress("TO"));
form.addResult("cc",email.getMailAddress("CC"));
form.addResult("bcc",email.getMailAddress("BCC"));
form.addResult("sendDate",email.getSentDate());
if(box.equals("sendbox")||box.equals("draftbox"))form.addResult("isMyMail","true");
}
catch(Exception e)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -