有時咱們會有這樣的需求:咱們須要一封看起來比較豐富的郵件,有文字、超連接、圖片等等而不是一堆文字的堆砌。有時咱們也須要在郵件裏添加一些附件。這樣的郵件幾乎全部的郵箱都支持,如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資源