Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'libs/Zend/Mail/Transport/Abstract.php')
-rw-r--r--libs/Zend/Mail/Transport/Abstract.php350
1 files changed, 0 insertions, 350 deletions
diff --git a/libs/Zend/Mail/Transport/Abstract.php b/libs/Zend/Mail/Transport/Abstract.php
deleted file mode 100644
index e18f2e71b9..0000000000
--- a/libs/Zend/Mail/Transport/Abstract.php
+++ /dev/null
@@ -1,350 +0,0 @@
-<?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
- * @subpackage Transport
- * @copyright Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
- * @license http://framework.zend.com/license/new-bsd New BSD License
- * @version $Id: Abstract.php 23775 2011-03-01 17:25:24Z ralph $
- */
-
-
-/**
- * @see Zend_Mime
- */
-// require_once 'Zend/Mime.php';
-
-
-/**
- * Abstract for sending eMails through different
- * ways of transport
- *
- * @category Zend
- * @package Zend_Mail
- * @subpackage Transport
- * @copyright Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
- * @license http://framework.zend.com/license/new-bsd New BSD License
- */
-abstract class Zend_Mail_Transport_Abstract
-{
- /**
- * Mail body
- * @var string
- * @access public
- */
- public $body = '';
-
- /**
- * MIME boundary
- * @var string
- * @access public
- */
- public $boundary = '';
-
- /**
- * Mail header string
- * @var string
- * @access public
- */
- public $header = '';
-
- /**
- * Array of message headers
- * @var array
- * @access protected
- */
- protected $_headers = array();
-
- /**
- * Message is a multipart message
- * @var boolean
- * @access protected
- */
- protected $_isMultipart = false;
-
- /**
- * Zend_Mail object
- * @var false|Zend_Mail
- * @access protected
- */
- protected $_mail = false;
-
- /**
- * Array of message parts
- * @var array
- * @access protected
- */
- protected $_parts = array();
-
- /**
- * Recipients string
- * @var string
- * @access public
- */
- public $recipients = '';
-
- /**
- * EOL character string used by transport
- * @var string
- * @access public
- */
- public $EOL = "\r\n";
-
- /**
- * Send an email independent from the used transport
- *
- * The requisite information for the email will be found in the following
- * properties:
- *
- * - {@link $recipients} - list of recipients (string)
- * - {@link $header} - message header
- * - {@link $body} - message body
- */
- abstract protected function _sendMail();
-
- /**
- * Return all mail headers as an array
- *
- * If a boundary is given, a multipart header is generated with a
- * Content-Type of either multipart/alternative or multipart/mixed depending
- * on the mail parts present in the {@link $_mail Zend_Mail object} present.
- *
- * @param string $boundary
- * @return array
- */
- protected function _getHeaders($boundary)
- {
- if (null !== $boundary) {
- // Build multipart mail
- $type = $this->_mail->getType();
- if (!$type) {
- if ($this->_mail->hasAttachments) {
- $type = Zend_Mime::MULTIPART_MIXED;
- } elseif ($this->_mail->getBodyText() && $this->_mail->getBodyHtml()) {
- $type = Zend_Mime::MULTIPART_ALTERNATIVE;
- } else {
- $type = Zend_Mime::MULTIPART_MIXED;
- }
- }
-
- $this->_headers['Content-Type'] = array(
- $type . ';'
- . $this->EOL
- . " " . 'boundary="' . $boundary . '"'
- );
- $this->boundary = $boundary;
- }
-
- $this->_headers['MIME-Version'] = array('1.0');
-
- return $this->_headers;
- }
-
- /**
- * Prepend header name to header value
- *
- * @param string $item
- * @param string $key
- * @param string $prefix
- * @static
- * @access protected
- * @return void
- */
- protected static function _formatHeader(&$item, $key, $prefix)
- {
- $item = $prefix . ': ' . $item;
- }
-
- /**
- * Prepare header string for use in transport
- *
- * Prepares and generates {@link $header} based on the headers provided.
- *
- * @param mixed $headers
- * @access protected
- * @return void
- * @throws Zend_Mail_Transport_Exception if any header lines exceed 998
- * characters
- */
- protected function _prepareHeaders($headers)
- {
- if (!$this->_mail) {
- /**
- * @see Zend_Mail_Transport_Exception
- */
- // require_once 'Zend/Mail/Transport/Exception.php';
- throw new Zend_Mail_Transport_Exception('Missing Zend_Mail object in _mail property');
- }
-
- $this->header = '';
-
- foreach ($headers as $header => $content) {
- if (isset($content['append'])) {
- unset($content['append']);
- $value = implode(',' . $this->EOL . ' ', $content);
- $this->header .= $header . ': ' . $value . $this->EOL;
- } else {
- array_walk($content, array(get_class($this), '_formatHeader'), $header);
- $this->header .= implode($this->EOL, $content) . $this->EOL;
- }
- }
-
- // Sanity check on headers -- should not be > 998 characters
- $sane = true;
- foreach (explode($this->EOL, $this->header) as $line) {
- if (strlen(trim($line)) > 998) {
- $sane = false;
- break;
- }
- }
- if (!$sane) {
- /**
- * @see Zend_Mail_Transport_Exception
- */
- // require_once 'Zend/Mail/Transport/Exception.php';
- throw new Zend_Mail_Exception('At least one mail header line is too long');
- }
- }
-
- /**
- * Generate MIME compliant message from the current configuration
- *
- * If both a text and HTML body are present, generates a
- * multipart/alternative Zend_Mime_Part containing the headers and contents
- * of each. Otherwise, uses whichever of the text or HTML parts present.
- *
- * The content part is then prepended to the list of Zend_Mime_Parts for
- * this message.
- *
- * @return void
- */
- protected function _buildBody()
- {
- if (($text = $this->_mail->getBodyText())
- && ($html = $this->_mail->getBodyHtml()))
- {
- // Generate unique boundary for multipart/alternative
- $mime = new Zend_Mime(null);
- $boundaryLine = $mime->boundaryLine($this->EOL);
- $boundaryEnd = $mime->mimeEnd($this->EOL);
-
- $text->disposition = false;
- $html->disposition = false;
-
- $body = $boundaryLine
- . $text->getHeaders($this->EOL)
- . $this->EOL
- . $text->getContent($this->EOL)
- . $this->EOL
- . $boundaryLine
- . $html->getHeaders($this->EOL)
- . $this->EOL
- . $html->getContent($this->EOL)
- . $this->EOL
- . $boundaryEnd;
-
- $mp = new Zend_Mime_Part($body);
- $mp->type = Zend_Mime::MULTIPART_ALTERNATIVE;
- $mp->boundary = $mime->boundary();
-
- $this->_isMultipart = true;
-
- // Ensure first part contains text alternatives
- array_unshift($this->_parts, $mp);
-
- // Get headers
- $this->_headers = $this->_mail->getHeaders();
- return;
- }
-
- // If not multipart, then get the body
- if (false !== ($body = $this->_mail->getBodyHtml())) {
- array_unshift($this->_parts, $body);
- } elseif (false !== ($body = $this->_mail->getBodyText())) {
- array_unshift($this->_parts, $body);
- }
-
- if (!$body) {
- /**
- * @see Zend_Mail_Transport_Exception
- */
- // require_once 'Zend/Mail/Transport/Exception.php';
- throw new Zend_Mail_Transport_Exception('No body specified');
- }
-
- // Get headers
- $this->_headers = $this->_mail->getHeaders();
- $headers = $body->getHeadersArray($this->EOL);
- foreach ($headers as $header) {
- // Headers in Zend_Mime_Part are kept as arrays with two elements, a
- // key and a value
- $this->_headers[$header[0]] = array($header[1]);
- }
- }
-
- /**
- * Send a mail using this transport
- *
- * @param Zend_Mail $mail
- * @access public
- * @return void
- * @throws Zend_Mail_Transport_Exception if mail is empty
- */
- public function send(Zend_Mail $mail)
- {
- $this->_isMultipart = false;
- $this->_mail = $mail;
- $this->_parts = $mail->getParts();
- $mime = $mail->getMime();
-
- // Build body content
- $this->_buildBody();
-
- // Determine number of parts and boundary
- $count = count($this->_parts);
- $boundary = null;
- if ($count < 1) {
- /**
- * @see Zend_Mail_Transport_Exception
- */
- // require_once 'Zend/Mail/Transport/Exception.php';
- throw new Zend_Mail_Transport_Exception('Empty mail cannot be sent');
- }
-
- if ($count > 1) {
- // Multipart message; create new MIME object and boundary
- $mime = new Zend_Mime($this->_mail->getMimeBoundary());
- $boundary = $mime->boundary();
- } elseif ($this->_isMultipart) {
- // multipart/alternative -- grab boundary
- $boundary = $this->_parts[0]->boundary;
- }
-
- // Determine recipients, and prepare headers
- $this->recipients = implode(',', $mail->getRecipients());
- $this->_prepareHeaders($this->_getHeaders($boundary));
-
- // Create message body
- // This is done so that the same Zend_Mail object can be used in
- // multiple transports
- $message = new Zend_Mime_Message();
- $message->setParts($this->_parts);
- $message->setMime($mime);
- $this->body = $message->generateMessage($this->EOL);
-
- // Send to transport!
- $this->_sendMail();
- }
-}