diff options
author | Aleksander Machniak <alec@alec.pl> | 2014-08-05 13:07:53 +0200 |
---|---|---|
committer | Aleksander Machniak <alec@alec.pl> | 2014-08-05 13:08:58 +0200 |
commit | 8d4b4897df1861c12b033b864f4d7d8fca7e540a (patch) | |
tree | 574892327fb196f700b5f8d50c9bc17131d3fd2b | |
parent | 1fac787d2cedc2ada103418bf91895b3edf1dd8f (diff) |
Fix invalid Content-Type header when send_format_flowed=false (#1489992)
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | program/lib/Mail/mime.php | 23 | ||||
-rw-r--r-- | program/steps/mail/sendmail.inc | 6 |
3 files changed, 16 insertions, 14 deletions
@@ -7,6 +7,7 @@ CHANGELOG Roundcube Webmail - Fix errors when using localStorage in Safari's private browsing mode (#1489996) - Fix bug where $Forwarded flag was being set even if server didn't support it (#1490000) - Fix various iCloud vCard issues, added fallback for external photos (#1489993) +- Fix invalid Content-Type header when send_format_flowed=false (#1489992) RELEASE 1.0.2 ------------- diff --git a/program/lib/Mail/mime.php b/program/lib/Mail/mime.php index 50297dd3e..db0fd1fc2 100644 --- a/program/lib/Mail/mime.php +++ b/program/lib/Mail/mime.php @@ -1387,19 +1387,24 @@ class Mail_mime if ($headers['Content-Type'] == 'text/plain') { // single-part message: add charset and encoding - $charset = 'charset=' . $this->_build_params['text_charset']; - // place charset parameter in the same line, if possible - // 26 = strlen("Content-Type: text/plain; ") - $headers['Content-Type'] - .= (strlen($charset) + 26 <= 76) ? "; $charset" : ";$eol $charset"; + if ($this->_build_params['text_charset']) { + $charset = 'charset=' . $this->_build_params['text_charset']; + // place charset parameter in the same line, if possible + // 26 = strlen("Content-Type: text/plain; ") + $headers['Content-Type'] + .= (strlen($charset) + 26 <= 76) ? "; $charset" : ";$eol $charset"; + } + $headers['Content-Transfer-Encoding'] = $this->_build_params['text_encoding']; } else if ($headers['Content-Type'] == 'text/html') { // single-part message: add charset and encoding - $charset = 'charset=' . $this->_build_params['html_charset']; - // place charset parameter in the same line, if possible - $headers['Content-Type'] - .= (strlen($charset) + 25 <= 76) ? "; $charset" : ";$eol $charset"; + if ($this->_build_params['html_charset']) { + $charset = 'charset=' . $this->_build_params['html_charset']; + // place charset parameter in the same line, if possible + $headers['Content-Type'] + .= (strlen($charset) + 25 <= 76) ? "; $charset" : ";$eol $charset"; + } $headers['Content-Transfer-Encoding'] = $this->_build_params['html_encoding']; } else { diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc index 13a8a24a9..6c4006426 100644 --- a/program/steps/mail/sendmail.inc +++ b/program/steps/mail/sendmail.inc @@ -467,15 +467,11 @@ if (preg_match('/[^\x00-\x7F]/', $MAIL_MIME->getTXTBody())) { $transfer_encoding = $RCMAIL->config->get('force_7bit') ? 'quoted-printable' : '8bit'; } else { - $text_charset = ''; + $text_charset = 'US-ASCII'; $transfer_encoding = '7bit'; } if ($flowed) { - if (!$text_charset) { - $text_charset = 'US-ASCII'; - } - $text_charset .= ";\r\n format=flowed"; } |