Linux学习笔记
2016-03-14 12:23
519 查看
为大家介绍javaMail组件的使用,首先是发送普通的邮件
接下来的是带有附件的邮件,在这里我将使用的是oreilly组件进行上传
以上是使用javaMail组件来发送,如果大家有更好的方法希望留言哦!也可以把意见发到我的邮箱上 javaeeboy@qq.com !本人在这里求一种通过socket的方法来发送邮件的!谢谢
package javamail; import java.io.IOException; import java.util.*; import javax.mail.internet.*; import javax.mail.*; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class JavaMailServlet extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { InternetAddress[] address = null; request.setCharacterEncoding("GBK"); //使用qq服务器 String mailserver = "服务器的名称"; String From = request.getParameter("From"); String to = request.getParameter("To"); String Subject = request.getParameter("Subject"); String MessageText = request.getParameter("Message"); boolean sessionDebug = false; try{ //设定Mail的服务器和传输协议 Properties props = System.getProperties(); props.put("mail.host",mailserver); props.put("mail.transport.protocol","smtp"); props.put("mail.smtp.auth","true");//安全协议,若你不是使用免费服务器可不用 /* * 产生新的session服务 * 安全协议用内部类,参数表示QQ账号和密码 * 在普遍的免费服务器中大多数都要进行安全验证 */ javax.mail.Session mailSession = javax.mail.Session.getDefaultInstance(props,new Authenticator() { public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("账号","密码"); } }); mailSession.setDebug(sessionDebug); Message msg = new MimeMessage(mailSession); //设定传送邮件的发信人 msg.setFrom(new InternetAddress(From)); //设定传送邮件至收信人的信息 address = InternetAddress.parse(to,false); msg.setRecipients(Message.RecipientType.TO,address); //设定信中的主题 msg.setSubject(Subject); // 设定传送信的MIME Type msg.setText(MessageText); Transport.send(msg); System.out.println("邮件已顺利发送"); }catch(Exception e){ e.printStackTrace(); } } }
接下来的是带有附件的邮件,在这里我将使用的是oreilly组件进行上传
public class JavaMailServlet extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("gb2312"); InternetAddress[] address = null; MultipartRequest multi = new MultipartRequest(request,".",5*1024*1024,"gb2312"); String mailserver = "服务器"; String From = multi.getParameter("From"); String to = multi.getParameter("To"); String Subject = multi.getParameter("Subject"); String type = multi.getParameter("Type"); String messageText = multi.getParameter("Message"); String FileName = multi.getFilesystemName("FileName"); boolean sessionDebug = false; try{ Properties props = System.getProperties(); props.put("mail.host",mailserver); props.put("mail.transport.protocol","smtp"); props.put("mail.smtp.auth","true"); //产生新的session服务 javax.mail.Session mailSession = javax.mail.Session.getDefaultInstance(props,new Authenticator() { public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("账号","密码"); } }); mailSession.setDebug(sessionDebug); Message msg = new MimeMessage(mailSession); //设定传送邮件的发信人 msg.setFrom(new InternetAddress(From)); //设定传送邮件至收信人的信息 address = InternetAddress.parse(to,false); msg.setRecipients(Message.RecipientType.TO,address); //设定信中的主题 msg.setSubject(Subject); //设定送信的时间 msg.setSentDate(new Date()); if(FileName!=null){ File file = new File(FileName); //如果有附件,就将邮件内容部分存起来 MimeBodyPart mbp1 = new MimeBodyPart(); //设定邮件内容的类型为text/plain或text/html mbp1.setContent(messageText,type+";charset=gb2312"); //接下来是对附件进行处理 MimeBodyPart mbp2 = new MimeBodyPart(); FileDataSource fds = new FileDataSource(FileName); mbp2.setDataHandler(new DataHandler(fds)); mbp2.setFileName(MimeUtility.encodeText(fds.getName(),"gb2312","B")); //最后再将两者集成起来,当做一份邮件送出 Multipart mp = new MimeMultipart(); mp.addBodyPart(mbp1); mp.addBodyPart(mbp2); msg.setContent(mp); }else{ //若没有附件,当做一份邮件送出 msg.setContent(messageText,type+";charset=gb2312"); } Transport.send(msg); System.out.println("邮件已顺利发送"); }catch(Exception e){ e.printStackTrace(); } } }
以上是使用javaMail组件来发送,如果大家有更好的方法希望留言哦!也可以把意见发到我的邮箱上 javaeeboy@qq.com !本人在这里求一种通过socket的方法来发送邮件的!谢谢
相关文章推荐
- Linux 新手应该知道的 26 个命令
- iptraf 查看linux网络情况
- linux下LAMP安装与配置
- linux命令
- linux把文件压缩成.tar.gz的命令
- linux java 命令行引用jar包的方法 的整理
- 对Linux命令进一步学习vim(二)
- linux-vim编辑器笔记(长期持续更新)
- Linux并发(task_struct结构体)
- Linux g++编译 so文件出错:file not recognized: File trunccated
- Linux下设置MySQL编码
- Linux下PS命令详解 (转)
- Linux CPU affinity
- Linux 进程间通信-管道
- linux 学习之路(学linux必看)
- 你知道 Linux 内核是如何构建的吗?
- Linux 删除mysql数据库失败的解决方法
- 在Centos下用alternatives命令切换各个版本的jdk的方法
- linux系统优化
- Linux Makefile try-run