直播中
已經(jīng)厭倦了給你的朋友和客戶發(fā)送那些單調(diào)乏味的文本通知和信件了嗎?曾經(jīng)考慮過(guò)發(fā)送附件或在郵中
嵌入HTML吧。
答案就是MIME。接下來(lái)的幾頁(yè)解釋了MIME的基礎(chǔ)知識(shí),創(chuàng)建符合MIME的信息,然后用一個(gè)可以工作的PHP
類(lèi)結(jié)束,這個(gè)類(lèi)實(shí)現(xiàn)了發(fā)送符合MIME郵件。注意對(duì)調(diào)用腳本,調(diào)用者等等的引用表示使用了將要開(kāi)發(fā)的類(lèi)的
腳本,客戶程序/MUA等等表示郵件閱讀的客戶程序或郵件使用代理程序。
一些MIME基礎(chǔ)
MIME表示多用途Internet郵件擴(kuò)允協(xié)議。MIME擴(kuò)允了基本的面向文本的Internet郵件系統(tǒng),以便可以在
消息中包含二進(jìn)制附件。
MIME利用了一個(gè)事實(shí)就是,RFC 822在消息體的內(nèi)容中做了一點(diǎn)限制:唯一的限制就是只能使用簡(jiǎn)單的
ASCII文本。所以,MIME信息由正常的Internet文本郵件組成,文本郵件擁有一些特別的符合RFC 822的信息
頭和格式化過(guò)的信息體(用ASCII 的子集來(lái)表示的附件)。這些MIME頭給出了一種在郵件中表示附件的特別
的方法。
MIME信息的剖析
一個(gè)普通的文本郵件的信息包含一個(gè)頭部分(To: From: Subject: 等等)和一個(gè)體部分(Hello Mr.,
等等)。在一個(gè)符合MIME的信息中,也包含一個(gè)信息頭并不奇怪,郵件的各個(gè)部分叫做MIME段,每段前也綴
以一個(gè)特別的頭。MIME郵件只是基于RFC 822郵件的一個(gè)擴(kuò)展。然而它有著自已的RFC規(guī)范集。
頭字段
MIME頭根據(jù)在郵件包中的位置,大體上分為MIME信息頭和MIME段頭。(譯者:MIME信息頭指整個(gè)郵件
的頭,而MIME段頭只每個(gè)MIME段的頭。)
MIME信息頭有:
MIME-Version:
這個(gè)頭提供了所用MIME的版本號(hào)。這個(gè)值習(xí)慣上為1.0。
Content-Type:
它定義了數(shù)據(jù)的類(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。這個(gè)頭的一些用例為:image/jpg, application/mswork,multipart/mixed,這只是很少的
一部分。
Content-Transfer-Encoding:
這是所有頭中最重要的一個(gè),因?yàn)樗f(shuō)明了對(duì)數(shù)據(jù)所執(zhí)行的編碼方式,客戶/MUA 將用它對(duì)附件進(jìn)行解
碼。對(duì)于每個(gè)附件,可以使用7bit,8bit,binary ,quoted-printable,base64和custom中的一種編
碼方式。7bit編碼是用在US ASCII字符集上的常用的一種編碼方式,也就是,保持它的原樣。8bit 和
binary編碼一般不用。對(duì)人類(lèi)可讀的標(biāo)準(zhǔn)文本,如果傳輸要經(jīng)過(guò)對(duì)格式有影響的網(wǎng)關(guān)時(shí)對(duì)其進(jìn)行保護(hù),
可以使用quoted printable 。Base64是一種通用方法,在需要決定使用哪一種編碼方法時(shí),它提供了
一個(gè)不用費(fèi)腦子的選擇;它通常用在二進(jìn)制,非文本數(shù)據(jù)上。注意,任何非7bit 數(shù)據(jù)必須用一種模式
編碼,這樣它就可以通過(guò)Internet郵件網(wǎng)關(guān)!
Content-ID:
如果Content-Type是message/external-body或multipart/alternative時(shí),這個(gè)頭就有用了。它超出了本文的范圍。
Content-Description:
這是一個(gè)可選的頭。它是任何信息段內(nèi)容的自由文本描述。描述必須使用us-ascii碼。
Content-Disposition:
一個(gè)試驗(yàn)性的頭,它用于給客戶程序/MUA提供提示,來(lái)決定是否在行內(nèi)顯示附件或作為單獨(dú)的附件。
MIME段頭(出現(xiàn)在實(shí)際的MIME附件部分的頭),除了MIME-Version頭,可以擁有以上任何頭字段。如果一個(gè)MIME頭是信息塊的一部分,它將作用于整個(gè)信息體。例如,如果Content-Transfer-Encoding顯示在信息(指整個(gè)信息)頭中,它應(yīng)用于整個(gè)信息體,但是如果它顯示在一個(gè)MIME段里,它"只能"用于那個(gè)段中。
下一頁(yè)
轉(zhuǎn)自phpbuilder.com