4000 J2EE初级学习之寒假进阶——JavaMail邮件
2018-03-04 14:01
453 查看
JavaMail
是Java提供的一组API,用来发送和接收邮件!
邮件相关的协议:
SMTP 25 ——> 简单的邮件传输协议POP3 110 ——> 邮局协议第三版
JavaMail
1.导包!
mail.jaractivition.jar
核心类:
1.Session
如果你得到了它,表示已经和服务器连接上了,与Connection的作用象相似!得到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(“TiHom_YZH”,”TiHom”);
}
};
Session session = Session.getInstance(props,auth);
2.MIMEMessage
它表示一个邮件对象,你可以调用它的setForm(),设置发件人、设置收件人、设置主题、设置正文!3.TransPort
它只有一个功能,发邮件!JavaMail代码:
package com.TiHom.javamail; import org.junit.jupiter.api.Test; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.*; import javax.mail.internet.*; import java.util.Properties; /** * @author TiHom */ public class JavaMail1 { @Test public void fun1() throws MessagingException { //得到Session Properties props = new Properties(); props.setProperty("mail.host","smtp.163.com"); props.setProperty("mail.smtp.auth","true"); //注意导包别导错,应该是javax.mail下的包 Authenticator auth = new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("TiHom_YZH","TiHom"); } }; Session session = Session.getInstance(props,auth); //创建MIMEMessage MimeMessage msg = new MimeMessage(session); //设置发件人 msg.setFrom(new InternetAddress("13652493839@163.com")); //设置收件人 msg.setRecipients(MimeMessage.RecipientType.TO,"980406086@qq.com"); //设置抄送 msg.setRecipients(Message.RecipientType.CC,""); //设置暗送 msg.setRecipients(Message.RecipientType.BCC,""); msg.setSubject("这是来着我自己的邮件"); msg.setContent("这就是一封垃圾邮件!","text/html;charset=utf-8"); //发 Transport.send(msg); } /** * 带有附件的邮件 */ public void fun2() throws Exception{ //得到Session Properties props = new Properties(); props.setProperty("mail.host","smtp.163.com"); props.setProperty("mail.smtp.auth","true"); //注意导包别导错,应该是javax.mail下的包 Authenticator auth = new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("TiHom_YZH","TiHom"); } }; Session session = Session.getInstance(props,auth); //创建MIMEMessage MimeMessage msg = new MimeMessage(session); //设置发件人 msg.setFrom(new InternetAddress("13652493839@163.com")); //设置收件人 msg.setRecipients(MimeMessage.RecipientType.TO,"980406086@qq.com"); msg.setSubject("这是来着我自己的邮件有附件"); /* * 当发送包含附件的邮件时,邮件体就为多部件形式! * 1.创建一个多部件的部件内容!MimeMultipart * MimeMultipart就是一个集合,用来装载多个主体部件! * 2.我们需要创建2个主体部件,一个是文本内容的,一个是附件的 * 主体部件叫做MimeBodyPart * 3.把MimeMultipart设置给MimeMessage的内容! */ //创建多部件内容 MimeMultipart list = new MimeMultipart(); //创建MimeBodyPart MimeBodyPart part1 = new MimeBodyPart(); //这是主体部件的内容 part1.setContent("这是一封包含附件的垃圾邮件!","text/html;charset=utf-8"); //把主体部件添加到集合中 list.addBodyPart(part1); //再创建MimeBodyPart MimeBodyPart part2 = new MimeBodyPart(); //设置附件的内容 DataHandler dh = new DataHandler(new FileDataSource("")); part2.setDataHandler(dh); //设置显示的文件名称,其中encodeText用来处理中文乱码问题 part2.setFileName(MimeUtility.encodeText("大美女.jpg")); list.addBodyPart(part2); //把它设置给邮件做为邮件内容 msg.setContent(list); //发 Transport.send(msg); } }
还有base64编码
package com.TiHom.javamail; import org.junit.jupiter.api.Test; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import java.io.IOException; /** * @author TiHom */ public class Demo1 { @Test public void fun1() throws IOException { //BASE64编码 String s = "username"; BASE64Encoder encoder = new BASE64Encoder(); s = encoder.encode(s.getBytes("UTF-8")); //BASE64解码 BASE64Decoder decoder = new BASE64Decoder(); byte[] bytes = decoder.decodeBuffer("dX"); System.out.println(new String(bytes,"UTF-8")); } }
相关文章推荐
- J2EE初级学习之寒假进阶——文件上传和下载
- J2EE初级学习之寒假进阶——动态代理和代理工厂
- J2EE初级学习之寒假进阶——类加载器
- J2EE初级学习之寒假进阶——装饰者模式
- JavaMail学习笔记-1(简单纯文本的邮件发送)
- J2EE进阶学习——Spring框架(七):连接池配置和使用
- J2EE进阶学习——Mybatis(二):入门使用(案例)
- JavaMail学习笔记-2(HTML格式的邮件发送)
- JavaMail学习笔记——JavaMail 接收邮件
- J2EE初级学习项目——jsp+jdbc+servlet+MVC开发模式实现的小项目
- 【javaMail】赵雅智_javaMail(3)为什么要学习和如何学习邮件开发
- J2EE进阶学习——Spring框架(八):事务管理
- .NET进阶学习之使用ASP.NET两种发送邮件的方法
- J2EE进阶学习——Spring框架(九):分模块开发
- JavaMail学习6 发送邮件
- J2EE进阶学习——Spring框架(一):Spring简介和IOC简介
- JavaMail学习笔记3——JavaMail 接收邮件
- J2EE进阶学习——Spring框架(五):AOP
- J2EE初级学习项目——JSP+Servlet+JavaBean开发模式+Filter+(Listener)+Jdbc的用户登录注册系统
- JavaMail学习(一)理解邮件传输协议