动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   PHP → 阅读文章

 发现一个发送mime邮件的类。

作者来源: 
阅读 数 508 人次 , 2006-4-18 16:57:00 


   <?php

    // 存成 "mime_mail.inc" 檔案

    class mime_mail {

        var $parts;
        var $to;
        var $from;
        var $headers;
        var $subject;
        var $body;


        /*
         *     void mime_mail()
         *     類別建構者
         */

        function mime_mail() {
            $this->parts = array();
            $this->to = "";
            $this->from = "";
            $this->subject = "";
            $this->body = "";
            $this->headers = "";
        }


        /*
         *     void add_attachment(string message,
         *                         [string name],
         *                         [string ctype])
         *     將附加物(附檔)加入郵件物件
         */

        function add_attachment($message, $name = "",
                    $ctype = "application/octet-stream") {
            $this->parts[] = array( "ctype" => $ctype,
                            "message" => $message,
                        "encode" => $encode,
                        "name" => $name);
        }


        /*
         *     void build_message(array part)
         *     建立 multipart 郵件的訊息部份
         */

        function build_message($part) {
            $message = $part["message"];
            $message = chunk_split(base64_encode($message));
            $encoding = "base64";
            return "Content-Type: " . $part["ctype"] .
                ($part["name"] ? "; name=\"".$part["name"]."\"" : "") .
                "\nContent-Transfer-Encoding: $encoding\n\n$message\n";
        }


        /*
         *     void build_multipart()
         *     建立一封 multipart 郵件
         */

        function build_multipart() {
            $boundary = "b" . md5(uniqid(time()));
            $multipart = "Content-Type: multipart/mixed; " .
                     "boundary = $boundary\n\n" .
                     "This is a MIME encoded message.\n\n--$boundary";

            for ($i = sizeof($this->parts) - 1; $i >= 0; $i--) {
                $multipart .= "\n" . $this->build_message($this->parts[$i]) . "--$boundary";
            }

            return $multipart . "--\n";
        }


        /*
         *     string get_mail()
         *     傳回已組合完成的郵件
         */

        function get_mail($complete = true) {
            $mime = "";
            if (!empty($this->from))
                $mime .= "From: " . $this->from . "\n";
            if (!empty($this->headers))
                $mime .= $this->headers . "\n";

            if ($complete) {
                if (!empty($this->to))
                    $mime .= "To: $this->to\n";
                if (!empty($this->subject))
                    $mime .= "Subject: $this->subject\n";
            }

            if (!empty($this->body))
                $this->add_attachment($this->body, "", "text/plain");

            $mime .= "MIME-Version: 1.0\n" . $this->build_multipart();

            return $mime;
        }


        /*
         *     void send()
         *     寄出這封信(最後一個被呼叫的函式)
         */

        function send() {
            $mime = $this->get_mail(false);
            mail($this->to, $this->subject, "", $mime);
        }

    }  // 類別結束

?>   
 本文Tags邮件  
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:使用php的编码功能-实例调用(3)
· 下一篇:发现一个发送mime邮件的类2
· 初学者必读 PHP常用开发工具分析
· 实战PHP/GTK(转载)
· 用session代替apache服务器验证
· 一个中文字符串截取函数
· 三 php与XML、XSLT、Mysql的结合运用,下载篇


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077