⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mailservlet.java

📁 用java编的用到
💻 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 + -