java mail 邮件创建--基本原理
2016-04-30 08:06
489 查看
上篇提到了JAF,那么什么是JAF呢?JAF全称是javabeans activations framework ,也就是javabeans的激活框架,是一个专门的数据处理框架,它用于封装数据,并为应用程序提供访问和操作数据的接口,javamail api可以利用JAF从某种数据源中读取数据和获取数据的MIME类型,并且用这些数据生成MIME消息中的消息头和消息体。
JAF的主要作用就是让java应用程序知道如何对于一个数据源进行查看,编辑和打印,等等操作。JAF封装的数据,应用程序可以通过JAF的接口完成下面的功能:
访问数据,获取数据类型 ,获知可对数据进行的各种操作,用户对于数据进行某种操作时,自动创建执行该操作的软件部件的实例对象。
介绍了JAF,那么邮件创建的基本原理是什么呢?其实无论是纯文本的邮件还是嵌附近的邮件都是只是使用了java mail api中的少数几个类。
java mail api使用java mail message 类来创建一封邮件,message是一个抽象类,应用程序需要使用其实现子类javax.mail.internet.MimeMessage来创建message类的实例对象。
但是如果仅仅是创建只含有文本的内容,那么只需要使用MimeMessage类即可,但是如果创建的是含有附件的,那么久需要使用到javamail api中的MimeMessage,javax.mail.internet.MimeBodyPart 和 javax.mail.internet.MimeMultipart等类。
其中MimeMessage表示整封邮件;
MimeBodyPart表示邮件的一个MIME消息
MimeMultipart表示一个由多个MIME消息组合成的组合MIME消息。
如图,一封复杂的邮件不仅仅单单使用了MimeMessage,还需要使用MimeBodyPart和MimeMultipart。MimeMultipart用来组合多个MIME消息,其中的每个MIME消息使用MimeBodyPart对象来表示,并且通过MimeMultipart.addBodyPart(BodyPart part)方法来实现添加到MimeMultipart里面。
如果MimeBodyPart表示的是一个嵌套的组合对象,可以再次使用MimeBodyPart.setContent(Multipart part)来进行添加。
可见,不管邮件体的关系如何复杂,我们都是可以使用MimeBodyPart和MimeMultipart对象的嵌套关系的方式实现,来组织和封装复杂邮件的各个部分。
JAF的主要作用就是让java应用程序知道如何对于一个数据源进行查看,编辑和打印,等等操作。JAF封装的数据,应用程序可以通过JAF的接口完成下面的功能:
访问数据,获取数据类型 ,获知可对数据进行的各种操作,用户对于数据进行某种操作时,自动创建执行该操作的软件部件的实例对象。
介绍了JAF,那么邮件创建的基本原理是什么呢?其实无论是纯文本的邮件还是嵌附近的邮件都是只是使用了java mail api中的少数几个类。
java mail api使用java mail message 类来创建一封邮件,message是一个抽象类,应用程序需要使用其实现子类javax.mail.internet.MimeMessage来创建message类的实例对象。
但是如果仅仅是创建只含有文本的内容,那么只需要使用MimeMessage类即可,但是如果创建的是含有附件的,那么久需要使用到javamail api中的MimeMessage,javax.mail.internet.MimeBodyPart 和 javax.mail.internet.MimeMultipart等类。
其中MimeMessage表示整封邮件;
MimeBodyPart表示邮件的一个MIME消息
MimeMultipart表示一个由多个MIME消息组合成的组合MIME消息。
如图,一封复杂的邮件不仅仅单单使用了MimeMessage,还需要使用MimeBodyPart和MimeMultipart。MimeMultipart用来组合多个MIME消息,其中的每个MIME消息使用MimeBodyPart对象来表示,并且通过MimeMultipart.addBodyPart(BodyPart part)方法来实现添加到MimeMultipart里面。
如果MimeBodyPart表示的是一个嵌套的组合对象,可以再次使用MimeBodyPart.setContent(Multipart part)来进行添加。
可见,不管邮件体的关系如何复杂,我们都是可以使用MimeBodyPart和MimeMultipart对象的嵌套关系的方式实现,来组织和封装复杂邮件的各个部分。
相关文章推荐
- Eclipse打不开的问题及解决办法
- 如何在MyEclipse中管理JVM内存?
- 《Java中方法的重写》
- 《Java中的包机制》
- JAVA_OPTS设置
- Java三大主流开源工作流引擎技术分析
- Java三大主流开源工作流引擎技术分析
- java实现定时任务
- 将字符串编码成数值,求数值最大和问题(今日头条笔试题)
- Java读写XML文件(DOM4J包)
- SpringMVC运行原理
- (37)Spring Boot集成EHCache实现缓存机制【从零开始学Spring Boot】
- Java异常处理方案【总结篇】
- web day20 单表练习之分页,java web监听器, 国际化
- java内存模型-JMM
- JavaWeb之Servlet day02
- spring 依赖注入DI-个人学习笔记
- java利用递归解决八皇后问题
- 求方程的近似解,不用库函数求一个数的平方根
- spring整合Google Kaptcha验证码的使用