电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

用PHP發(fā)送MIME郵件(四)

瀏覽:2日期:2023-12-30 09:35:32
核心:方法 我們將MIME信息頭的生成,MIME段頭的生成和最終的郵件消息的生成分成幾個模塊。方法的實現(xiàn)是直接從我們前面遇到的MIME基礎(chǔ)而來的。 <?php function attach($data, $description = "", $contenttype = OCTET, $encoding = BASE64, $disp = '') { if (empty($data)) return 0; if (trim($contenttype) == '') $contenttype = OCTET ; if (trim($encoding) == '') $encoding = BASE64; if ($encoding == BIT7) $emsg = $data; elseif ($encoding == QP) $emsg = $$this->qp_func($data); elseif ($encoding == BASE64) { if (!$this->base64_func) # 檢查是否有用戶自動定函數(shù) $emsg = base64_encode($data); else $emsg = $$this->base64_func($data); } $emsg = chunk_split($emsg); //檢查是否content-type是text/plain并且如果沒有指定charset,追加缺省的CHARSET if (preg_match("!^".TEXT."!i", $contenttype) && !preg_match("!;charset=!i", $contenttype)) $contenttype .= ";rntcharset=".CHARSET ; $msg = sprintf("Content-Type: %sContent-Transfer-Encoding: %s%s%s%s", $contenttype.CRLF, $encoding.CRLF, ((($description) && (BODY != $description))?"Content-Description: $description".CRLF:""), ($disp?"Content-Disposition: $disp".CRLF:""), CRLF.$emsg.CRLF); BODY==$description? $this->mimeparts[0] = $msg: $this->mimeparts[] = $msg ; return sizeof($this->mimeparts); } ?> 讓我們仔細地看一下這個方法(對于其它的大部分方法也將如此): 這個方法使用的參數(shù)有: 所附的實際數(shù)據(jù)($data) 與Content-Description頭相應的數(shù)據(jù)描述($description) 將用在Content-Type頭中的數(shù)據(jù)content-type值($contentype) 用在Content-Transfer-Encoding中的編碼值($encoding) 用在Content-Disposition頭$disp中的布局值,可以是INLINE或ATTACH,兩個都是常量 如BASE64,TEXT這樣的值等等,作為常量被定義在附加的.def文件中。 使用$encoding值來決定需要用哪種編碼方式對數(shù)據(jù)進行編碼。有效的值是BIT7(或7bit),QP或BASE64。 這個函數(shù)同時也檢查了是否用戶要使用他/她自已的BASE64或QP函數(shù)。在寫這篇文章時,在我們的類中 只有BIT7和BASE64被實現(xiàn)了,然而,你可以傳遞你自已的quoted-printable 函數(shù)來使用,通過在前面 討論的$qp_func類變量。 在編碼處理之后,你會注意到對編碼的信息使用了chunk_split()。這個函數(shù)根據(jù)可選長度將字符串分 割成小段。因為我們沒有指出長度,缺省長度使用76。這個非常附合郵件處理的習慣。 接著,如果$contenttype參數(shù)包含text/plain,則必須給出"charset=" 參數(shù)的值。它的缺省值被定義 在常量CHARSET中,值為us-ascii。注意當頭使用參數(shù)值傳遞時,在頭與參數(shù)之間必須有一個分號(;)。 例如,Content-Type: text/plain; charset=us-ascii 如果其它MIME段頭各自的值被傳遞給這個方法,這些段頭被創(chuàng)建。畢竟我們不想擁有一個沒有描述的Content-Description頭。在創(chuàng)建這些頭之后,我們追加上經(jīng)過編碼的數(shù)據(jù)部分信息。(檢查一下方法 中的sprintf()語句)。 同樣,注意我們使用了一個叫BODY(又是一個常量)的特別描述字段。這就是我們用在類實現(xiàn)中的東西。 如果描述字段與BODY一樣,我們將其賦給$mimeheaders數(shù)組中的第一個元素。對于這個請多讀幾遍。 attach() 返回$mimeparts數(shù)組的當前大小,用在調(diào)用腳本的引用中。通過這種方法就可以知道一個附 件"X"存在哪一個索引中(實際返回的值要比在數(shù)組中的索引小1) 注意所有的頭必須用一個CRLF(rn)序列結(jié)束。 接著,我們看一下fattach()方法,fattach()與attach()相似,但是它使用一個文件名作為它的第一個參數(shù)(作為attach()中$data的替換)。這個方法只是一個封裝,以便調(diào)用者可以用一個文件來調(diào)用fattach。fattach()然后將文件讀出,接著調(diào)用attach()來追加數(shù)據(jù)。這個方法在失敗時返回0,可以在$errstr 變量中找到解釋或者當成功時,返回文件附件在$mimeparts數(shù)組中的索引號。 我們現(xiàn)在已經(jīng)開發(fā)了附加數(shù)據(jù)的功能,對它們進行編碼并且將單獨的MIME段放在私有數(shù)組中。還需要完成的工作是: 完成MIME的各個段創(chuàng)建包含MIME信息頭的郵件信息頭,郵件原始的信息頭(如To:, From:等等)并且包括任何用戶定義的頭。 在頭后面追加完整的MIME段,這樣一個完整的郵件包就生成了。;;
標簽: PHP
主站蜘蛛池模板: 好杂志网-首页| 超细粉碎机|超微气流磨|气流分级机|粉体改性设备|超微粉碎设备-山东埃尔派粉碎机厂家 | 分子精馏/精馏设备生产厂家-分子蒸馏工艺实验-新诺舜尧(天津)化工设备有限公司 | 水性绝缘漆_凡立水_绝缘漆树脂_环保绝缘漆-深圳维特利环保材料有限公司 | 土壤水分自动监测站-SM150便携式土壤水分仪-铭奥仪器 | 济南办公室装修-厂房装修-商铺装修-工装公司-山东鲁工装饰设计 | 防渗膜厂家|养殖防渗膜|水产养殖防渗膜-泰安佳路通工程材料有限公司 | 成都顶呱呱信息技术有限公司-贷款_个人贷款_银行贷款在线申请 - 成都贷款公司 | 集装箱箱号识别_自重载重图像识别_铁路车号自动识别_OCR图像识别 | 洗石机-移动滚筒式,振动,螺旋,洗矿机-青州冠诚重工机械有限公司 | 铝镁锰板厂家_进口钛锌板_铝镁锰波浪板_铝镁锰墙面板_铝镁锰屋面-杭州军晟金属建筑材料 | 青海电动密集架_智能密集架_密集架价格-盛隆柜业青海档案密集架厂家 | 恒温恒湿试验箱_高低温试验箱_恒温恒湿箱-东莞市高天试验设备有限公司 | RFID电子标签厂家-上海尼太普电子有限公司 | LED太阳能中国结|发光红灯笼|灯杆造型灯|节日灯|太阳能灯笼|LED路灯杆装饰造型灯-北京中海轩光电 | 三板富 | 专注于新三板的第一垂直服务平台 | 恒温振荡混匀器-微孔板振荡器厂家-多管涡旋混匀器厂家-合肥艾本森(www.17world.net) | 聚天冬氨酸,亚氨基二琥珀酸四钠,PASP,IDS - 远联化工 | 东莞螺杆空压机_永磁变频空压机_节能空压机_空压机工厂批发_深圳螺杆空压机_广州螺杆空压机_东莞空压机_空压机批发_东莞空压机工厂批发_东莞市文颖设备科技有限公司 | 煤机配件厂家_刮板机配件_链轮轴组_河南双志机械设备有限公司 | 武汉刮刮奖_刮刮卡印刷厂_为企业提供门票印刷_武汉合格证印刷_现金劵代金券印刷制作 - 武汉泽雅印刷有限公司 | 低噪声电流前置放大器-SR570电流前置放大器-深圳市嘉士达精密仪器有限公司 | 磁力链接搜索神器_BT磁力狗_CILIMAO磁力猫_高效磁力搜索引擎2024 | 顶空进样器-吹扫捕集仪-热脱附仪-二次热解吸仪-北京华盛谱信仪器 | 宁夏档案密集柜,智能密集柜,电动手摇密集柜-盛隆柜业宁夏档案密集柜厂家 | 香蕉筛|直线|等厚|弧形|振动筛|香蕉筛厂家-洛阳隆中重工 | 自动检重秤-动态称重机-重量分选秤-苏州金钻称重设备系统开发有限公司 | 长沙网站建设制作「网站优化推广」-网页设计公司-速马科技官网 | 喷砂机厂家_自动除锈抛丸机价格-成都泰盛吉自动化喷砂设备 | 下水道疏通_管道疏通_马桶疏通_附近疏通电话- 立刻通 | 微型气象仪_气象传感器_防爆气象传感器-天合传感器大全 | 玖容气动液压设备有限公司-气液增压缸_压力机_增压机_铆接机_增压器 | 主题班会网 - 安全教育主题班会,各类主题班会PPT模板 | 高防护蠕动泵-多通道灌装系统-高防护蠕动泵-www.bjhuiyufluid.com慧宇伟业(北京)流体设备有限公司 | 水上浮桥-游艇码头-浮动码头-游船码头-码瑞纳游艇码头工程 | 粉末冶金-粉末冶金齿轮-粉末冶金零件厂家-东莞市正朗精密金属零件有限公司 | 高尔夫球杆_高尔夫果岭_高尔夫用品-深圳市新高品体育用品有限公司 | 塑料异型材_PVC异型材_封边条生产厂家_PC灯罩_防撞扶手_医院扶手价格_东莞市怡美塑胶制品有限公司 | 无锡网站建设_企业网站定制-网站制作公司-阿凡达网络 | 海德莱电力(HYDELEY)-无功补偿元器件生产厂家-二十年专业从事电力电容器 | 泵阀展|阀门展|水泵展|流体机械展 -2025上海国际泵管阀展览会flowtech china |