JavaWeb 之邮件发送
2017-10-08 13:27
295 查看
1. 邮件协议概述
- SMTP(Simple Mail Transfer Protocol, 简单邮件传输协议) 发邮件协议;
- POP3(Post Office Protocol Version 3, 邮局协议第3版) 收邮件协议;
- IMAP(Internet Message Access Protocol, 因特网消息访问协议)收发邮件协议;
2. 邮件服务器名称
- SMTP 服务器的端口号为 25,服务器名称为
smtp.xxx.xxx
; - POP3 服务器的端口号为 110,服务器名称为
pop3.xxx.xxx
;
3. JavaMail 发邮件
3.1 导包
- mail.jar;
- activition.jar;
- J2EE javax.mail 包
3.2 核心类
- Session
-
如果得到了它,表示已经与服务器连接上了, 与 Connection 的作用相似.
- MimeMessage
-
它表示一个邮件对象,可以调用它的
setXxx()
方法,设置发件人,发件人,主题以及正文等; - TransPort
-
发邮件;
// 得到 Session, 需要使用 Session.getInstance(Properties, Authenticator); Properties props = new Properties(); props.setProperty("mail.host","smtp.163.com"); //设置服务器主机名 props.setProperty("mail.smtp.auth","true"); //设置是否需要验证 Authenticator auth = new Authenticator(){ protected PasswordAuthentication getPasswordAuthentication(){ return new PasswordAuthentication("用户名","密码"); } }; // 得到 session 对象 Session session = Session.getInstance(props,auth); try{ // 创建 MimeMessage MimeMessage msg = new MimeMessage(session); msg.setFrom(new InternetAddess("用户名@163.com")); // 设置发件人 msg.setRecipients(RecipientType.TO, "收件人@126.com"); // 设置收件人 msg.setRecipients(RecipientType.CC, "收件人@sohu.com"); // 设置抄送 msg.setRecipients(RecipientType.BCC, "收件人@sina.com"); // 设置暗送 msg.setSubject("这是一封测试邮件"); // 设置标题 // 第一种方式: 普通邮件 msg.setContent("下雨天","text/html;charset=utf-8"); //邮件内容 // 第二种方式: 带有附件的邮件 /* * 当发送包含附件的邮件时, 邮件体为多部件形式! * 1. 创建一个多部件的部件内容! MimeMultipart * MimeMultipart 就是一个集合, 用来装载多个主体部件! * 2. 我们需要创建两个主体部件, 一个是文本内容的, 另一个是附件; * 主体部件叫 MimeBodyPart * 3. 把 MimeMultipart 设置给 MimeMessage 的内容!! */ MimeMultipart list = new MimeMultipart(); // 创建多部分内容 // 创建 MimeBodyPart MimeBodyPart part2 = new MimeBodyPart(); // 设置主体部件的内容 part2.setContent("这是测试邮件","text/html;charset=utf-8"); // 把主体部件添加到集合中 list.addBodyPart(part2); // 创建第二个 MimeBodyPart MimeBodyPart part3 = new MimeBodyPart(); // 设置主体部件的内容 part3.attachFile(new File("c:/浮夸.mp3")); // 设置显示的文件名称, 其中 encodeText 用来处理中文乱码问题 part3.setFilename(MimeUtility.encodeText("浮夸.avi")); // 把主体部件添加到集合中 list.addBodyPart(part3); // 把多部件设置给邮件作为邮件的内容 msg.setContent(list); // 发送 Transport.send(msg); }catch(MessagingException e){ throw new RuntimeException(e); } // 使用 MailUtils 工具发送邮件 public void fun2() throws Exception{ // 1. 得到 Session 对象 Session session = MailUtils.createSession("smtp.163.com","用户名","密码"); // 2. 创建 Mail 对象 Mail mail = new Mail("发件地址","收件地址","邮件主题","邮件内容"); // 3. 创建附件对象 AttachBean ab = new AttachBean(new File("C:/浮夸.avi"),"浮夸.avi"); // 添加到 mail 中 mail.addAttach(ab); // 发送 MailUtils.send(session,mail); }
参考资料:
相关文章推荐
- JavaWeb中使用JavaMail实现发送邮件功能实例详解
- javaweb发送邮件
- java web 发送邮件
- 跟阿根一起学Java Web开发四:邮件发送与短信发送的实现
- JavaWeb基础—邮件发送
- Javaweb之发送邮件
- java web 邮件发送功能
- java web 发送邮件登录验证
- Java Web JavaMail 邮件发送
- Java Web - 日志-log4j(二)-- 将日志发送到邮件
- web基础---->java邮件的发送
- 关于Java Web 使用JavaMail创建邮件和发送邮件
- [Java Web]stmp发送带附件邮件(附SSL版)
- JavaWeb之邮件发送
- JavaWeb 发送 激活邮件功能
- Java发送邮件(带附件)
- java邮件第一篇-使用命令行发送简单邮件
- java 发送邮件 例子 (带附件的) 使用org.apache.commons.mail
- java quartz实现定时发送邮件
- java 发送邮件