有时我们会有这样的需求:我们需要一封看起来比较丰富的邮件,有文字、超链接、图片等等而不是一堆文字的堆砌。有时我们也需要在邮件里添加一些附件。这样的邮件几乎所有的邮箱都支持,如163、新浪、搜狐、QQ(好像搜狐不支持本地上传的图片)。可是在这些邮件的背后有什么我们并不知道,下面让我们先来了解一下邮件的组成。
一、复合邮件的整体结构图

从图中可以看出一封邮件有两部分组成:整封邮件的MIMe消息头和整封邮件的MIMe消息体。
其中MIMe消息头包含了邮件的发送者、接收者等信息。从上图我们可以看出MIMe消息体包含邮件的内容(正文和附件),它的类型由邮件头的“Content-Type”域指出。常见的简单类型有text/plain(纯文本)和text/html(超文本)。而正文和附件有包含消息头和消息体两部分。
二、MIMe中的组合关系
从邮件的结构可以看出,每个邮件的每个部分都包含两个部分:消息头和消息体。消息头一般说明消息体的类型(multipart类型),在邮件中常见的有以下三种:multipart/mixed, multipart/related和multipart/alternative,如下图所示:

可以看出,如果在邮件中要添加附件,必须定义multipart/mixed< http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPrbOo7vI57n7tObU2sTax7bXytS0o6zWwcnZ0qq2qNLlbXVsdGlwYXJ0L3JlbGF0ZWS2zqO7yOe5+7S/zsSxvtPrs6zOxLG+ubK05qOs1sHJ2dKqtqjS5W11bHRpcGFydC9hbHRlcm5hdGl2ZbbOoaPKssO0ysehsNbBydmhsaO/vtm49sD919PLtaOsyOe5+9a709C0v87Esb7T67OszsSxvtX9zsSjrMTHw7TU2tPKvP7Nt9bQvavA4NDNwKm087uvo6y2qNLlzqptdWx0aXBhcnQvcmVsYXRlZKOsyfXWwW11bHRpcGFydC88c3Ryb25nPm1peGVkPC9zdHJvbmc+o6y2vMrH1MrQ7bXEoaM8L3A+CjxoMj7I/aGi08q8/tfp1q+94bm5QVBJPC9oMj4KPHA+PGltZyBzcmM9"https://www.cppentry.com/upload_files/article/76/1_p7cr9__.jpg" alt="\">
从上图可以很清晰的看出各个对象之间的关系。
说明:
以上图片全部来源于张孝祥Java邮件开发详解ppt
附:
1.JavaMail开发jar包下载地址:http://download.csdn.net/download/zyh5540/6900667
2.参考代码下载地址:http://download.csdn.net/download/zyh5540/6907731