Update to Mail_Mime-1.8.5 (#1488521)

pull/13/head
Aleksander Machniak 13 years ago
parent c281619b96
commit ba1fb0510f

@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail CHANGELOG Roundcube Webmail
=========================== ===========================
- Update to Mail_Mime-1.8.5 (#1488521)
- Fix Shift + delete button does not permanently delete messages (#1488243) - Fix Shift + delete button does not permanently delete messages (#1488243)
- Add Content-Length for attachments where possible (#1485478) - Add Content-Length for attachments where possible (#1485478)
- Fix attachment sizes in message print page and attachment preview page (#1488515) - Fix attachment sizes in message print page and attachment preview page (#1488515)

@ -48,7 +48,7 @@
* @author Aleksander Machniak <alec@php.net> * @author Aleksander Machniak <alec@php.net>
* @copyright 2003-2006 PEAR <pear-group@php.net> * @copyright 2003-2006 PEAR <pear-group@php.net>
* @license http://www.opensource.org/licenses/bsd-license.php BSD License * @license http://www.opensource.org/licenses/bsd-license.php BSD License
* @version 1.8.4 * @version 1.8.5
* @link http://pear.php.net/package/Mail_mime * @link http://pear.php.net/package/Mail_mime
* *
* This class is based on HTML Mime Mail class from * This class is based on HTML Mime Mail class from
@ -89,7 +89,7 @@ require_once 'Mail/mimePart.php';
* @author Sean Coates <sean@php.net> * @author Sean Coates <sean@php.net>
* @copyright 2003-2006 PEAR <pear-group@php.net> * @copyright 2003-2006 PEAR <pear-group@php.net>
* @license http://www.opensource.org/licenses/bsd-license.php BSD License * @license http://www.opensource.org/licenses/bsd-license.php BSD License
* @version Release: 1.8.4 * @version Release: 1.8.5
* @link http://pear.php.net/package/Mail_mime * @link http://pear.php.net/package/Mail_mime
*/ */
class Mail_mime class Mail_mime
@ -387,7 +387,8 @@ class Mail_mime
* @param string $description Content-Description header * @param string $description Content-Description header
* @param string $h_charset The character set of the headers e.g. filename * @param string $h_charset The character set of the headers e.g. filename
* If not specified, $charset will be used * If not specified, $charset will be used
* @param array $add_headers Additional part headers * @param array $add_headers Additional part headers. Array keys can be in form
* of <header_name>:<parameter_name>
* *
* @return mixed True on success or PEAR_Error object * @return mixed True on success or PEAR_Error object
* @access public * @access public

@ -48,7 +48,7 @@
* @author Aleksander Machniak <alec@php.net> * @author Aleksander Machniak <alec@php.net>
* @copyright 2003-2006 PEAR <pear-group@php.net> * @copyright 2003-2006 PEAR <pear-group@php.net>
* @license http://www.opensource.org/licenses/bsd-license.php BSD License * @license http://www.opensource.org/licenses/bsd-license.php BSD License
* @version 1.8.4 * @version 1.8.5
* @link http://pear.php.net/package/Mail_mime * @link http://pear.php.net/package/Mail_mime
*/ */
@ -70,7 +70,7 @@
* @author Aleksander Machniak <alec@php.net> * @author Aleksander Machniak <alec@php.net>
* @copyright 2003-2006 PEAR <pear-group@php.net> * @copyright 2003-2006 PEAR <pear-group@php.net>
* @license http://www.opensource.org/licenses/bsd-license.php BSD License * @license http://www.opensource.org/licenses/bsd-license.php BSD License
* @version Release: 1.8.4 * @version Release: 1.8.5
* @link http://pear.php.net/package/Mail_mime * @link http://pear.php.net/package/Mail_mime
*/ */
class Mail_mimePart class Mail_mimePart
@ -156,7 +156,8 @@ class Mail_mimePart
* headers_charset - Charset of the headers e.g. filename, description. * headers_charset - Charset of the headers e.g. filename, description.
* If not set, 'charset' will be used * If not set, 'charset' will be used
* eol - End of line sequence. Default: "\r\n" * eol - End of line sequence. Default: "\r\n"
* headers - Hash array with additional part headers * headers - Hash array with additional part headers. Array keys can be
* in form of <header_name>:<parameter_name>
* body_file - Location of file with part's body (instead of $body) * body_file - Location of file with part's body (instead of $body)
* *
* @access public * @access public
@ -222,13 +223,17 @@ class Mail_mimePart
$params['headers_charset'] = $params['charset']; $params['headers_charset'] = $params['charset'];
} }
} }
// header values encoding parameters
$h_charset = !empty($params['headers_charset']) ? $params['headers_charset'] : 'US-ASCII';
$h_language = !empty($params['language']) ? $params['language'] : null;
$h_encoding = !empty($params['name_encoding']) ? $params['name_encoding'] : null;
if (!empty($params['filename'])) { if (!empty($params['filename'])) {
$headers['Content-Type'] .= ';' . $this->_eol; $headers['Content-Type'] .= ';' . $this->_eol;
$headers['Content-Type'] .= $this->_buildHeaderParam( $headers['Content-Type'] .= $this->_buildHeaderParam(
'name', $params['filename'], 'name', $params['filename'], $h_charset, $h_language, $h_encoding
!empty($params['headers_charset']) ? $params['headers_charset'] : 'US-ASCII',
!empty($params['language']) ? $params['language'] : null,
!empty($params['name_encoding']) ? $params['name_encoding'] : null
); );
} }
@ -238,23 +243,41 @@ class Mail_mimePart
if (!empty($params['filename'])) { if (!empty($params['filename'])) {
$headers['Content-Disposition'] .= ';' . $this->_eol; $headers['Content-Disposition'] .= ';' . $this->_eol;
$headers['Content-Disposition'] .= $this->_buildHeaderParam( $headers['Content-Disposition'] .= $this->_buildHeaderParam(
'filename', $params['filename'], 'filename', $params['filename'], $h_charset, $h_language,
!empty($params['headers_charset']) ? $params['headers_charset'] : 'US-ASCII',
!empty($params['language']) ? $params['language'] : null,
!empty($params['filename_encoding']) ? $params['filename_encoding'] : null !empty($params['filename_encoding']) ? $params['filename_encoding'] : null
); );
} }
// add attachment size
$size = $this->_body_file ? filesize($this->_body_file) : strlen($body);
if ($size) {
$headers['Content-Disposition'] .= ';' . $this->_eol . ' size=' . $size;
}
} }
if (!empty($params['description'])) { if (!empty($params['description'])) {
$headers['Content-Description'] = $this->encodeHeader( $headers['Content-Description'] = $this->encodeHeader(
'Content-Description', $params['description'], 'Content-Description', $params['description'], $h_charset, $h_encoding,
!empty($params['headers_charset']) ? $params['headers_charset'] : 'US-ASCII',
!empty($params['name_encoding']) ? $params['name_encoding'] : 'quoted-printable',
$this->_eol $this->_eol
); );
} }
// Search and add existing headers' parameters
foreach ($headers as $key => $value) {
$items = explode(':', $key);
if (count($items) == 2) {
$header = $items[0];
$param = $items[1];
if (isset($headers[$header])) {
$headers[$header] .= ';' . $this->_eol;
}
$headers[$header] .= $this->_buildHeaderParam(
$param, $value, $h_charset, $h_language, $h_encoding
);
unset($headers[$key]);
}
}
// Default encoding // Default encoding
if (!isset($this->_encoding)) { if (!isset($this->_encoding)) {
$this->_encoding = '7bit'; $this->_encoding = '7bit';

Loading…
Cancel
Save