MIME協議(四) -- MIME消息的頭字段


MIME消息的頭字段

4.1  Content-Type

對於表示某個具體資源的MIME消息,它的消息頭中需要指定資源的數據類型;對於MIME組合消息,它的消息頭中需要指定組合關系。具體資源的數據類型和組合消息的組合關系,都是通過消息頭中的Content-Type頭字段來指定的。Content-Type字段中的內容以“主類型/子類型”的形式出現,主類型有text、image、audio、video、application、multipart、message等,分別表示文本、圖片、音頻、視頻、應用程序、組合結構、消息等。每個主類型下面都有多個子類型,例如text主類型包含plain、html、xml、css等子類型。multipart主類型用於表示MIME組合消息,它是MIME協議中最重要的一種類型。一封MIME郵件中的MIME消息可以有三種組合關系:混合、關聯、選擇,它們對應MIME類型如下:

—  multipart/mixed

     表示消息體中的內容是混和組合類型,內容可以是文本、聲音和附件等不同郵件內容的混和體,例如圖5中的整封郵件的MIME類型就必須定義為multipart/mixed。

 

—  multipart/related

     表示消息體中的內容是關聯(依賴)組合類型,例如圖5中的郵件正文要使用HTML代碼引用內嵌的圖片資源,它們組合成的MIME消息的MIME類型就應該定義為multipart/related,表示其中某些資源(HTML代碼)要引用(依賴)另外的資源(圖像數據),引用資源與被引用的資源必須組合成multipart/related類型的MIME組合消息。

 

—  multipart/alternative

     表示消息體中的內容是選擇組合類型,例如一封郵件的郵件正文同時采用HTML格式和普通文本格式進行表達時,就可以將它們嵌套在一個multipart/alternative類型的MIME組合消息中。這種做法的好處在於如果郵件閱讀程序不支持HTML格式時,可以采用其中的文本格式進行替代。

 

一封最復雜的電子郵件的基本情況為:含有郵件正文和郵件附件,郵件正文可以同時使用HTML格式和普通文本格式表示,並且HTML格式的正文中又引用了其他的內嵌資源。對於這種最復雜的電子郵件,可以采用如圖6所示的MIME消息結構進行描述。

圖6

從圖6中可以看出,如果要在郵件中要添加附件,就必須將整封郵件的MIME類型定義為multipart/mixed;如果要在HTML格式的正文中引用內嵌資源,那就要定義multipart/related類型的MIME消息;如果普通文本內容與HTML文本內容共存,那就要定義multipart/alternative類型的MIME消息。

注意:如果整封郵件中只有普通文本內容與HTML文本內容,那么整封郵件的MIME類型則應定義為multipart/ alternative;如果整封郵件中包含有HTML文本內容和內嵌資源,但不包含附件,那么整封郵件的MIME類型則應定義為multipart/related。

在Content-type頭字段中除了可以定義消息體的MIME類型外,還可以在MIME類型后面包含相應的屬性,屬性以“屬性名=屬性值”的形式出現,屬性與MIME類型之間采用分號(;)分隔,如下所示:

Content-Type:multipart/mixed;boundary="----=_NextPart_000_0050_01C"

常用的屬性如表1所示。

表1

  

  

    

text

charset

用於說明文本內容的字符集編碼

image

name

用於說明圖片文件的文件名

application

name

用於說明應用程序的文件名

multipart

boundary

用於定義MIME消息之間的分隔符

 

4.2  其他頭字段

除了Content-Type頭字段之外,MIME協議中還定義Content- Transfer-Encoding、Content-Disposition、Content-ID、Content-Location、Content-Base等幾個重要的頭字段,這幾個頭字段需要與Content-type頭字段配合使用,它們的作用如下:

—  Content-Transfer-Encoding頭字段

     Content-Transfer-Encoding頭字段用於指定MIME消息體中的內容所采用的郵件編碼方式,詳細細節請參看4節的講解。

 

—  Content-Disposition頭字段

     Content-Disposition頭字段用於指定郵件閱讀程序處理數據內容的方式,有inline和attachment兩種標准方式,inline表示直接處理,而attachment表示當做附件處理。如果將Content-Disposition設置為attachment,在其后還可以指定filename屬性,如下所示:

Content-Disposition: attachment; filename="1.bmp"

上面的MIME頭字段表示MIME消息體的內容為郵件附件,附件名"1.bmp"。

 

—  Content-ID頭字段

     Content-ID頭字段用於為“multipart/related”組合消息中的內嵌資源指定一個唯一標識號,在HTML格式的正文中可以使用這個唯一標識號來引用該內嵌資源。例如,假設將一個表示內嵌圖片的MIME消息的Content-ID頭字段設置為如下形式:

 

Content-ID: it315logo_gif

 

那么,在HTML正文中就需要使用如下HTML語句來引用該圖片資源:

<img src="cid:it315logo_gif">

 

注意,在引用Content-ID頭字段標識的內嵌資源時,要在資源的唯一標識號前面加上“cid:”,以說明要采用唯一標識號對資源進行引用。

 

—  Content-Location頭字段

     Content-Location頭字段用於為內嵌資源設置一個URI地址,這個URI地址可以是絕對或相對的。當使用Content- Location頭字段為一個內嵌資源指定一個URI地址后,在HTML格式的正文中也可以使用這個URI來引用該內嵌資源。例如,假設將一個表示內嵌圖片的MIME消息的Content- Location頭字段設置為如下形式:

 

Content-Location:http://www.it315.org/images/it315logo.gif

 

那么,在HTML正文中就可以使用如下HTML語句來引用該圖片資源:

<img src="http://www.it315.org/images/it315logo.gif">

 

—  Content-Base頭字段

     Content-Base頭字段用於為內嵌資源設置一個基准路徑,只有這樣,Content-Location頭字段中設置的URI才可以采用相對地址。例如,假設將一個表示內嵌圖片的MIME消息的Content-Base和Content-Location頭字段設置為如下形式:

 

Content-Base: http://www.it315.org/images/

Content-Location: it315logo.gif 

 

那么,內嵌資源的完整路徑就是Content-Base頭字段設置的基准路徑與Content-Location頭字段設置的相對路徑相加的結果,在HTML正文中就可以使用如下HTML語句來引用該圖片資源:

<img src="http://www.it315.org/images/it315logo.gif">

 

轉自 :https://www.cnblogs.com/dusthunter/archive/2013/02/03/2890691.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM