summaryrefslogtreecommitdiff
path: root/roundcubemail/program/include/rcube_mail_mime.php
diff options
context:
space:
mode:
authorthomasb <thomasb@208e9e7b-5314-0410-a742-e7e81cd9613c>2008-09-13 18:57:37 +0000
committerthomasb <thomasb@208e9e7b-5314-0410-a742-e7e81cd9613c>2008-09-13 18:57:37 +0000
commitd8c68ca2ad0b0f38a7dd82ef286f43ea94f4293a (patch)
tree14cac242041aab095c6b6306537f2792c1f881b3 /roundcubemail/program/include/rcube_mail_mime.php
parent7e3b51410e31d5fb3fd8b70fe7b80511f86e8054 (diff)
Fix broken quoted-printable encoding
git-svn-id: https://svn.roundcube.net/trunk@1787 208e9e7b-5314-0410-a742-e7e81cd9613c
Diffstat (limited to 'roundcubemail/program/include/rcube_mail_mime.php')
-rw-r--r--roundcubemail/program/include/rcube_mail_mime.php8
1 files changed, 4 insertions, 4 deletions
diff --git a/roundcubemail/program/include/rcube_mail_mime.php b/roundcubemail/program/include/rcube_mail_mime.php
index 4669c4c53..c86be499b 100644
--- a/roundcubemail/program/include/rcube_mail_mime.php
+++ b/roundcubemail/program/include/rcube_mail_mime.php
@@ -141,7 +141,7 @@ class rcube_mail_mime extends Mail_mime
$value = trim($value);
//This header contains non ASCII chars and should be encoded.
- if (preg_match('#[\x00-\x1F\x80-\xFF]{1}#', $value)) {
+ if (preg_match('/[\x80-\xFF]{1}/', $value)) {
$suffix = '';
// Don't encode e-mail address
if (preg_match('/(.+)\s(<.+@[a-z0-9\-\.]+>)$/Ui', $value, $matches)) {
@@ -160,9 +160,9 @@ class rcube_mail_mime extends Mail_mime
default:
// quoted-printable encoding has been selected
$mode = 'Q';
- $encoded = preg_replace('/([\x3F\x00-\x1F\x80-\xFF])/e', "'='.sprintf('%02X', ord('\\1'))", $value);
- // replace spaces with _
- $encoded = str_replace(' ', '_', $encoded);
+ // replace ?, =, _ and spaces
+ $encoded = str_replace(array('=','_','?',' '), array('=3D','=5F','=3F','_'), $value);
+ $encoded = preg_replace('/([\x80-\xFF])/e', "'='.sprintf('%02X', ord('\\1'))", $encoded);
}
$value = '=?' . $params['head_charset'] . '?' . $mode . '?' . $encoded . '?=' . $suffix;