diff options
author | Aleksander Machniak <alec@alec.pl> | 2014-01-24 12:36:48 +0100 |
---|---|---|
committer | Aleksander Machniak <alec@alec.pl> | 2014-01-24 12:36:48 +0100 |
commit | 5140c310645b1728f59e27d8f5fe37aeb2928d6f (patch) | |
tree | b32f4fcd7270ee8d2c4700e58d5772ecccc4ba82 | |
parent | c0dda0556c5e880f4a180cc1c13bb54c61b01c5a (diff) |
Remove quotes around addressee name in case they are encoded.
Some clients encode quotes with name using base64/quoted-printable
encoding. Quotes were removed only for unencoded strings. Now also
encoded names are handled this way.
So, recipient/sender strings are displayed without quotes around
and e.g. saving to addressbook does not save these redundant quotes.
-rw-r--r-- | program/lib/Roundcube/rcube_mime.php | 4 | ||||
-rw-r--r-- | tests/Framework/Mime.php | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/program/lib/Roundcube/rcube_mime.php b/program/lib/Roundcube/rcube_mime.php index a931c27c1..55b70f67c 100644 --- a/program/lib/Roundcube/rcube_mime.php +++ b/program/lib/Roundcube/rcube_mime.php @@ -378,6 +378,10 @@ class rcube_mime } if ($decode) { $name = self::decode_header($name, $fallback); + // some clients encode addressee name with quotes around it + if ($name[0] == '"' && $name[strlen($name)-1] == '"') { + $name = substr($name, 1, -1); + } } } diff --git a/tests/Framework/Mime.php b/tests/Framework/Mime.php index 1450b4f90..d767905e3 100644 --- a/tests/Framework/Mime.php +++ b/tests/Framework/Mime.php @@ -41,6 +41,7 @@ class Framework_Mime extends PHPUnit_Framework_TestCase 21 => '"test test"@domain.tld', // invalid (#1489092) 22 => '"John Doe @ SomeBusinessName" <MAILER-DAEMON>', + 23 => '=?UTF-8?B?IlRlc3QsVGVzdCI=?= <test@domain.tld>', ); $results = array( @@ -68,6 +69,7 @@ class Framework_Mime extends PHPUnit_Framework_TestCase 21 => array(1, '', '"test test"@domain.tld'), // invalid (#1489092) 22 => array(1, 'John Doe @ SomeBusinessName', 'MAILER-DAEMON'), + 23 => array(1, 'Test,Test', 'test@domain.tld'), ); foreach ($headers as $idx => $header) { |