mail.php
来自「一款可以和GOOGLE媲美的开源统计系统,运用AJAX.功能强大. 无色提示:」· PHP 代码 · 共 726 行 · 第 1/2 页
PHP
726 行
<?php
/**
* Zend Framework
*
* LICENSE
*
* This source file is subject to the new BSD license that is bundled
* with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://framework.zend.com/license/new-bsd
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@zend.com so we can send you a copy immediately.
*
* @category Zend
* @package Zend_Mail
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @version $Id: Mail.php 8064 2008-02-16 10:58:39Z thomas $
*/
/**
* @see Zend_Mail_Transport_Abstract
*/
require_once 'Zend/Mail/Transport/Abstract.php';
/**
* @see Zend_Mime
*/
require_once 'Zend/Mime.php';
/**
* @see Zend_Mail_Transport_Abstract
*/
require_once 'Zend/Mail/Transport/Abstract.php';
/**
* @see Zend_Mime_Message
*/
require_once 'Zend/Mime/Message.php';
/**
* @see Zend_Mime_Part
*/
require_once 'Zend/Mime/Part.php';
/**
* Class for sending an email.
*
* @category Zend
* @package Zend_Mail
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/
class Zend_Mail extends Zend_Mime_Message
{
/**#@+
* @access protected
*/
/**
* @var Zend_Mail_Transport_Abstract
* @static
*/
protected static $_defaultTransport = null;
/**
* Mail character set
* @var string
*/
protected $_charset = null;
/**
* Mail headers
* @var array
*/
protected $_headers = array();
/**
* From: address
* @var string
*/
protected $_from = null;
/**
* To: addresses
* @var array
*/
protected $_to = array();
/**
* Array of all recipients
* @var array
*/
protected $_recipients = array();
/**
* Return-Path header
* @var string
*/
protected $_returnPath = null;
/**
* Subject: header
* @var string
*/
protected $_subject = null;
/**
* Date: header
* @var string
*/
protected $_date = null;
/**
* text/plain MIME part
* @var false|Zend_Mime_Part
*/
protected $_bodyText = false;
/**
* text/html MIME part
* @var false|Zend_Mime_Part
*/
protected $_bodyHtml = false;
/**
* MIME boundary string
* @var string
*/
protected $_mimeBoundary = null;
/**
* Content type of the message
* @var string
*/
protected $_type = null;
/**#@-*/
/**
* Flag: whether or not email has attachments
* @var boolean
*/
public $hasAttachments = false;
/**
* Sets the default mail transport for all following uses of
* Zend_Mail::send();
*
* @todo Allow passing a string to indicate the transport to load
* @todo Allow passing in optional options for the transport to load
* @param Zend_Mail_Transport_Abstract $transport
*/
public static function setDefaultTransport(Zend_Mail_Transport_Abstract $transport)
{
self::$_defaultTransport = $transport;
}
/**
* Public constructor
*
* @param string $charset
*/
public function __construct($charset='iso-8859-1')
{
$this->_charset = $charset;
}
/**
* Return charset string
*
* @return string
*/
public function getCharset()
{
return $this->_charset;
}
/**
* Set content type
*
* Should only be used for manually setting multipart content types.
*
* @param string $type Content type
* @return Zend_Mail Implements fluent interface
* @throws Zend_Mail_Exception for types not supported by Zend_Mime
*/
public function setType($type)
{
$allowed = array(
Zend_Mime::MULTIPART_ALTERNATIVE,
Zend_Mime::MULTIPART_MIXED,
Zend_Mime::MULTIPART_RELATED,
);
if (!in_array($type, $allowed)) {
/**
* @see Zend_Mail_Exception
*/
require_once 'Zend/Mail/Exception.php';
throw new Zend_Mail_Exception('Invalid content type "' . $type . '"');
}
$this->_type = $type;
return $this;
}
/**
* Get content type of the message
*
* @return string
*/
public function getType()
{
return $this->_type;
}
/**
* Set an arbitrary mime boundary for the message
*
* If not set, Zend_Mime will generate one.
*
* @param string $boundary
* @return Zend_Mail Provides fluent interface
*/
public function setMimeBoundary($boundary)
{
$this->_mimeBoundary = $boundary;
return $this;
}
/**
* Return the boundary string used for the message
*
* @return string
*/
public function getMimeBoundary()
{
return $this->_mimeBoundary;
}
/**
* Sets the text body for the message.
*
* @param string $txt
* @param string $charset
* @param string $encoding
* @return Zend_Mail Provides fluent interface
*/
public function setBodyText($txt, $charset = null, $encoding = Zend_Mime::ENCODING_QUOTEDPRINTABLE)
{
if ($charset === null) {
$charset = $this->_charset;
}
$mp = new Zend_Mime_Part($txt);
$mp->encoding = $encoding;
$mp->type = Zend_Mime::TYPE_TEXT;
$mp->disposition = Zend_Mime::DISPOSITION_INLINE;
$mp->charset = $charset;
$this->_bodyText = $mp;
return $this;
}
/**
* Return text body Zend_Mime_Part or string
*
* @param bool textOnly Whether to return just the body text content or the MIME part; defaults to false, the MIME part
* @return false|Zend_Mime_Part|string
*/
public function getBodyText($textOnly = false)
{
if ($textOnly && $this->_bodyText) {
$body = $this->_bodyText;
return $body->getContent();
}
return $this->_bodyText;
}
/**
* Sets the HTML body for the message
*
* @param string $html
* @param string $charset
* @param string $encoding
* @return Zend_Mail Provides fluent interface
*/
public function setBodyHtml($html, $charset = null, $encoding = Zend_Mime::ENCODING_QUOTEDPRINTABLE)
{
if ($charset === null) {
$charset = $this->_charset;
}
$mp = new Zend_Mime_Part($html);
$mp->encoding = $encoding;
$mp->type = Zend_Mime::TYPE_HTML;
$mp->disposition = Zend_Mime::DISPOSITION_INLINE;
$mp->charset = $charset;
$this->_bodyHtml = $mp;
return $this;
}
/**
* Return Zend_Mime_Part representing body HTML
*
* @param bool $htmlOnly Whether to return the body HTML only, or the MIME part; defaults to false, the MIME part
* @return false|Zend_Mime_Part|string
*/
public function getBodyHtml($htmlOnly = false)
{
if ($htmlOnly && $this->_bodyHtml) {
$body = $this->_bodyHtml;
return $body->getContent();
}
return $this->_bodyHtml;
}
/**
* Adds an existing attachment to the mail message
*
* @param Zend_Mime_Part $attachment
* @return Zend_Mail Provides fluent interface
*/
public function addAttachment(Zend_Mime_Part $attachment)
{
$this->addPart($attachment);
$this->hasAttachments = true;
return $this;
}
/**
* Creates a Zend_Mime_Part attachment
*
* Attachment is automatically added to the mail object after creation. The
* attachment object is returned to allow for further manipulation.
*
* @param string $body
* @param string $mimeType
* @param string $disposition
* @param string $encoding
* @param string $filename OPTIONAL A filename for the attachment
* @return Zend_Mime_Part Newly created Zend_Mime_Part object (to allow
* advanced settings)
*/
public function createAttachment($body,
$mimeType = Zend_Mime::TYPE_OCTETSTREAM,
$disposition = Zend_Mime::DISPOSITION_ATTACHMENT,
$encoding = Zend_Mime::ENCODING_BASE64,
$filename = null)
{
$mp = new Zend_Mime_Part($body);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?