Fix malformed References: header in send/saved mail (#1489891) - update Mail_mime to 1.8.9 version

pull/190/head
Aleksander Machniak 11 years ago
parent 1ee5d134f9
commit b5c6086eea

@ -20,6 +20,7 @@ CHANGELOG Roundcube Webmail
- Optimize some framed pages content for better performance (#1489792) - Optimize some framed pages content for better performance (#1489792)
- Fix mbox files import - Fix mbox files import
- Fix unintentional draft autosave request if autosave is disabled (#1489882) - Fix unintentional draft autosave request if autosave is disabled (#1489882)
- Fix malformed References: header in send/saved mail (#1489891)
RELEASE 1.0.1 RELEASE 1.0.1
------------- -------------

@ -491,13 +491,13 @@ class Mail_mime
* returns it during the build process. * returns it during the build process.
* *
* @param mixed &$obj The object to add the part to, or * @param mixed &$obj The object to add the part to, or
* null if a new object is to be created. * anything else if a new object is to be created.
* @param string $text The text to add. * @param string $text The text to add.
* *
* @return object The text mimePart object * @return object The text mimePart object
* @access private * @access private
*/ */
function &_addTextPart(&$obj = null, $text = '') function &_addTextPart(&$obj, $text = '')
{ {
$params['content_type'] = 'text/plain'; $params['content_type'] = 'text/plain';
$params['encoding'] = $this->_build_params['text_encoding']; $params['encoding'] = $this->_build_params['text_encoding'];
@ -518,12 +518,12 @@ class Mail_mime
* returns it during the build process. * returns it during the build process.
* *
* @param mixed &$obj The object to add the part to, or * @param mixed &$obj The object to add the part to, or
* null if a new object is to be created. * anything else if a new object is to be created.
* *
* @return object The html mimePart object * @return object The html mimePart object
* @access private * @access private
*/ */
function &_addHtmlPart(&$obj = null) function &_addHtmlPart(&$obj)
{ {
$params['content_type'] = 'text/html'; $params['content_type'] = 'text/html';
$params['encoding'] = $this->_build_params['html_encoding']; $params['encoding'] = $this->_build_params['html_encoding'];
@ -563,12 +563,12 @@ class Mail_mime
* the build process. * the build process.
* *
* @param mixed &$obj The object to add the part to, or * @param mixed &$obj The object to add the part to, or
* null if a new object is to be created. * anything else if a new object is to be created.
* *
* @return object The multipart/mixed mimePart object * @return object The multipart/mixed mimePart object
* @access private * @access private
*/ */
function &_addAlternativePart(&$obj = null) function &_addAlternativePart(&$obj)
{ {
$params['content_type'] = 'multipart/alternative'; $params['content_type'] = 'multipart/alternative';
$params['eol'] = $this->_build_params['eol']; $params['eol'] = $this->_build_params['eol'];
@ -588,12 +588,12 @@ class Mail_mime
* the build process. * the build process.
* *
* @param mixed &$obj The object to add the part to, or * @param mixed &$obj The object to add the part to, or
* null if a new object is to be created * anything else if a new object is to be created
* *
* @return object The multipart/mixed mimePart object * @return object The multipart/mixed mimePart object
* @access private * @access private
*/ */
function &_addRelatedPart(&$obj = null) function &_addRelatedPart(&$obj)
{ {
$params['content_type'] = 'multipart/related'; $params['content_type'] = 'multipart/related';
$params['eol'] = $this->_build_params['eol']; $params['eol'] = $this->_build_params['eol'];
@ -878,11 +878,11 @@ class Mail_mime
$this->_checkParams(); $this->_checkParams();
$null = null; $null = -1;
$attachments = count($this->_parts) ? true : false; $attachments = count($this->_parts) > 0;
$html_images = count($this->_html_images) ? true : false; $html_images = count($this->_html_images) > 0;
$html = strlen($this->_htmlbody) ? true : false; $html = strlen($this->_htmlbody) > 0;
$text = (!$html && strlen($this->_txtbody)) ? true : false; $text = !$html && strlen($this->_txtbody);
switch (true) { switch (true) {
case $text && !$attachments: case $text && !$attachments:
@ -991,7 +991,6 @@ class Mail_mime
$this->_addAttachmentPart($message, $this->_parts[$i]); $this->_addAttachmentPart($message, $this->_parts[$i]);
} }
break; break;
} }
if (!isset($message)) { if (!isset($message)) {

@ -839,7 +839,7 @@ class Mail_mimePart
// Simple e-mail address regexp // Simple e-mail address regexp
$email_regexp = '([^\s<]+|("[^\r\n"]+"))@\S+'; $email_regexp = '([^\s<]+|("[^\r\n"]+"))@\S+';
$parts = Mail_mimePart::_explodeQuotedString($separator, $value); $parts = Mail_mimePart::_explodeQuotedString("[\t$separator]", $value);
$value = ''; $value = '';
foreach ($parts as $part) { foreach ($parts as $part) {
@ -869,7 +869,7 @@ class Mail_mimePart
// check if phrase requires quoting // check if phrase requires quoting
if ($word) { if ($word) {
// non-ASCII: require encoding // non-ASCII: require encoding
if (preg_match('#([\x80-\xFF]){1}#', $word)) { if (preg_match('#([^\s\x21-\x7E]){1}#', $word)) {
if ($word[0] == '"' && $word[strlen($word)-1] == '"') { if ($word[0] == '"' && $word[strlen($word)-1] == '"') {
// de-quote quoted-string, encoding changes // de-quote quoted-string, encoding changes
// string to atom // string to atom
@ -908,11 +908,10 @@ class Mail_mimePart
$value = preg_replace( $value = preg_replace(
'/^'.$name.':('.preg_quote($eol, '/').')* /', '', $value '/^'.$name.':('.preg_quote($eol, '/').')* /', '', $value
); );
} else { } else {
// Unstructured header // Unstructured header
// non-ASCII: require encoding // non-ASCII: require encoding
if (preg_match('#([\x80-\xFF]){1}#', $value)) { if (preg_match('#([^\s\x21-\x7E]){1}#', $value)) {
if ($value[0] == '"' && $value[strlen($value)-1] == '"') { if ($value[0] == '"' && $value[strlen($value)-1] == '"') {
// de-quote quoted-string, encoding changes // de-quote quoted-string, encoding changes
// string to atom // string to atom

Loading…
Cancel
Save