📄 sendsave.jsp
字号:
<%@ page contentType="text/html; charset=utf-8" session="true" errorPage="frame_user_error.jsp" %>
<%@ include file="validate.jsp" %>
<%@ page import="org.apache.commons.fileupload.*" %>
<%@ page import="org.apache.commons.mail.*" %>
<%@ page import="javax.mail.internet.*" %>
<%@ page import="net.meybo.util.*" %>
<%@ page import="java.util.*" %>
<%
String message=null;
boolean op=false;
//Email email=saveMail(form,user);
Map textElement = new HashMap();
Map fileElement = new HashMap();
DiskFileUpload df = new DiskFileUpload();
//df.setHeaderEncoding(request.getCharacterEncoding());
df.setHeaderEncoding("utf-8");
df.setSizeMax(30*1024*1024);
df.setSizeThreshold(100*1024);
List reqPars = null;
try
{
reqPars = df.parseRequest(request);
long fileSize=0;
for(int i = 0; i < reqPars.size(); i++)
{
FileItem it = (FileItem)reqPars.get(i);
if(it.isFormField()) {
textElement.put(it.getFieldName(), it.getString("UTF-8"));
//System.out.println(it.getFieldName()+":"+it.getString("UTF-8"));
}
else {
fileElement.put(it.getFieldName(), it);
fileSize+=it.getSize();
}
}
if(fileSize>25*1024*1024) {
throw new Exception("附件大小不能超过25M");
}
}
catch(Exception e) {
e.printStackTrace();
//logger.error(e);
throw new Exception("附件大小不能超过25M");
}
String cid=CommUtil.null2String((String)textElement.get("cid"));
String toUser=CommUtil.null2String((String)textElement.get("toUser"));
String copyTo=CommUtil.null2String((String)textElement.get("copyTo"));
String secretTo=CommUtil.null2String((String)textElement.get("secretTo"));
String subject=CommUtil.null2String((String)textElement.get("subject"));
String content=CommUtil.null2String((String)textElement.get("text"));
String priority=CommUtil.null2String((String)textElement.get("priority"));
String needAutoReply=CommUtil.null2String((String)textElement.get("needAutoReply"));
String needNotify=CommUtil.null2String((String)textElement.get("needNotify"));
String oldFiles=CommUtil.null2String((String)textElement.get("files"));
String box=CommUtil.null2String((String)textElement.get("box"));
boolean isHtml=false;
Map files=fileElement;
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("utf-8");
if(!cid.equals(""))
{
MimeMessage mime=EmailManage.getMail(user.getUserName(),user.getServerDomain(),box,cid);
if(mime!=null)
{
if(!oldFiles.equals("")) {
String[] file=oldFiles.split(",");
ParseMimeMessage oldemail=new ParseMimeMessage(mime);
for(int i=0;i<file.length;i++) {
String fileName=file[i];
try {
ByteArrayDataSource dataSource=new ByteArrayDataSource(oldemail.getAttach(fileName),null);
email.attach(dataSource,MimeUtility.encodeText(fileName),fileName);
System.out.println("处理附件:"+fileName);
}
catch(Exception e) {
System.out.println("附件处理错误:"+e);
}
}
}
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);
System.out.println(user.getUserName()+"@"+user.getServerDomain()+"/"+user.getUserName());
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"));
}
}
}
catch(Exception e) {
System.out.println("保存邮件出错!"+e);
e.printStackTrace();
}
message="邮件保存成功";
//form.addResult("msg","邮件保存成功!");
//form.set("cid",cid);
//return email;
//Email email=null;
if(email!=null)
{
try {
email.setAuthentication(user.getUserName(),user.getPassword());
email.send();
//String cid=CommUtil.null2String(form.get("cid"));
java.io.OutputStream os=new java.io.FileOutputStream(Config.getMailPath()+"/"+user.getServerDomain()+"/"+user.getUserName()+"/sendbox/"+cid);
email.buildMimeMessage();
email.getMimeMessage().writeTo(os);
os.close();
op=true;
email=null;
}
catch(Exception e) {
e.printStackTrace();
}
}
String nextPage=null;
if(op) {
//form.addResult("msg","发送邮件成功!");
//form.set("box","inbox");
//return doList(form,module,user);
message="发送邮件成功";
nextPage="list.jsp?box=sendbox";
}
else {
//form.addResult("msg","发送邮件失败,请重新发送!");
//return module.findPage("write");
message="发送邮件失败,请重新发送";
nextPage="write.jsp?cid="+cid;
}
%>
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<title>发送收件</title>
<link href="css/login.css" rel="stylesheet" type="text/css">
</head>
<body leftmargin="0" rightmargin="0" topmargin="0" bottommargin="0">
<script type="text/javascript">
<!--
<%if(op) {%>
alert("<%=message%>");
<%}else{%>
alert("发送邮件失败,请重新发送");
<%}%>
location.replace("<%=nextPage%>");
//-->
</script>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -