发送带附件的邮件(包括文件上传)
public class SendAttachment extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 设置是163邮箱的地址 String host="smtp.163.com"; // 设置邮箱账户名称 String accountName="NutsISA"; // 设置邮箱账户密码 String password="******"; // 上传的附件 File uploadedFile=null; // 发件个地址 String from=""; // 收件人地址 String to=""; // 邮件主题 String subject=""; // 邮件内容 String content=""; // 把附件内容上传到服务器 //判断出提交过来的表单是否为文件上传表单,如果不是文件上传表单,在后续的处理中就不再用文件上传功能来处理这个表单 boolean isMultipart=ServletFileUpload.isMultipartContent(request); if(isMultipart){ FileItemFactory factory=new DiskFileItemFactory(); ServletFileUpload upload=new ServletFileUpload(factory);//构造一个文件上传处理对象 Iterator items; try{ items=upload.parseRequest(request).iterator();//解析出表单中提交的所有文件内容 while(items.hasNext()){ FileItem item=(FileItem)items.next(); if(!item.isFormField()){ // 取出上传文件的名称 String name=item.getName(); String fileName=name.substring(name.lastIndexOf('\\')+1,name.length()); //上传到服务器以后存储的路径(上传的文件将被存储到当前应用项目的fileName字符串表示的文件夹中) String path=request.getRealPath(fileName); // 上传文件 uploadedFile=new File(path); item.write(uploadedFile); }else if(item.isFormField()){ // 下面取出表单中各个输入域的值 if(item.getFieldName().equals("from")){ from=item.getString(); }else if(item.getFieldName().equals("to")){ to=item.getString(); }else if(item.getFieldName().equals("subject")){ subject=item.getString(); }else if(item.getFieldName().equals("content")){ content=item.getString(); } } } }catch(Exception e){ e.printStackTrace(); } } // 设置邮件信息 AttachmentSender sender=new AttachmentSender(host,accountName,password); sender.setFrom(from);//设置发件人 sender.setTo(to);//设置收件人 sender.setSubject(subject);//设置主题 sender.setContent(content);//设置正文 if(uploadedFile != null){ String attachement=request.getRealPath(uploadedFile.getName()); sender.addAttachment(attachement); } // 打印发送邮件结果 response.setContentType("text/html"); response.setCharacterEncoding("gb2312"); PrintWriter out=response.getWriter(); if(sender.send()){ out.print("<font size='1'>邮件发送成功!</font><br>"); }else{ out.print("<font size='1'>邮件发送失败!</font><br>"); } // 发送邮件以后,删除上传文件 if(uploadedFile.exists()) uploadedFile.delete(); } }