Java邮件开发(二):使用JMail发送一封图文并茂且包含附件的邮件(上)

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

一、复合邮件的整体结构图

Java邮件开发(二):使用JMail发送一封图文并茂且包含附件的邮件(上)

    从图中可以看出一封邮件有两部分组成:整封邮件的MIMe消息头和整封邮件的MIMe消息体。

其中MIMe消息头包含了邮件的发送者、接收者等信息。从上图我们可以看出MIMe消息体包含邮件的内容(正文和附件),它的类型由邮件头的“Content-Type”域指出。常见的简单类型有text/plain(纯文本)和text/html(超文本)。而正文和附件有包含消息头和消息体两部分。


二、MIMe中的组合关系

从邮件的结构可以看出,每个邮件的每个部分都包含两个部分:消息头和消息体。消息头一般说明消息体的类型(multipart类型),在邮件中常见的有以下三种:multipart/mixed, multipart/related和multipart/alternative,如下图所示:

Java邮件开发(二):使用JMail发送一封图文并茂且包含附件的邮件(上)

可以看出,如果在邮件中要添加附件,必须定义multipart/mixed段;如果存在内嵌资源,至少要定义multipart/related段;如果纯文本与超文本共存,至少要定义multipart/alternative段。什么是“至少”?举个例子说,如果只有纯文本与超文本正文,那么在邮件头中将类型扩大化,定义为multipart/related,甚至multipart/mixed,都是允许的。

三、邮件组织结构API

Java邮件开发(二):使用JMail发送一封图文并茂且包含附件的邮件(上)

说明:

以上图片全部来源于张孝祥Java邮件开发详解ppt

你可能感兴趣的:(Java邮件开发(二):使用JMail发送一封图文并茂且包含附件的邮件(上))