java发送email带附件完整的web工程
2016-11-14 21:54
423 查看
package javaemail.bean; /** * Created by Administrator on 2016/11/10. * 邮件信息数据 */ public class EmailMessageBean { private String subject;//标题 private String content;//内容 private String fujian;//附件 private String shoujihao;//手机号 private String zhaopinxinxi;//招聘信息 public String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public String getFujian() { return fujian; } public void setFujian(String fujian) { this.fujian = fujian; } public String getShoujihao() { return shoujihao; } public void setShoujihao(String shoujihao) { this.shoujihao = shoujihao; } public String getZhaopinxinxi() { return zhaopinxinxi; } public void setZhaopinxinxi(String zhaopinxinxi) { this.zhaopinxinxi = zhaopinxinxi; } }
package javaemail.servlet; import javaemail.bean.EmailMessageBean; import javaemail.utils.EmailUtil; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.IOUtils; import javax.mail.MessagingException; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Created by Administrator on 2016/11/10. */ public class SendEmailServlet extends javax.servlet.http.HttpServlet { protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException { DiskFileItemFactory factory=new DiskFileItemFactory(); ServletFileUpload upload=new ServletFileUpload(factory); try { Map<String,String> result=new HashMap<>(); List<FileItem> items = upload.parseRequest(request); for(FileItem item:items){ if(!item.isFormField()){ //将文件内容保存到磁盘上。 String path="/upload"; //获取真实路径 path=request.getSession().getServletContext().getRealPath(path); String filename=""; filename=item.getName();//原始文件名 filename=(new Date()).getTime()+"." + FilenameUtils.getExtension(filename); //文件重命名 FileOutputStream os = new FileOutputStream(path+ File.separator+filename); if(filename.endsWith(".jpg")||filename.endsWith(".pdf") ||filename.endsWith(".doc")||filename.endsWith(".txt")){ IOUtils.copy(item.getInputStream(),os); os.flush(); os.close(); result.put(item.getFieldName(),"/upload/"+filename);} else { return; } }else{ result.put(item.getFieldName(), IOUtils.toString(item.getInputStream(),"utf-8")) ; } } EmailMessageBean messageBean=new EmailMessageBean(); messageBean.setShoujihao(result.get("shoujihao")); messageBean.setZhaopinxinxi(result.get("yingpin")); messageBean.setContent("招聘"); messageBean.setSubject("招聘"); String path=request.getSession().getServletContext().getRealPath(result.get("file")); messageBean.setFujian(path); boolean sendresult= EmailUtil.sendEmail(messageBean); String url="/msg.jsp"; if(sendresult){ request.getSession().setAttribute("msgtitle","投递成功"); }else { request.getSession().setAttribute("msgtitle","投递失败"); } response.sendRedirect(url); } catch (FileUploadException e) { e.printStackTrace(); } catch (MessagingException e) { e.printStackTrace(); } } protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException { doPost(request,response); } }
package javaemail.servlet; import javaemail.bean.EmailMessageBean; import javaemail.utils.EmailUtil; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * Created by Administrator on 2016/11/10. */ public class ServletSimpleEmail extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); String shoujihao=request.getParameter("shoujihao"); String neirong=request.getParameter("nerrong"); String lianxiren=request.getParameter("lianxiren"); String title=request.getParameter("title"); EmailMessageBean emailMessageBean=new EmailMessageBean(); emailMessageBean.setShoujihao(shoujihao); emailMessageBean.setContent(neirong); emailMessageBean.setSubject(title); emailMessageBean.setZhaopinxinxi(lianxiren); boolean result = EmailUtil.sendSimpleEmail(emailMessageBean); String url="/msg.jsp"; if(result){ request.getSession().setAttribute("msgtitle","反馈成功"); }else { request.getSession().setAttribute("msgtitle","反馈失败"); } response.sendRedirect(url); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } }
package javaemail.utils; /** * Created by Administrator on 2016/11/10. */ import javaemail.bean.EmailMessageBean; import javax.activation.DataHandler; import javax.activation.DataSource; import javax.activation.FileDataSource; import javax.mail.*; import javax.mail.internet.*; import java.io.*; import java.util.Properties; import java.util.ResourceBundle; /** * Created by Administrator on 2016/11/10. */ public class EmailUtil { private static final String USERNAME; private static final String PASSWORD; private static final String HOST; private static final String TOADDRESS; private static final String AUTH; private static final String TRANSPORT; private static Properties properties; static { properties=new Properties(); USERNAME= ResourceBundle.getBundle("emailpractice").getString("username"); PASSWORD= ResourceBundle.getBundle("emailpractice").getString("password"); HOST=ResourceBundle.getBundle("emailpractice").getString("mail.host"); TOADDRESS=ResourceBundle.getBundle("emailpractice").getString("toadress"); AUTH=ResourceBundle.getBundle("emailpractice").getString("mail.smtp.auth"); TRANSPORT=ResourceBundle.getBundle("emailpractice").getString("mail.transport.protocol"); properties.setProperty("mail.smtp.auth", AUTH); properties.setProperty("mail.transport.protocol", TRANSPORT); properties.setProperty("mail.host",HOST); } /* * @param emailMessageBean * @return * @throws MessagingException * @throws UnsupportedEncodingException * 带附件的邮件发送 注意《的转义 和上传文件的过滤 4000 */ public static boolean sendEmail(EmailMessageBean emailMessageBean) throws MessagingException, UnsupportedEncodingException { Session session = Session.getInstance(properties, new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(USERNAME, PASSWORD); } }); session.setDebug(true); Message message = new MimeMessage(session); message.setSubject("应聘信息"); message.setFrom(new InternetAddress("\""+ MimeUtility.encodeText("应聘信息")+"\"<"+USERNAME+">")); message.setRecipients(MimeMessage.RecipientType.TO, new Address[]{new InternetAddress(TOADDRESS)}); //邮件正文 MimeMultipart multipart = new MimeMultipart("mixed"); message.setContent(multipart); /* * 创建邮件的内容 * 包括一个邮件正文和一个附件 */ MimeBodyPart content = new MimeBodyPart(); //邮件内容 MimeBodyPart attch1 = new MimeBodyPart(); //附件1 //将邮件内容添加到multipart中 multipart.addBodyPart(content); multipart.addBodyPart(attch1); //设置附件1 File file1= new File(emailMessageBean.getFujian()); DataSource ds1 = new FileDataSource(file1); DataHandler dh1 = new DataHandler(ds1); attch1.setDataHandler(dh1); String filename = emailMessageBean.getFujian(); String ends = filename.substring(filename.length()-3, filename.length()); attch1.setFileName("jianli."+ends); /* * 设置内容(正文)---是一个复杂体 * 包括HTML正文 */ MimeMultipart bodyMultipart = new MimeMultipart("related"); content.setContent(bodyMultipart); //构造正文 MimeBodyPart htmlBody = new MimeBodyPart(); bodyMultipart.addBodyPart(htmlBody); //设置HTML正文 htmlBody.setContent("<span style='color:red;font-size:16px'>求职信息</span><br><h4>职位:" +emailMessageBean.getZhaopinxinxi()+"</h4><br>" +"<h4>联系方式"+emailMessageBean.getShoujihao()+"</h4><br>" , "text/html;charset=UTF-8"); message.saveChanges(); //生成邮件 Transport.send(message); return true; } /** * 不带附件发送 * 邮件发送地址 服务器地址在配置文件可以配置 * @param emailMessageBean * @return */ public static boolean sendSimpleEmail(EmailMessageBean emailMessageBean){ Session session = Session.getInstance(properties, new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(USERNAME, PASSWORD); } }); session.setDebug(true); Message message = new MimeMessage(session); try{ message.setSubject("反馈信息"); message.setFrom(new InternetAddress("\""+ MimeUtility.encodeText("反馈信息")+"\"<"+USERNAME+">")); message.setRecipients(MimeMessage.RecipientType.TO, new Address[]{new InternetAddress(TOADDRESS)}); //邮件正文 MimeMultipart multipart = new MimeMultipart("mixed"); message.setContent(multipart); MimeBodyPart content = new MimeBodyPart(); //邮件内容 multipart.addBodyPart(content); MimeMultipart bodyMultipart = new MimeMultipart("related"); content.setContent(bodyMultipart); //构造正文 MimeBodyPart htmlBody = new MimeBodyPart(); bodyMultipart.addBodyPart(htmlBody); //设置HTML正文 htmlBody.setContent("<span style='color:red;font-size:16px'>反馈信息</span><br><h4>标题:"+emailMessageBean.getSubject() +"</h4><br>"+"<h4>联系方式:"+emailMessageBean.getShoujihao()+"</h4><br>"+ "<h4>联系方式:"+emailMessageBean.getZhaopinxinxi()+"</h4><br>"+"<h4>反馈内容:" +emailMessageBean.getContent()+"</h4><br>" , "text/html;charset=UTF-8"); message.saveChanges();//生成邮件 Transport.send(message); } catch (Exception e){ e.printStackTrace(); return false; } return true; } }
<%-- Created by IntelliJ IDEA. User: Administrator Date: 2016/11/10 Time: 16:32 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <% String conturl=request.getContextPath(); %> <link href="<%=conturl %>/static/bootstrap-3.3.5-dist/css/bootstrap.min.css" rel="stylesheet"> <script type="text/javascript" charset="utf-8" src="<%=conturl %>/static/bootstrap-3.3.5-dist/js/jquery.min.js"></script> <html> <head> <title>留言</title> </head> <style type="text/css" > .formmain{ width: 500px; height: 600px; margin-left: 500px; margin-top: 100px; } </style> <body> <div class="formmain" style="width: 300px"> <form method="post" action="<%=conturl%>/sendsimpleEmail" id="sendemail"> <label >留言标题</label> <input type="text" name="title" id="title" class="form-control"/> <div class="row"> <div class="col-xs-12"> <h3></h3> </div> </div> <label >联系人</label> <input type="text" name="lianxiren" id="lianxiren" class="form-control"/> <div class="row"> <div class="col-xs-12"> <h3></h3> </div> </div> <label >联系电话</label> <input type="text" name="shoujihao" class="form-control" id="shoujihao"> <div class="row"> <div class="col-xs-12"> <h3></h3> </div> </div> <label >留言内容</label> <textarea cols="5" class="form-control" name="nerrong" id="neirong"> </textarea> <div class="row"> <div class="col-xs-12"> <h3></h3> </div> </div> <button class="btn btn-primary" type="button" onclick="sendemail();">留言</button> </form> </div> </body> </html> <script type="text/javascript"> function sendemail(){ var $liuyan=$(document.getElementById("sendemail")); if(cheched()){ $liuyan.submit(); } } function cheched() { var $title=$(document.getElementById("title")); var $shoujihao=$(document.getElementById("shoujihao")); var $lianxiren=$(document.getElementById("lianxiren")); var $neirong=$(document.getElementById("neirong")); if($title.val()==""){ alert("标题不能为空"); return false; } var regexp= /^1[3|4|5|7|8][0-9]\d{8}$/ ; if(!regexp.test($shoujihao.val())){ alert("手机号格式不正确"); return false; }if($lianxiren.val()==""){ alert("联系人不能为空"); return false; } if($neirong.val()==""){ alert("内容不能为空"); return false; } return true; } </script>
<%-- Created by IntelliJ IDEA. User: Administrator Date: 2016/11/10 Time: 11:45 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <% String conturl=request.getContextPath(); %> <link href="<%=conturl %>/static/bootstrap-3.3.5-dist/css/bootstrap.min.css" rel="stylesheet"> <script type="text/javascript" charset="utf-8" src="<%=conturl %>/static/bootstrap-3.3.5-dist/js/jquery.min.js"></script> <html> <head> <title>招聘</title> </head> <style type="text/css" > .formmain{ width: 500px; height: 600px; margin-left: 500px; margin-top: 100px; } </style> <body> <div class="formmain" style="width: 300px"> <form method="post" action="<%=conturl%>/sendEmail" enctype="multipart/form-data" id="sendemail"> <label >应聘人员</label> <input type="text" name="yingpin" id="yingpin" class="form-control"/> <div class="row"> <div class="col-xs-12"> <h3></h3> </div> </div> <label >联系手机</label> <input type="text" name="shoujihao" id="shoujihao" class="form-control"/> <div class="row"> <div class="col-xs-12"> <h3></h3> </div> </div> <label >用户简历</label> <input type="file" name="file" class="form-control" id="jianli" onchange="getPhotoSize(this);"><span>请上传.jpg,.txt,.pdf,.doc文件</span> <div class="row"> <div class="col-xs-12"> <h3></h3> </div> </div> <button class="btn btn-primary" type="button" onclick="sendemails();">发送简历</button> </form> </div> </body> </html> <script type="text/javascript"> function sendemails(){ var $yingpin=$(document.getElementById("sendemail")); if(cheched()){ $yingpin.submit(); } } function cheched() { var $yingpin=$(document.getElementById("yingpin")); var $shoujihao=$(document.getElementById("shoujihao")); var $jianli=$(document.getElementById("jianli")); if($yingpin.val()==""){ alert("招聘信息不能为空"); return false; } var regexp= /^1[3|4|5|7|8][0-9]\d{8}$/ ; if(!regexp.test($shoujihao.val())){ alert("手机号格式不正确"); return false; } if($shoujihao.val()==""){ alert("手机号格式不能为空"); return false; }if($jianli.val()==""){ alert("请上传简历"); return false; } return true; } function getPhotoSize(obj){ photoExt=obj.value.substr(obj.value.lastIndexOf(".")).toLowerCase();//获得文件后缀名 if(photoExt!='.jpg'&&photoExt!='.txt'&&photoExt!='.pdf'&&photoExt!='.doc'){ alert("请上传.jpg,.txt,.pdf,.doc文件!"); return false; } var fileSize = 0; var isIE = /msie/i.test(navigator.userAgent) && !window.opera; if (isIE && !obj.files) { var filePath = obj.value; var fileSystem = new ActiveXObject("Scripting.FileSystemObject"); var file = fileSystem.GetFile (filePath); fileSize = file.Size; }else { fileSize = obj.files[0].size; } fileSize=Math.round(fileSize/1024*100)/100; //单位为KB if(fileSize>=1000){ alert("简历最大尺寸为1MB,请重新上传!"); return false; } return true; } </script>
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <servlet> <servlet-name>sendEmailServlet</servlet-name> <servlet-class>javaemail.servlet.SendEmailServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>sendEmailServlet</servlet-name> <url-pattern>/sendEmail</url-pattern> </servlet-mapping> <servlet> <servlet-name>sendSimpleEmail</servlet-name> <servlet-class>javaemail.servlet.ServletSimpleEmail</servlet-class> </servlet> <servlet-mapping> <servlet-name>sendSimpleEmail</servlet-name> <url-pattern>/sendsimpleEmail</url-pattern> </servlet-mapping> </web-app>
配置文件
mail.smtp.auth=true mail.transport.protocol=smtp mail.host=smtp.163.com username=**********@163.com password =************
toadress=@qq.com
相关文章推荐
- java发送email带附件完整的web工程
- java发送email带附件完整的web工程
- java发送email带附件完整的web工程
- java发送email带附件完整的web工程
- java发送email带附件完整的web工程
- java mail发送邮件群发 带附件的发送(源代码+详细目录结构)java Email 发送实例
- Java中获取当前系统时间与发送带多个附件的email
- Java发送email 带附件
- Java发送电子邮件的完整代码,可发送附件
- [Java Web]stmp发送带附件邮件(附SSL版)
- java实现发送邮件可多个附件内嵌图片-commons-email使用(未测试)
- Java 邮件email 发送, 邮件内容、邮件附件 名称 乱码处理 完整版
- java实现发送邮件可多个附件内嵌图片-commons-email使用
- 实现javaEmail邮件发送功能并带有生成的pdf附件
- java发送Email,带附件
- 【java】实现发送带附件email
- 用java开发Email工具之发送邮件 (1)作者:冯睿
- 用php发送带附件的Email
- Java技巧:Java向Web站点发送POST请求
- Java向Web站点发送POST请求