有时咱们会有这样的需求:咱们须要一封看起来比较丰富的邮件,有文字、超连接、图片等等而不是一堆文字的堆砌。有时咱们也须要在邮件里添加一些附件。这样的邮件几乎全部的邮箱都支持,如16三、新浪、搜狐、QQ(好像搜狐不支持本地上传的图片)。但是在这些邮件的背后有什么咱们并不知道,下面让咱们先来了解一下邮件的组成。html
从图中能够看出一封邮件有两部分组成:整封邮件的MIMe消息头和整封邮件的MIMe消息体。spa
其中MIMe消息头包含了邮件的发送者、接收者等信息。从上图咱们能够看出MIMe消息体包含邮件的内容(正文和附件),它的类型由邮件头的“Content-Type”域指出。常见的简单类型有text/plain(纯文本)和text/html(超文本)。而正文和附件有包含消息头和消息体两部分。orm
从邮件的结构能够看出,每一个邮件的每一个部分都包含两个部分:消息头和消息体。消息头通常说明消息体的类型(multipart类型),在邮件中常见的有如下三种:multipart/mixed, multipart/related和multipart/alternative,以下图所示:htm
能够看出,若是在邮件中要添加附件,必须定义multipart/mixed段;若是存在内嵌资源,至少要定义multipart/related段;若是纯文本与超文本共存,至少要定义multipart/alternative段。什么是“至少”?举个例子说,若是只有纯文本与超文本正文,那么在邮件头中将类型扩大化,定义为multipart/related,甚至multipart/mixed,都是容许的。图片
说明:ip
以上图片所有来源于张孝祥Java邮件开发详解ppt资源