轉自wiki
多用途互連網郵件擴充(MIME,Multipurpose Internet Mail Extensions)是一個互連網標準,它擴充了電子郵件標準,使其能夠支援非ASCII字元、二進位格式附件等多種格式的郵件訊息。這個標準被定義在RFC 2045、RFC 2046、RFC 2047、RFC 2048、RFC 2049等RFC中。 由RFC 822轉變而來的RFC 2822,規定電子郵件標準並不允許在郵件訊息中使用7位ASCII字元集以外的字元。正因如此,一些非英語字元訊息和二進位檔案,映像,聲音等非文字訊息都不能在電子郵件中傳輸。MIME規定了用於表示各種各樣的資料類型的符號化方法。 此外,在全球資訊網中使用的HTTP協議中也使用了MIME的架構。
內容類型(Content-Type),這個頭部領域用於指定訊息的類型。一般以下面的形式出現。
Content-Type: [type]/[subtype]; parameter
type有下面的形式。
- Text:用於標準化地表示的文本資訊,簡訊可以是多種字元集和或者多種格式的;
- Multipart:用於串連訊息體的多個部分構成一個訊息,這些部分可以是不同類型的資料;
- Application:用於傳輸應用程式資料或者位元據;
- Message:用於封裝一個E-mail訊息;
- Image:用於傳輸靜態圖片資料;
- Audio:用於傳輸音頻或者音聲資料;
- Video:用於傳輸動態影像資料,可以是與音頻編輯在一起的視頻資料格式。
subtype用於指定type的詳細形式。content-type/subtype配對的集合和與此相關的參數,將隨著時間而增長。為了確保這些值在一個有序而且公開的狀態下開發,MIME使用Internet Assigned Numbers Authority (IANA)作為中心的註冊機制來管理這些值。常用的subtype值如下所示:
- text/plain(純文字)
- text/html(HTML文檔)
- application/xhtml+xml(XHTML文檔)
- image/gif(GIF映像)
- image/jpeg(JPEG映像)【PHP中為:image/pjpeg】
- image/png(PNG映像)【PHP中為:image/x-png】
- video/mpeg(MPEG動畫)
- application/octet-stream(任意的位元據)
- application/pdf(PDF文檔)
- application/msword(Microsoft Word檔案)
- message/rfc822(RFC 822形式)
- multipart/alternative(HTML郵件的HTML形式和純文字形式,相同內容使用不同形式表示)
- application/x-www-form-urlencoded(使用HTTP的POST方法提交的表單)
- multipart/form-data(同上,但主要用於表單提交時伴隨檔案上傳的場合)
此外,尚未被接受為正式資料類型的subtype,可以使用x-開始的獨立名稱(例如application/x-gzip)。vnd-開始的固有名稱也可以使用(例:application/vnd.ms-excel)。
parameter可以用來指定附加的資訊,更多情況下是用於指定text/plain和text/htm等的文字編碼方式的charset參數。MIME根據type制定了預設的subtype,當用戶端不能確定訊息的subtype的情況下,訊息被看作預設的subtype進行處理。Text預設是text/plain,Application預設是application/octet-stream而Multipart預設情況下被看作multipart/mixed。