Apache公司MultiPartEmail 邮件发送

apache MultiPartEmail 邮件发送

/**
 * @author Administrator
 * 接收客户端发送的数据
 */
public class SendServlet extends HttpServlet {
	private Map map = new LinkedHashMap();
	public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
		try {
			//处理上传文件,保存到指定服务端目录下,并返回这个上传的文件
			File file = doAttachment(request);
			//创建一个复杂邮件,即文本+附件
			MultiPartEmail multiPartEmail = new MultiPartEmail();
			multiPartEmail.setHostName("smtp.163.com");
			multiPartEmail.setAuthentication("runsin0723",get163password());
			multiPartEmail.setCharset("UTF-8");
			multiPartEmail.setFrom(map.get("from"));
			multiPartEmail.addTo(map.get("to"));
			multiPartEmail.setSubject(map.get("subject"));
			multiPartEmail.setMsg(map.get("msg"));
			
			//如果有附件
			if(file != null){
				//创建附件
				EmailAttachment emailAttachment = new EmailAttachment();
				//封装附件的位置
				emailAttachment.setPath(file.getPath());
				//封装附件的标题
				emailAttachment.setName(file.getName());
				
				//将附件加入到上述的邮件中
				multiPartEmail.attach(emailAttachment);
			}
			
			//发送邮件
			multiPartEmail.send();
			
			response.setContentType("text/html;charset=UTF-8");
			PrintWriter pw = response.getWriter();
			pw.write("");
			
		} catch (Exception e) {
			e.printStackTrace();
		}	
	}
	private File doAttachment(HttpServletRequest request) throws Exception{
		File file = null;
		DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
		ServletFileUpload servletFileUpload = new ServletFileUpload(diskFileItemFactory); 
		servletFileUpload.setHeaderEncoding("UTF-8");
		List fileItemList = servletFileUpload.parseRequest(request);
		for(FileItem fileItem : fileItemList){
			if(fileItem.isFormField()){
				String fieldName = fileItem.getFieldName();
				String fieldValue = fileItem.getString("UTF-8");
				//收集fieldName和fieldValue
				map.put(fieldName,fieldValue);
			}else{
				String name = fileItem.getName();
				File temp = new File(name);
				String realFileName = temp.getName();
				String uploadPath = this.getServletContext().getRealPath("/WEB-INF/upload");
				//封装上传文件保存的目录
				file = new File(uploadPath + "/" + realFileName);
				fileItem.write(file);
				fileItem.delete();
			}
		}
		return file;
	}
	private static String get163password() throws Exception{
		File file = new File("e:/163password.txt");
		FileReader fileReader = new FileReader(file);
		BufferedReader bufferedReader = new BufferedReader(fileReader);
		return bufferedReader.readLine();
	}
}



 

 

你可能感兴趣的:(Servlet)