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

📄 class_htmlmimemail.php

📁 系统介绍 Engineer系统是降低服务器负载
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php/*** Filename.......: class.html.mime.mail.inc* Project........: HTML Mime mail class* Last Modified..: $Date: 2004/02/11 20:32:13 $* CVS Revision...: $Revision: 1.4 $* Copyright......: 2001, 2002 Richard Heyes*/class htmlMimeMail{	/**	* The html part of the message    * @var string    */	var $html;	/**	* The text part of the message(only used in TEXT only messages)	* @var string	*/	var $text;	/**	* The main body of the message after building	* @var string	*/	var $output;	/**	* The alternative text to the HTML part (only used in HTML messages)	* @var string	*/	var $html_text;	/**	* An array of embedded images/objects	* @var array	*/	var $html_images;	/**	* An array of recognised image types for the findHtmlImages() method	* @var array	*/	var $image_types;	/**	* Parameters that affect the build process	* @var array	*/	var $build_params;	/**	* Array of attachments	* @var array	*/	var $attachments;	/**	* The main message headers	* @var array	*/	var $headers;	/**	* Whether the message has been built or not	* @var boolean	*/	var $is_built;		/**    * The return path address. If not set the From:	* address is used instead	* @var string    */	var $return_path;		/**    * Array of information needed for smtp sending	* @var array    */	var $smtp_params;/*** Constructor function. Sets the headers* if supplied.*/	function htmlMimeMail()	{		/**        * Initialise some variables.        */		$this->html_images = array();		$this->headers     = array();		$this->is_built    = false;		/**        * If you want the auto load functionality		* to find other 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'								  );		/**        * Set these up        */		$this->build_params['html_encoding'] = 'quoted-printable';		$this->build_params['text_encoding'] = '7bit';		$this->build_params['html_charset']  = 'ISO-8859-1';		$this->build_params['text_charset']  = 'ISO-8859-1';		$this->build_params['head_charset']  = 'ISO-8859-1';		$this->build_params['text_wrap']     = 998;		/**        * Defaults for smtp sending        */		if (!empty($GLOBALS['_SERVER']['HTTP_HOST'])) {			$helo = $GLOBALS['_SERVER']['HTTP_HOST'];		} elseif (!empty($GLOBALS['_SERVER']['SERVER_NAME'])) {			$helo = $GLOBALS['_SERVER']['SERVER_NAME'];		} else {			$helo = 'localhost';		}		$this->smtp_params['host'] = 'localhost';		$this->smtp_params['port'] = 25;		$this->smtp_params['helo'] = $helo;		$this->smtp_params['auth'] = false;		$this->smtp_params['user'] = '';		$this->smtp_params['pass'] = '';		/**        * Make sure the MIME version header is first.        */		$this->headers['MIME-Version'] = '1.0';	}/*** 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 getFile($filename)	{		$return = '';		if ($fp = fopen($filename, 'rb')) {			while (!feof($fp)) {				$return .= fread($fp, 1024);			}			fclose($fp);			return $return;		} else {			return false;		}	}/*** Accessor to set the CRLF style*/	function setCrlf($crlf = "\n")	{		if (!defined('CRLF')) {			define('CRLF', $crlf, true);		}		if (!defined('MAIL_MIMEPART_CRLF')) {			define('MAIL_MIMEPART_CRLF', $crlf, true);		}	}/*** Accessor to set the SMTP parameters*/	function setSMTPParams($host = null, $port = null, $helo = null, $auth = null, $user = null, $pass = null)	{		if (!is_null($host)) $this->smtp_params['host'] = $host;		if (!is_null($port)) $this->smtp_params['port'] = $port;		if (!is_null($helo)) $this->smtp_params['helo'] = $helo;		if (!is_null($auth)) $this->smtp_params['auth'] = $auth;		if (!is_null($user)) $this->smtp_params['user'] = $user;		if (!is_null($pass)) $this->smtp_params['pass'] = $pass;	}/*** Accessor function to set the text encoding*/	function setTextEncoding($encoding = '7bit')	{		$this->build_params['text_encoding'] = $encoding;	}/*** Accessor function to set the HTML encoding*/	function setHtmlEncoding($encoding = 'quoted-printable')	{		$this->build_params['html_encoding'] = $encoding;	}/*** Accessor function to set the text charset*/	function setTextCharset($charset = 'ISO-8859-1')	{		$this->build_params['text_charset'] = $charset;	}/*** Accessor function to set the HTML charset*/	function setHtmlCharset($charset = 'ISO-8859-1')	{		$this->build_params['html_charset'] = $charset;	}/*** Accessor function to set the header encoding charset*/	function setHeadCharset($charset = 'ISO-8859-1')	{		$this->build_params['head_charset'] = $charset;	}/*** Accessor function to set the text wrap count*/	function setTextWrap($count = 998)	{		$this->build_params['text_wrap'] = $count;	}/*** Accessor to set a header*/	function setHeader($name, $value)	{		$this->headers[$name] = $value;	}/*** Accessor to add a Subject: header*/	function setSubject($subject)	{		$this->headers['Subject'] = $subject;	}/*** Accessor to add a From: header*/	function setFrom($from)	{		$this->headers['From'] = $from;	}/*** Accessor to set the return path*/	function setReturnPath($return_path)	{		$this->return_path = $return_path;	}/*** Accessor to add a Cc: header*/	function setCc($cc)	{		$this->headers['Cc'] = $cc;	}/*** Accessor to add a Bcc: header*/	function setBcc($bcc)	{		$this->headers['Bcc'] = $bcc;	}/*** Adds plain text. Use this function* when NOT sending html email*/	function setText($text = '')	{		$this->text = $text;	}/*** Adds a html part to the mail.* Also replaces image names with* content-id's.*/	function setHtml($html, $text = null, $images_dir = null)	{		$this->html      = $html;		$this->html_text = $text;		if (isset($images_dir)) {			$this->_findHtmlImages($images_dir);		}	}/*** 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).** @author Dan Allen*/	function _findHtmlImages($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 (!empty($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->getFile($images_dir.$html_images[$i])) {					$ext = substr($html_images[$i], strrpos($html_images[$i], '.') + 1);					$content_type = $this->image_types[strtolower($ext)];					$this->addHtmlImage($image, basename($html_images[$i]), $content_type);				}			}		}	}/*** Adds an image to the list of embedded* images.*/	function addHtmlImage($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 addAttachment($file, $name = '', $c_type='application/octet-stream', $encoding = 'base64')	{		$this->attachments[] = array(									'body'		=> $file,									'name'		=> $name,									'c_type'	=> $c_type,									'encoding'	=> $encoding								  );

⌨️ 快捷键说明

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