文章詳情頁
用PHP發(fā)送MIME郵件(一)
瀏覽:6日期:2023-12-29 18:06:54
作者:Kartic Krishnamurthy 譯者:limodou 已經(jīng)厭倦了給你的朋友和客戶發(fā)送那些單調(diào)乏味的文本通知和信件了嗎?曾經(jīng)考慮過發(fā)送附件或在郵中 嵌入HTML吧。 答案就是MIME。接下來的幾頁解釋了MIME的基礎(chǔ)知識(shí),創(chuàng)建符合MIME的信息,然后用一個(gè)可以工作的PHP 類結(jié)束,這個(gè)類實(shí)現(xiàn)了發(fā)送符合MIME郵件。注意對(duì)調(diào)用腳本,調(diào)用者等等的引用表示使用了將要開發(fā)的類的 腳本,客戶程序/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的信息 頭和格式化過的信息體(用ASCII 的子集來表示的附件)。這些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ù)的類型,以便數(shù)據(jù)能被適當(dāng)?shù)奶幚怼S行У念愋陀校簍ext,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明了對(duì)數(shù)據(jù)所執(zhí)行的編碼方式,客戶/MUA 將用它對(duì)附件進(jìn)行解 碼。對(duì)于每個(gè)附件,可以使用7bit,8bit,binary ,quoted-printable,base64和custom中的一種編 碼方式。7bit編碼是用在US ASCII字符集上的常用的一種編碼方式,也就是,保持它的原樣。8bit 和 binary編碼一般不用。對(duì)人類可讀的標(biāo)準(zhǔn)文本,如果傳輸要經(jīng)過對(duì)格式有影響的網(wǎng)關(guān)時(shí)對(duì)其進(jìn)行保護(hù), 可以使用quoted printable 。Base64是一種通用方法,在需要決定使用哪一種編碼方法時(shí),它提供了 一個(gè)不用費(fèi)腦子的選擇;它通常用在二進(jìn)制,非文本數(shù)據(jù)上。注意,任何非7bit 數(shù)據(jù)必須用一種模式 編碼,這樣它就可以通過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提供提示,來決定是否在行內(nèi)顯示附件或作為單獨(dú)的附件。 MIME段頭(出現(xiàn)在實(shí)際的MIME附件部分的頭),除了MIME-Version頭,可以擁有以上任何頭字段。如果一個(gè)MIME頭是信息塊的一部分,它將作用于整個(gè)信息體。例如,如果Content-Transfer-Encoding顯示在信息(指整個(gè)信息)頭中,它應(yīng)用于整個(gè)信息體,但是如果它顯示在一個(gè)MIME段里,它"只能"用于那個(gè)段中。
標(biāo)簽:
PHP
排行榜

網(wǎng)公網(wǎng)安備