⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 email.php

📁 每个RFC 3261信息头有一个相应的存取标识. 但是,许多信息头拥有同样的形式。 例如。To和From的信息头都是由显示名和一个URI组成。 To和From信息头用来管理与处理NameAddr实例的
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php/*  $Id: email.php,v 1.12 2003/06/17 17:29:44 dgw_ Exp $  osCommerce, Open Source E-Commerce Solutions  http://www.oscommerce.com  Copyright (c) 2003 osCommerce  Released under the GNU General Public License  mail.php - a class to assist in building mime-HTML eMails  The original class was made by Richard Heyes <richard@phpguru.org>  and can be found here: http://www.phpguru.org  Renamed and Modified by Jan Wildeboer for osCommerce*/  class email {    var $html;    var $text;    var $output;    var $html_text;    var $html_images;    var $image_types;    var $build_params;    var $attachments;    var $headers;    function email($headers = '') {      if ($headers == '') $headers = array();      $this->html_images = array();      $this->headers = array();      if (EMAIL_LINEFEED == 'CRLF') {        $this->lf = "\r\n";      } else {        $this->lf = "\n";      }/** * If you want the auto load functionality * to find other mime-image/file types, add the * extension and content type here. */      $this->image_types = array('gif' => 'image/gif',                                 'jpg' => 'image/jpeg',                                 'jpeg' => 'image/jpeg',                                 'jpe' => 'image/jpeg',                                 'bmp' => 'image/bmp',                                 'png' => 'image/png',                                 'tif' => 'image/tiff',                                 'tiff' => 'image/tiff',                                 'swf' => 'application/x-shockwave-flash');      $this->build_params['html_encoding'] = 'quoted-printable';      $this->build_params['text_encoding'] = '7bit';      $this->build_params['html_charset'] = constant('CHARSET');      $this->build_params['text_charset'] = constant('CHARSET');      $this->build_params['text_wrap'] = 998;/** * Make sure the MIME version header is first. */      $this->headers[] = 'MIME-Version: 1.0';      reset($headers);      while (list(,$value) = each($headers)) {        if (tep_not_null($value)) {          $this->headers[] = $value;        }      }    }/** * This function will read a file in * from a supplied filename and return * it. This can then be given as the first * argument of the the functions * add_html_image() or add_attachment(). */    function get_file($filename) {      $return = '';      if ($fp = fopen($filename, 'rb')) {        while (!feof($fp)) {          $return .= fread($fp, 1024);        }        fclose($fp);        return $return;      } else {        return false;      }    }/** * Function for extracting images from * html source. This function will look * through the html code supplied by add_html() * and find any file that ends in one of the * extensions defined in $obj->image_types. * If the file exists it will read it in and * embed it, (not an attachment). * * Function contributed by Dan Allen */    function find_html_images($images_dir) {// Build the list of image extensions      while (list($key, ) = each($this->image_types)) {        $extensions[] = $key;      }      preg_match_all('/"([^"]+\.(' . implode('|', $extensions).'))"/Ui', $this->html, $images);      for ($i=0; $i<count($images[1]); $i++) {        if (file_exists($images_dir . $images[1][$i])) {          $html_images[] = $images[1][$i];          $this->html = str_replace($images[1][$i], basename($images[1][$i]), $this->html);        }      }      if (tep_not_null($html_images)) {// If duplicate images are embedded, they may show up as attachments, so remove them.        $html_images = array_unique($html_images);        sort($html_images);        for ($i=0; $i<count($html_images); $i++) {          if ($image = $this->get_file($images_dir . $html_images[$i])) {            $content_type = $this->image_types[substr($html_images[$i], strrpos($html_images[$i], '.') + 1)];            $this->add_html_image($image, basename($html_images[$i]), $content_type);          }        }      }    }/** * Adds plain text. Use this function * when NOT sending html email */    function add_text($text = '') {      $this->text = tep_convert_linefeeds(array("\r\n", "\n", "\r"), $this->lf, $text);    }/** * Adds a html part to the mail. * Also replaces image names with * content-id's. */    function add_html($html, $text = NULL, $images_dir = NULL) {      $this->html = tep_convert_linefeeds(array("\r\n", "\n", "\r"), '<br>', $html);      $this->html_text = tep_convert_linefeeds(array("\r\n", "\n", "\r"), $this->lf, $text);      if (isset($images_dir)) $this->find_html_images($images_dir);    }/** * Adds an image to the list of embedded * images. */    function add_html_image($file, $name = '', $c_type='application/octet-stream') {      $this->html_images[] = array('body' => $file,                                   'name' => $name,                                   'c_type' => $c_type,                                   'cid' => md5(uniqid(time())));    }/** * Adds a file to the list of attachments. */    function add_attachment($file, $name = '', $c_type='application/octet-stream', $encoding = 'base64') {      $this->attachments[] = array('body' => $file,                                   'name' => $name,                                   'c_type' => $c_type,                                   'encoding' => $encoding);    }/** * Adds a text subpart to a mime_part object *//* HPDL PHP3 *///    function &add_text_part(&$obj, $text) {    function add_text_part(&$obj, $text) {      $params['content_type'] = 'text/plain';      $params['encoding'] = $this->build_params['text_encoding'];      $params['charset'] = $this->build_params['text_charset'];      if (is_object($obj)) {        return $obj->addSubpart($text, $params);      } else {        return new mime($text, $params);      }    }/** * Adds a html subpart to a mime_part object *//* HPDL PHP3 *///    function &add_html_part(&$obj) {    function add_html_part(&$obj) {      $params['content_type'] = 'text/html';      $params['encoding'] = $this->build_params['html_encoding'];      $params['charset'] = $this->build_params['html_charset'];      if (is_object($obj)) {        return $obj->addSubpart($this->html, $params);      } else {        return new mime($this->html, $params);      }    }/** * Starts a message with a mixed part *//* HPDL PHP3 *///    function &add_mixed_part() {    function add_mixed_part() {      $params['content_type'] = 'multipart/mixed';      return new mime('', $params);    }/** * Adds an alternative part to a mime_part object *//* HPDL PHP3 *///    function &add_alternative_part(&$obj) {    function add_alternative_part(&$obj) {      $params['content_type'] = 'multipart/alternative';      if (is_object($obj)) {        return $obj->addSubpart('', $params);      } else {        return new mime('', $params);      }    }/** * Adds a html subpart to a mime_part object *//* HPDL PHP3 *///    function &add_related_part(&$obj) {    function add_related_part(&$obj) {      $params['content_type'] = 'multipart/related';      if (is_object($obj)) {        return $obj->addSubpart('', $params);      } else {        return new mime('', $params);      }    }/** * Adds an html image subpart to a mime_part object *//* HPDL PHP3 *///    function &add_html_image_part(&$obj, $value) {    function add_html_image_part(&$obj, $value) {      $params['content_type'] = $value['c_type'];      $params['encoding'] = 'base64';      $params['disposition'] = 'inline';      $params['dfilename'] = $value['name'];      $params['cid'] = $value['cid'];

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -