MIME 多用途互聯(lián)網(wǎng)郵件擴(kuò)展類(lèi)型

一、為什么會(huì)有 MIME?

因?yàn)?簡(jiǎn)單郵件傳送協(xié)議 SMTP 有幾個(gè)缺點(diǎn):

  1. SMTP 不能傳送可執(zhí)行文件或者其他二進(jìn)制對(duì)象;
  2. SMTP 只能傳送7位的 ASCII 碼,許多國(guó)家非英文的文字將無(wú)法傳送;
  3. SMTP 服務(wù)器會(huì)拒絕超過(guò)一定長(zhǎng)度的郵件;
  4. 某些 SMTP 的實(shí)現(xiàn)并沒(méi)有完全按照 SMTP 的因特網(wǎng)標(biāo)準(zhǔn)。

正因如此,一些非英語(yǔ)字符消息和二進(jìn)制文件,圖像,聲音等非文字消息都不能在電子郵件中傳輸。 MIME 規(guī)定了用于表示各種各樣的數(shù)據(jù)類(lèi)型的符號(hào)化方法。

MIME 最早應(yīng)用于電子郵件系統(tǒng),但后來(lái)也應(yīng)用到瀏覽器。服務(wù)器發(fā)送的多媒體到瀏覽器,瀏覽器獲取該多媒體數(shù)據(jù)的MIME類(lèi)型,從而讓瀏覽器知道接收到的信息屬于哪種類(lèi)型。

二、所以什么是 MIME

MIME (Multipurpose Internet Mail Extensions)多用途互聯(lián)網(wǎng)郵件擴(kuò)展類(lèi)型, MIME 并沒(méi)有改動(dòng)或者取代 STMP ,它是繼續(xù)使用原來(lái)的郵件格式的情況下,增加了郵件主體的結(jié)構(gòu),并定義了傳送非 ASCII 碼的編碼規(guī)則。

意思就是,MIME 郵件可以在現(xiàn)有的電子郵件程序和協(xié)議下傳送。MIME 實(shí)際在用戶(hù)和 SMTP 之間的一層,將用戶(hù)輸入的非 ASCII 碼的內(nèi)容通過(guò)轉(zhuǎn)換為 ASCII 碼的內(nèi)容,讓 SMTP 協(xié)議得以接受,并利用 SMTP 協(xié)議對(duì)郵件進(jìn)行傳輸。收件人收到后,再通過(guò) MIME 協(xié)議對(duì) SMTP 協(xié)議的 ASCII 碼進(jìn)行解碼,呈現(xiàn)在用戶(hù)眼前的是正確的信息。

三、MIME 特點(diǎn)

MIME 主要包括以下三部分內(nèi)容:

  1. 5個(gè)新的郵件首部字段,加入到原來(lái)郵件的首部中;
  2. 定義了許多郵件內(nèi)容的格式,對(duì)多媒體電子郵件的表示方法進(jìn)行了標(biāo)準(zhǔn)化;
  3. 定義了傳送編碼,對(duì)任何格式內(nèi)容進(jìn)行轉(zhuǎn)換。

MIME 郵件首部

MIME 郵件首部是加入要原先 SMTP 郵件的首部字段。

MIME-Version

這個(gè)頭提供了所用MIME的版本號(hào)。這個(gè)值習(xí)慣上為1.0。

Content-Type

它定義了數(shù)據(jù)類(lèi)型和子類(lèi)型,類(lèi)型與子類(lèi)型用"/"分隔,以便數(shù)據(jù)能被適當(dāng)?shù)奶幚怼S行У念?lèi)型有:text,image,audio,video,applications,multipart和message。注意任何一個(gè)二進(jìn)制附件都應(yīng)該被叫做application/octet-stream。

Content-Transfer-Encoding

它定義了對(duì)數(shù)據(jù)所執(zhí)行的編碼方式,可以使用7bit,8bit,binary ,quoted-printable,base64和custom中的一種編碼方式。

Content-ID

郵件的唯一標(biāo)識(shí)符。

Content-Description

這是可讀字符串,說(shuō)明此郵件主體是否是圖像、音頻和視頻。

MIME 段部

MIME 段首部是出現(xiàn)在實(shí)際的 MIME 附件部分的首部,它只作用于該段中。除了 MIME-Version 字段,可以擁有以上任何頭字段。

四、內(nèi)容類(lèi)型

MIME 標(biāo)準(zhǔn)元先定義了7個(gè)基本內(nèi)容類(lèi)型和15種子類(lèi)型。但是允許客戶(hù)端和服務(wù)器之間定義專(zhuān)用的內(nèi)容類(lèi)型,但是為了避免名字沖突,專(zhuān)用類(lèi)型一般以 x- 開(kāi)始。

Content-Type 子類(lèi)型 說(shuō)明
text(文本) plain, html, xml, css 不同格式的文本
image(圖像) gif, jpeg, tiff 不同格式的靜止圖像
audio(音頻) basic, mpeg, mp4 可聽(tīng)見(jiàn)的聲音
video(視頻) mpeg, mp4, quicktime 不同格式的影片
model(模型) vrml 3D 模型
application(應(yīng)用) octet-stream, pdf, javascript, zip 不同應(yīng)用程式產(chǎn)生的數(shù)據(jù)
message(報(bào)文) http, rfc822 封裝的報(bào)文
multipart(多部分) mixed, alternative, parallel, digest 多種類(lèi)型的組合

著重理解一下 multipart

  1. mixed

允許單個(gè)報(bào)文含有多個(gè)相互獨(dú)立的子報(bào)文,每個(gè)子報(bào)文擁有自己的類(lèi)型和編碼。在 mixed 后面用到 boundary=BOUNDARY 關(guān)鍵字,定義分隔各部分子報(bào)文的分隔符,在郵件用利用 --BOUNDARY 進(jìn)行分隔。

From:"hello" <hello@xxx.com>
To:<world@xxx.com>
Subject:hello world
Date:Mon,9 Oct 2006 16:51:34 +0800
MIME-Version:1.0
Content-Type:multipart/mixed;boundary=lines

--lines
Hello world

-lines
Content-Type:image/gif
Content-Transfer-Encoding: base64

... images ...
--lines
  1. alternative

允許單個(gè)報(bào)文含有同一數(shù)據(jù)的多種表示。例如對(duì)于同一個(gè)文本,可以用不同的編碼形式,客戶(hù)端根據(jù)自己實(shí)際選擇格式化的形式。

  1. parallel

允許單個(gè)報(bào)文含有可同時(shí)顯示的各個(gè)子部分,例如圖片和聲音子部分必須一起播放。

  1. digest

允許單個(gè)報(bào)文含有一組其他報(bào)文。

五、編碼

Content-Transfer-Encoding: [mechanism]

其中,mechanism的值可以指定為“7bit”,“8bit”,“binary”,“quoted-printable”,“base64”。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,698評(píng)論 6 539
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,202評(píng)論 3 426
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 177,742評(píng)論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 63,580評(píng)論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,297評(píng)論 6 410
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 55,688評(píng)論 1 327
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,693評(píng)論 3 444
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 42,875評(píng)論 0 289
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,438評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,183評(píng)論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,384評(píng)論 1 372
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,931評(píng)論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,612評(píng)論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 35,022評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 36,297評(píng)論 1 292
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,093評(píng)論 3 397
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,330評(píng)論 2 377

推薦閱讀更多精彩內(nèi)容