📄 emailaction.java
字号:
{
System.out.println("邮件错误!"+e);
}
}
return module.findPage("show");
}
private Page doDownload(WebForm form, Module module,ActiveUser user,HttpServletResponse response)
{
String cid=CommUtil.null2String(form.get("cid"));
String box=CommUtil.null2String(form.get("box"));
String fileName=CommUtil.null2String(form.get("fileName"));
if(!fileName.equals("")){
MimeMessage mail=EmailManage.getMail(user.getUserName(),user.getServerDomain(),box,cid);
if(mail!=null){
ParseMimeMessage email=new ParseMimeMessage(mail);
try{
InputStream in=email.getAttach(fileName);
//System.out.println("准备下载"+fileName);
if(in!=null)
{
response.setContentType("APPLICATION/OCTET-STREAM");
response.setContentLength(in.available());
//fileName="tttt.txt";
response.setHeader("Content-Disposition","attachment; filename=\""+new String(fileName.getBytes("gbk"),"iso8859-1")+"\"");
byte[] buff = new byte[1000];
System.out.println(fileName);
OutputStream out=response.getOutputStream();
int c;
while((c=in.read(buff,0,1000))>0)
{
out.write(buff,0,c);
out.flush();
}
//out.flush();
out.close();
in.close();
}
//System.out.println("下载完成");
}
catch(Exception e)
{
}
}
}
return null;
}
private Page doShowMailBox(WebForm form, Module module,ActiveUser user)
{
List list=EmailManage.getMailBoxInfo(user.getUserName(),user.getServerDomain());
form.addResult("list",list);
return module.findPage("mail");
}
private Page doSaveMail(WebForm form, Module module,ActiveUser user)
{
Email email=saveMail(form,user);
boolean op=false;
if(email!=null)
{
try{
String cid=CommUtil.null2String(form.get("cid"));
OutputStream out=new FileOutputStream(Config.getMailPath()+"/"+user.getServerDomain()+"/"+user.getUserName()+"/draftbox/"+cid);
email.buildMimeMessage();
email.getMimeMessage().writeTo(out);
out.close();
op=true;
email=null;//释放内存资源
}
catch(Exception e)
{
e.printStackTrace();
}
}
if(op){
form.addResult("msg","邮件保存成功!");}
else
{
form.addResult("msg","邮件保存失败!");
}
return doEdit(form,module,user);
}
private Page doSendMail(WebForm form, Module module,ActiveUser user)
{
boolean op=false;
Email email=saveMail(form,user);
if(email!=null)
{
//String cid=CommUtil.null2String(form.get("cid"));
//String box=CommUtil.null2String(form.get("box"));
//MimeMessage mime=EmailManage.getMail(user.getUserName(),user.getServerDomain(),box,cid);
try{
//email.setHostName(user.getServerHost());
//email.setAuthentication(user.getUserName()+"@"+user.getServerDomain(),user.getPassword());
email.setAuthentication(user.getUserName(),user.getPassword());
email.send();
op=true;
}
catch(Exception e)
{
e.printStackTrace();
}
}
if(op)
{
form.addResult("msg","发送邮件成功!");
form.set("box","inbox");
return doList(form,module,user);
}
else
{
form.addResult("msg","发送邮件失败,请重新发送!");
return module.findPage("write");
}
}
private Page doSendAndSaveMail(WebForm form, Module module,ActiveUser user)
{
boolean op=false;
Email email=saveMail(form,user);
if(email!=null)
{
try{
email.setAuthentication(user.getUserName()+"@"+user.getServerDomain(),user.getPassword());
email.send();
String cid=CommUtil.null2String(form.get("cid"));
OutputStream out=new FileOutputStream(Config.getMailPath()+"/"+user.getServerDomain()+"/"+user.getUserName()+"/sendbox/"+cid);
email.buildMimeMessage();
email.getMimeMessage().writeTo(out);
out.close();
op=true;
email=null;
}
catch(Exception e)
{
e.printStackTrace();
}
}
if(op)
{
form.addResult("msg","发送邮件成功!");
form.set("box","sendbox");
return doList(form,module,user);
}
else
{
form.addResult("msg","发送邮件失败,请重新发送!");
return module.findPage("write");
}
}
private Page doList(WebForm form, Module module,ActiveUser user)
{
if(user==null)return new Page("err","/err.htm","html");
int currentPage=CommUtil.null2Int(form.get("page"));
int pageSize=CommUtil.null2Int(form.get("pageSize"));
String boxName=CommUtil.null2String(form.get("box"));
if(currentPage<1)currentPage=1;
if(pageSize<1)pageSize=10;
List list=null;
System.out.println(boxName+currentPage);
if(boxName.equals("inbox")){
//接收邮件
String path=Config.getMailPath()+"/"+user.getServerDomain()+"/"+user.getUserName()+"/newbox";
Thread thread=new Thread(new ReciveMail(user.getUserName()+"@"+user.getServerDomain(),user.getPassword(),user.getServerHost(),path));
thread.start();
try{
Thread.sleep(2000);
}
catch(Exception e)
{
}
list=EmailManage.getMailList(user.getUserName(),user.getServerDomain(),"newbox");
if(list!=null)
{
for(int i=0;i<list.size();i++)
{
Map mail=(Map)list.get(i);
mail.put("isNew","true");
}
}
List nList=EmailManage.getMailList(user.getUserName(),user.getServerDomain(),"inbox");
if(list!=null && nList!=null) list.addAll(nList);
}
else
{
if("sendbox".equals(boxName))
{
list=EmailManage.getMailList(user.getUserName(),user.getServerDomain(),"sendbox");
}
else if("draftbox".equals(boxName))
{
list=EmailManage.getMailList(user.getUserName(),user.getServerDomain(),"draftbox");
}
else if("delbox".equals(boxName))
{
list=EmailManage.getMailList(user.getUserName(),user.getServerDomain(),"delbox");
}
else
{
list=EmailManage.getMailList(user.getUserName(),user.getServerDomain(),boxName);
}
}
IPageList pList=new PageList(new ListQuery(list));
if(pList!=null){
pList.doList(pageSize,currentPage,"","");
form.addResult("list",pList.getResult());
form.addResult("pages",new Integer(pList.getPages()));
form.addResult("rows",new Integer(pList.getRowCount()));
form.addResult("page",new Integer(pList.getCurrentPage()));
form.addResult("gotoPageHTML",CommUtil.showPageHtml(pList.getCurrentPage(),pList.getPages()));
}
// form.addResult("list",list);
form.addResult("boxList",EmailManage.getMailDir(user.getUserName(),user.getServerDomain()));
if(boxName.equals("sendbox")||boxName.equals("draftbox"))form.addResult("isMyMail","true");
// form.addResult("domain",domain);
return module.findPage("list");
}
private Page doSearch(WebForm form, Module module,ActiveUser user)
{
return module.findPage("search");
}
private Email saveMail(WebForm form,ActiveUser user)
{
//Email email=null;
String cid=CommUtil.null2String(form.get("cid"));
String toUser=CommUtil.null2String(form.get("toUser"));
String copyTo=CommUtil.null2String(form.get("copyTo"));
String secretTo=CommUtil.null2String(form.get("secretTo"));
String subject=CommUtil.null2String(form.get("subject"));
String content=CommUtil.null2String(form.get("text"));
//System.out.println(content);
String priority=CommUtil.null2String(form.get("priority"));
String needAutoReply=CommUtil.null2String(form.get("needAutoReply"));
String needNotify=CommUtil.null2String(form.get("needNotify"));
boolean isHtml=false;
Map files=form.getFileElement();
MultiPartEmail email=null;
if(content.indexOf("<html>")==0 && (content.endsWith("</html>")))
{
content=content.substring("<html>".length(),content.lastIndexOf("</html>"));
isHtml=true;
email=new HtmlEmail();
}
else
email=new MultiPartEmail();
email.setCharset("gbk");
if(!cid.equals(""))
{
MimeMessage mime=EmailManage.getMail(user.getUserName(),user.getServerDomain(),"draftbox",cid);
if(mime!=null)
{
try{
email.addPart((MimeMultipart)mime.getContent());
}
catch(Exception e)
{
System.out.println("出错!"+e);
e.printStackTrace();
}
}
}
else
{
cid=CommUtil.getOnlyID()+".eml";
}
if(!files.isEmpty()){
Iterator it=files.values().iterator();
while(it.hasNext())
{
FileItem file=(FileItem)it.next();
if(file.getName()!=null && (!file.getName().equals(""))){
String fileName=file.getName();
fileName=fileName.substring(fileName.lastIndexOf("\\")+1);
String newName=CommUtil.getOnlyID()+fileName.substring(fileName.lastIndexOf("."));
//System.out.println(fileName);
try{
ByteArrayDataSource dataSource=new ByteArrayDataSource(file.getInputStream(),null);
email.attach(dataSource,MimeUtility.encodeText(fileName),fileName);
}
catch(Exception e)
{
System.out.println("附件处理错误:"+e);
}
}
}
}
try{
if(isHtml)
{
//((HtmlEmail)email).setTextMsg("can't");
((HtmlEmail)email).setHtmlMsg(content);
}
else
{
email.setMsg(content);
//email.se
}
email.setSubject(subject);
email.setFrom(user.getUserName()+"@"+user.getServerDomain(),user.getUserName());
System.out.println(user.getSmptpHost());
email.setHostName(user.getSmptpHost()); //MeyboMail使用hostIP.开源的使用smtpHost
List list=EmailManage.formatAddress(toUser);
if(list!=null)
{
for(int i=0;i<list.size();i++)
{
Map map=(Map)list.get(i);
email.addTo((String)map.get("email"),(String)map.get("name"));
}
}
list=EmailManage.formatAddress(copyTo);
if(list!=null)
{
for(int i=0;i<list.size();i++)
{
Map map=(Map)list.get(i);
email.addCc((String)map.get("email"),(String)map.get("name"));
}
}
list=EmailManage.formatAddress(secretTo);
if(list!=null)
{
for(int i=0;i<list.size();i++)
{
Map map=(Map)list.get(i);
email.addBcc((String)map.get("email"),(String)map.get("name"));
}
}
// OutputStream out=new FileOutputStream(Config.getMailPath()+"/"+user.getServerDomain()+"/"+user.getUserName()+"/draftbox/"+cid);
// email.buildMimeMessage();
// email.getMimeMessage().writeTo(out);
// out.close();
}
catch(Exception e)
{
System.out.println("保存邮件出错!"+e);
e.printStackTrace();
}
form.addResult("msg","邮件保存成功!");
/*
String editMode=CommUtil.null2String(form.get("editMode"));
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);
//form.set("cid",cid);
//form.set("box","draftbox");
//return module.findPage("write");
return email;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -