summaryrefslogtreecommitdiff
path: root/roundcubemail/program/include/rcube_imap.inc
diff options
context:
space:
mode:
authorthomasb <thomasb@208e9e7b-5314-0410-a742-e7e81cd9613c>2008-03-21 13:29:12 +0000
committerthomasb <thomasb@208e9e7b-5314-0410-a742-e7e81cd9613c>2008-03-21 13:29:12 +0000
commit442f8b983b91ef3698da71e3e98cbfaa067e7796 (patch)
tree36b9fa215250ca2ce6cfcdc017ed5ff225824a7c /roundcubemail/program/include/rcube_imap.inc
parent1558c387d164d5d20befba6ffb0a80b455f4767f (diff)
Better patch to correctly quote email recipient strings (from #1484191)
git-svn-id: https://svn.roundcube.net/trunk@1201 208e9e7b-5314-0410-a742-e7e81cd9613c
Diffstat (limited to 'roundcubemail/program/include/rcube_imap.inc')
-rw-r--r--roundcubemail/program/include/rcube_imap.inc4
1 files changed, 3 insertions, 1 deletions
diff --git a/roundcubemail/program/include/rcube_imap.inc b/roundcubemail/program/include/rcube_imap.inc
index 170e4a565..5b3efb80f 100644
--- a/roundcubemail/program/include/rcube_imap.inc
+++ b/roundcubemail/program/include/rcube_imap.inc
@@ -2272,6 +2272,8 @@ class rcube_imap
{
$a = $this->_parse_address_list($input, $decode);
$out = array();
+ // Special chars as defined by RFC 822 need to in quoted string (or escaped).
+ $special_chars = '[\(\)\<\>\\\.\[\]@,;:"]';
if (!is_array($a))
return $out;
@@ -2285,7 +2287,7 @@ class rcube_imap
$address = $val['address'];
$name = preg_replace(array('/^[\'"]/', '/[\'"]$/'), '', trim($val['name']));
if ($name && $address && $name != $address)
- $string = sprintf('%s <%s>', preg_match('/[,;<>]/', $name) ? '"'.addcslashes($name, '"').'"' : $name, $address);
+ $string = sprintf('%s <%s>', preg_match("/$special_chars/", $name) ? '"'.addcslashes($name, '"').'"' : $name, $address);
else if ($address)
$string = $address;
else if ($name)