前面已经对邮件的发送和接收有了一定的认识,也对邮件的发送接收原理有了了解;
下面就来详细讲解邮件本身;
首先:复杂邮件的结构图:
(图片来源于)
附:MIME协议用于定义复杂邮件的格式,它可以表达多段平行的文本内容和非文本内容。
Content-Type:具体资源的数据类型和组合消息的组合关系,都是通过消息头中的Content-Tpe头字段来指定的。其内容以“主类型/子类型”的形式出现,主类型有:text,p_w_picpath,audio,video,application,multipart,message等。每个主类型下面都有很多个子类型,比如text下面就有plain,htmlm,xml,css等子类型。Multipart主类型用于表示MIME组合关系,它是MIME协议中最重要的一种类型。
一封MIME邮件中的MIME消息可以有三种组合关系:混合,关联,选择。对应的MIMe类型如下:
Multipart/mixed:表示消息体中的内容是混合组合类型,可以是文本,声音和附件等不同邮件内容的混合体。
Multipart/related:表示消息体中的内容是关联(依赖)组合类型,表示消息体中的某些内容,依赖另外的资源。
Multipart/alternative:选择组合类型。
其他头字段:
Content-Transfer-Encoding:用于指定编码方式。
Content-Disposition:用于指定邮件阅读程序处理数据内容的方式。
Content-ID:用于组合消息中的内迁资源制定的一个唯一表示号。
Content-Location:用来为内迁资源设置一个URI地址。
Content-Base:用来为内迁资源设置一个基准路径。
——————
以上便是一份完整复杂邮件的组成部分;对邮件这个对象有了大致的了解之后;就可以针对邮件的特点和和属性利用javamail来编写复杂的邮件;并将其发送以及接受……;当然还是离不开java提供的API;与邮件组织相关的API如图:
邮件组织结构相关的API:
(图片来源于)
MimeMessage类表示整封邮件。
MimeBodyPart类表示邮件的一个MIME消息。
MimeMultipart类表示一个由多个MIME消息组合成的组合MIME消息。
有了这些知识就可以编写代码了
然后,到邮箱查看是否有新邮件:如下:
注:javamail的邮件发送,其中的Session对象;不仅可以自己创建;也可以利用tomcat服务器的JNDI创建,只需要在tomcat中配置好相关的信息;在将JNDI容器中就会有所需要的Session对象;JNDI的原理类似于数据源;JNDI是一个容器,根据你的配置信息,创建的对象存放在JDNI容器中,等到使用的时候,通过一定类提供的方法就能取的所需的对象……JNDI的配置在tomcat的帮助文档中有说明!
转载于:https://blog.51cto.com/seasky09/1211344