summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2014-08-05 13:07:53 +0200
committerAleksander Machniak <alec@alec.pl>2014-08-05 13:08:58 +0200
commit8d4b4897df1861c12b033b864f4d7d8fca7e540a (patch)
tree574892327fb196f700b5f8d50c9bc17131d3fd2b
parent1fac787d2cedc2ada103418bf91895b3edf1dd8f (diff)
Fix invalid Content-Type header when send_format_flowed=false (#1489992)
-rw-r--r--CHANGELOG1
-rw-r--r--program/lib/Mail/mime.php23
-rw-r--r--program/steps/mail/sendmail.inc6
3 files changed, 16 insertions, 14 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 122e3c5b0..79efaceea 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -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";
}