diff options
Diffstat (limited to 'Postman/Postman-Mail/Zend-1.12.10/Mail/Part')
-rw-r--r-- | Postman/Postman-Mail/Zend-1.12.10/Mail/Part/File.php | 198 | ||||
-rw-r--r-- | Postman/Postman-Mail/Zend-1.12.10/Mail/Part/Interface.php | 136 |
2 files changed, 0 insertions, 334 deletions
diff --git a/Postman/Postman-Mail/Zend-1.12.10/Mail/Part/File.php b/Postman/Postman-Mail/Zend-1.12.10/Mail/Part/File.php deleted file mode 100644 index dbe34c2..0000000 --- a/Postman/Postman-Mail/Zend-1.12.10/Mail/Part/File.php +++ /dev/null @@ -1,198 +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 Postman_Zend_Mail - * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id$ - */ - - -/** - * @see Postman_Zend_Mime_Decode - */ -require_once 'Zend/Mime/Decode.php'; - -/** - * @see Postman_Zend_Mail_Part - */ -require_once 'Zend/Mail/Part.php'; - - -/** - * @category Zend - * @package Postman_Zend_Mail - * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ -class Postman_Zend_Mail_Part_File extends Postman_Zend_Mail_Part -{ - protected $_contentPos = array(); - protected $_partPos = array(); - protected $_fh; - - /** - * Public constructor - * - * This handler supports the following params: - * - file filename or open file handler with message content (required) - * - startPos start position of message or part in file (default: current position) - * - endPos end position of message or part in file (default: end of file) - * - * @param array $params full message with or without headers - * @throws Postman_Zend_Mail_Exception - */ - public function __construct(array $params) - { - if (empty($params['file'])) { - /** - * @see Postman_Zend_Mail_Exception - */ - require_once 'Zend/Mail/Exception.php'; - throw new Postman_Zend_Mail_Exception('no file given in params'); - } - - if (!is_resource($params['file'])) { - $this->_fh = fopen($params['file'], 'r'); - } else { - $this->_fh = $params['file']; - } - if (!$this->_fh) { - /** - * @see Postman_Zend_Mail_Exception - */ - require_once 'Zend/Mail/Exception.php'; - throw new Postman_Zend_Mail_Exception('could not open file'); - } - if (isset($params['startPos'])) { - fseek($this->_fh, $params['startPos']); - } - $header = ''; - $endPos = isset($params['endPos']) ? $params['endPos'] : null; - while (($endPos === null || ftell($this->_fh) < $endPos) && trim($line = fgets($this->_fh))) { - $header .= $line; - } - - Postman_Zend_Mime_Decode::splitMessage($header, $this->_headers, $null); - - $this->_contentPos[0] = ftell($this->_fh); - if ($endPos !== null) { - $this->_contentPos[1] = $endPos; - } else { - fseek($this->_fh, 0, SEEK_END); - $this->_contentPos[1] = ftell($this->_fh); - } - if (!$this->isMultipart()) { - return; - } - - $boundary = $this->getHeaderField('content-type', 'boundary'); - if (!$boundary) { - /** - * @see Postman_Zend_Mail_Exception - */ - require_once 'Zend/Mail/Exception.php'; - throw new Postman_Zend_Mail_Exception('no boundary found in content type to split message'); - } - - $part = array(); - $pos = $this->_contentPos[0]; - fseek($this->_fh, $pos); - while (!feof($this->_fh) && ($endPos === null || $pos < $endPos)) { - $line = fgets($this->_fh); - if ($line === false) { - if (feof($this->_fh)) { - break; - } - /** - * @see Postman_Zend_Mail_Exception - */ - require_once 'Zend/Mail/Exception.php'; - throw new Postman_Zend_Mail_Exception('error reading file'); - } - - $lastPos = $pos; - $pos = ftell($this->_fh); - $line = trim($line); - - if ($line == '--' . $boundary) { - if ($part) { - // not first part - $part[1] = $lastPos; - $this->_partPos[] = $part; - } - $part = array($pos); - } else if ($line == '--' . $boundary . '--') { - $part[1] = $lastPos; - $this->_partPos[] = $part; - break; - } - } - $this->_countParts = count($this->_partPos); - - } - - - /** - * Body of part - * - * If part is multipart the raw content of this part with all sub parts is returned - * - * @return string body - * @throws Postman_Zend_Mail_Exception - */ - public function getContent($stream = null) - { - fseek($this->_fh, $this->_contentPos[0]); - if ($stream !== null) { - return stream_copy_to_stream($this->_fh, $stream, $this->_contentPos[1] - $this->_contentPos[0]); - } - $length = $this->_contentPos[1] - $this->_contentPos[0]; - return $length < 1 ? '' : fread($this->_fh, $length); - } - - /** - * Return size of part - * - * Quite simple implemented currently (not decoding). Handle with care. - * - * @return int size - */ - public function getSize() { - return $this->_contentPos[1] - $this->_contentPos[0]; - } - - /** - * Get part of multipart message - * - * @param int $num number of part starting with 1 for first part - * @return Postman_Zend_Mail_Part wanted part - * @throws Postman_Zend_Mail_Exception - */ - public function getPart($num) - { - --$num; - if (!isset($this->_partPos[$num])) { - /** - * @see Postman_Zend_Mail_Exception - */ - require_once 'Zend/Mail/Exception.php'; - throw new Postman_Zend_Mail_Exception('part not found'); - } - - return new self(array('file' => $this->_fh, 'startPos' => $this->_partPos[$num][0], - 'endPos' => $this->_partPos[$num][1])); - } -} diff --git a/Postman/Postman-Mail/Zend-1.12.10/Mail/Part/Interface.php b/Postman/Postman-Mail/Zend-1.12.10/Mail/Part/Interface.php deleted file mode 100644 index ac9656f..0000000 --- a/Postman/Postman-Mail/Zend-1.12.10/Mail/Part/Interface.php +++ /dev/null @@ -1,136 +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 Postman_Zend_Mail - * @subpackage Storage - * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id$ - */ - - -/** - * @category Zend - * @package Postman_Zend_Mail - * @subpackage Storage - * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ - -interface Postman_Zend_Mail_Part_Interface extends RecursiveIterator -{ - /** - * Check if part is a multipart message - * - * @return bool if part is multipart - */ - public function isMultipart(); - - - /** - * Body of part - * - * If part is multipart the raw content of this part with all sub parts is returned - * - * @return string body - * @throws Postman_Zend_Mail_Exception - */ - public function getContent(); - - /** - * Return size of part - * - * @return int size - */ - public function getSize(); - - /** - * Get part of multipart message - * - * @param int $num number of part starting with 1 for first part - * @return Postman_Zend_Mail_Part wanted part - * @throws Postman_Zend_Mail_Exception - */ - public function getPart($num); - - /** - * Count parts of a multipart part - * - * @return int number of sub-parts - */ - public function countParts(); - - - /** - * Get all headers - * - * The returned headers are as saved internally. All names are lowercased. The value is a string or an array - * if a header with the same name occurs more than once. - * - * @return array headers as array(name => value) - */ - public function getHeaders(); - - /** - * Get a header in specificed format - * - * Internally headers that occur more than once are saved as array, all other as string. If $format - * is set to string implode is used to concat the values (with Postman_Zend_Mime::LINEEND as delim). - * - * @param string $name name of header, matches case-insensitive, but camel-case is replaced with dashes - * @param string $format change type of return value to 'string' or 'array' - * @return string|array value of header in wanted or internal format - * @throws Postman_Zend_Mail_Exception - */ - public function getHeader($name, $format = null); - - /** - * Get a specific field from a header like content type or all fields as array - * - * If the header occurs more than once, only the value from the first header - * is returned. - * - * Throws a Postman_Zend_Mail_Exception if the requested header does not exist. If - * the specific header field does not exist, returns null. - * - * @param string $name name of header, like in getHeader() - * @param string $wantedPart the wanted part, default is first, if null an array with all parts is returned - * @param string $firstName key name for the first part - * @return string|array wanted part or all parts as array($firstName => firstPart, partname => value) - * @throws Postman_Zend_Exception, Postman_Zend_Mail_Exception - */ - public function getHeaderField($name, $wantedPart = 0, $firstName = 0); - - - /** - * Getter for mail headers - name is matched in lowercase - * - * This getter is short for Postman_Zend_Mail_Part::getHeader($name, 'string') - * - * @see Postman_Zend_Mail_Part::getHeader() - * - * @param string $name header name - * @return string value of header - * @throws Postman_Zend_Mail_Exception - */ - public function __get($name); - - /** - * magic method to get content of part - * - * @return string content - */ - public function __toString(); -} |