java mail 邮件创建--基本原理

来源:互联网 发布:java对象动态添加属性 编辑:程序博客网 时间:2024/06/05 08:44
  上篇提到了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对象的嵌套关系的方式实现,来组织和封装复杂邮件的各个部分。
0 0
原创粉丝点击