diff options
author | thomascube <thomas@roundcube.net> | 2008-09-13 18:57:37 +0000 |
---|---|---|
committer | thomascube <thomas@roundcube.net> | 2008-09-13 18:57:37 +0000 |
commit | 14c5b8e1323c029a17abc4ead8999d508c86ac5b (patch) | |
tree | c403ec978ba118e9de4f9e6c5c5af4dbe0c2feba /program/include/rcube_mail_mime.php | |
parent | 4c70d1f9a2162a6ca41a4f604dc3466ef22afa16 (diff) |
Fix broken quoted-printable encoding
Diffstat (limited to 'program/include/rcube_mail_mime.php')
-rw-r--r-- | program/include/rcube_mail_mime.php | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/program/include/rcube_mail_mime.php b/program/include/rcube_mail_mime.php index 4669c4c53..c86be499b 100644 --- a/program/include/rcube_mail_mime.php +++ b/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; |