?? mailservlet.java
字號:
package djr.servlet;
import java.io.*;
import java.sql.Connection;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.oreilly.servlet.*;
import com.oreilly.servlet.multipart.*;
import djr.common.Constants;
import djr.dao.EmailDAO;
import djr.db.DbFactory;
import djr.dto.*;
import djr.mail.MailManager;
public class MailServlet extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
String url = request.getServletPath();
if (url.toUpperCase().indexOf("SENDMAIL") != -1)
{
// 寫信
UserDTO userDTO = (UserDTO) request.getSession().getAttribute(
"userinfo");
EmailDTO emailDTO = new EmailDTO();
String uploadPath = "/upload";
String absUploadPath = this.getServletContext().getRealPath(
uploadPath);
// 創建服務器端保存上傳文件的目錄的對象
File uploadDir = new File(absUploadPath);
// 目錄不存在時
if (!uploadDir.exists())
{
// 生成目錄
uploadDir.mkdirs();
}
MultipartRequest multi = new MultipartRequest(request,
absUploadPath, 10 * 1024 * 1024, "UTF-8",
new DefaultFileRenamePolicy());
emailDTO.setPersonName(userDTO.getUserid());
emailDTO.setToList(multi.getParameter("txtTo"));
if (multi.getParameter("txtCC") == null)
{
emailDTO.setCcList("");
}
else
{
emailDTO.setCcList(multi.getParameter("txtCC"));
}
if (multi.getParameter("txtBCC") == null)
{
emailDTO.setBccList("");
}
else
{
emailDTO.setBccList(multi.getParameter("txtBCC"));
}
emailDTO.setTitle(multi.getParameter("txtTitle"));
emailDTO.setContent(multi.getParameter("txaContent"));
emailDTO.setFrom(userDTO.getEmail());
File attFile = multi.getFile("fileAtt");
emailDTO.setAttFile(attFile);
MailManager mailMgr = new MailManager();
mailMgr.setUser(userDTO.getUserid());
mailMgr.setPassword(userDTO.getPassword());
if (mailMgr.sendMail(emailDTO))
{
if (attFile != null)
{
attFile.delete();
}
url = "/success.jsp";
}
else
{
url = "/err.jsp";
}
}
else if (url.toUpperCase().indexOf("RECEIVEMAIL") != -1)
{
// 取信
UserDTO userDTO = (UserDTO) request.getSession().getAttribute(
"userinfo");
MailManager mailMgr = new MailManager();
mailMgr.setUser(userDTO.getUserid());
mailMgr.setPassword(userDTO.getPassword());
if (mailMgr.receiveMail())
{
Connection conn = DbFactory.getConnection();
EmailDTO emailDTO = new EmailDTO();
emailDTO.setUserID(userDTO.getUserid());
List<EmailDTO> mailList = new EmailDAO().getMailList(emailDTO,
conn);
DbFactory.closeConn(conn);
if (mailList != null && mailList.size() == 0)
{
mailList = null;
}
request.getSession().setAttribute("eMailList", mailList);
url = "/mailList.jsp";
}
else
{
url = "/err.jsp";
}
}
else if (url.toUpperCase().indexOf("READMAIL") != -1)
{
// 讀信
int emailID = Integer.parseInt(request.getParameter("emailID"));
Connection conn = DbFactory.getConnection();
EmailDTO emailDTO = new EmailDAO().getMail(emailID, conn);
DbFactory.closeConn(conn);
request.setAttribute("email", emailDTO);
url = "/readmail.jsp";
}
else if (url.toUpperCase().indexOf("KILLMAIL") != -1)
{
// 徹底刪除郵件
int emailID = Integer.parseInt(request.getParameter("emailID"));
Connection conn = DbFactory.getConnection();
EmailDTO emailDTO = new EmailDAO().getMail(emailID, conn);
if (emailDTO != null)
{
if (new EmailDAO().killEmail(emailID, conn))
{
String attPath = this.getServletContext().getRealPath(
emailDTO.getAttFilePath());
File attFile = new File(attPath);
if (attFile.exists())
{
attFile.delete();
}
}
UserDTO userDTO = (UserDTO) request.getSession().getAttribute(
"userinfo");
emailDTO = new EmailDTO();
emailDTO.setUserID(userDTO.getUserid());
List<EmailDTO> mailList = new EmailDAO().getMailList(emailDTO,
conn);
DbFactory.closeConn(conn);
if (mailList != null && mailList.size() == 0)
{
mailList = null;
}
request.getSession().setAttribute("eMailList", mailList);
url = "/mailList.jsp";
}
else
{
url = "/err.jsp";
}
}
else if (url.toUpperCase().indexOf("GETATTFILE") != -1)
{
// 附件下載
int emailID = Integer.parseInt(request.getParameter("emailID"));
Connection conn = DbFactory.getConnection();
EmailDTO emailDTO = new EmailDAO().getMail(emailID, conn);
DbFactory.closeConn(conn);
if (emailDTO != null)
{
String attPath = getServletContext().getRealPath(
emailDTO.getAttFilePath());
File file = new File(attPath);
if (file.exists())
{
String filename = file.getName();
// 指定下載文件上傳時的文件名的編碼
String charSet = "UTF-8";
// 使用ISO-8859-1的編碼方式
String isofilename = new String(filename.getBytes(charSet),
"ISO-8859-1");
// 設置內容類型`
response.setContentType("application/octet-stream");
// 設置Content-Disposition為attachment
response.setHeader("Content-Disposition",
"attachment; filename=" + isofilename);
// 取得輸出流
ServletOutputStream outStream = response.getOutputStream();
// 將要下載的文件發送到輸出流中
ServletUtils.returnFile(Constants.WEB_ABS_ATTACH_PATH + "/"
+ isofilename, outStream);
return;
}
}
}
else if (url.toUpperCase().indexOf("REPLYMAIL") != -1)
{
// 進入回復郵件畫面
int emailID = Integer.parseInt(request.getParameter("emailID"));
Connection conn = DbFactory.getConnection();
EmailDTO emailDTO = new EmailDAO().getMail(emailID, conn);
if (emailDTO != null)
{
emailDTO.setTitle("RE: " + emailDTO.getTitle());
emailDTO.setContent("\n\n\n------------------------\n"
+ emailDTO.getContent());
}
request.setAttribute("email", emailDTO);
url = "/rewriteMail.jsp";
}
else if (url.toUpperCase().indexOf("FOWARDMAIL") != -1)
{
// 進入轉發郵件畫面
int emailID = Integer.parseInt(request.getParameter("emailID"));
Connection conn = DbFactory.getConnection();
EmailDTO emailDTO = new EmailDAO().getMail(emailID, conn);
if (emailDTO != null)
{
emailDTO.setTitle("FWD: " + emailDTO.getTitle());
emailDTO.setContent("\n\n\n------------------------\n"
+ emailDTO.getContent());
}
request.setAttribute("email", emailDTO);
url = "/rewriteMail.jsp";
}
else if (url.toUpperCase().indexOf("RESMAIL") != -1)
{
// 回復或轉發郵件
int emailID = Integer.parseInt(request.getParameter("emailID"));
Connection conn = DbFactory.getConnection();
EmailDTO emailDTO = new EmailDAO().getMail(emailID, conn);
if (emailDTO != null)
{
UserDTO userDTO = (UserDTO) request.getSession().getAttribute(
"userinfo");
emailDTO.setPersonName(userDTO.getUserid());
emailDTO.setToList(request.getParameter("txtFrom"));
if (request.getParameter("txtCC") == null)
{
emailDTO.setCcList("");
}
else
{
emailDTO.setCcList(request.getParameter("txtCC"));
}
if (request.getParameter("txtBCC") == null)
{
emailDTO.setBccList("");
}
else
{
emailDTO.setBccList(request.getParameter("txtBCC"));
}
emailDTO.setTitle(request.getParameter("txtTitle"));
emailDTO.setFrom(userDTO.getEmail());
emailDTO.setContent(request.getParameter("txaContent"));
String attPath = getServletContext().getRealPath(
emailDTO.getAttFilePath());
File attFile = new File(attPath);
if (attFile.exists())
{
emailDTO.setAttFile(attFile);
}
MailManager mailMgr = new MailManager();
mailMgr.setUser(userDTO.getUserid());
mailMgr.setPassword(userDTO.getPassword());
if (mailMgr.sendMail(emailDTO))
{
if (attFile != null)
{
attFile.delete();
}
url = "/success.jsp";
}
else
{
url = "/err.jsp";
}
}
}
request.getRequestDispatcher(url).forward(request, response);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -