diff options
| author | thomasb <thomasb@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2008-09-13 18:57:37 +0000 |
|---|---|---|
| committer | thomasb <thomasb@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2008-09-13 18:57:37 +0000 |
| commit | d8c68ca2ad0b0f38a7dd82ef286f43ea94f4293a (patch) | |
| tree | 14cac242041aab095c6b6306537f2792c1f881b3 /roundcubemail/program | |
| parent | 7e3b51410e31d5fb3fd8b70fe7b80511f86e8054 (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')
| -rw-r--r-- | roundcubemail/program/include/main.inc | 2 | ||||
| -rw-r--r-- | roundcubemail/program/include/rcube_mail_mime.php | 8 |
2 files changed, 5 insertions, 5 deletions
diff --git a/roundcubemail/program/include/main.inc b/roundcubemail/program/include/main.inc index 77074a0bd..c279f3012 100644 --- a/roundcubemail/program/include/main.inc +++ b/roundcubemail/program/include/main.inc @@ -643,7 +643,7 @@ function rcmail_mod_css_styles($source, $container_id, $base_url = '') function rcmail_xss_entitiy_decode($content) { $out = html_entity_decode(html_entity_decode($content)); - $out = preg_replace('/\\\([a-z0-9]{4})/ie', "chr(hexdec('\\1'))", $out); + $out = preg_replace('/\\\([0-9a-f]{4})/ie', "chr(hexdec('\\1'))", $out); $out = preg_replace('#/\*.*\*/#Um', '', $out); return $out; } 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; |
