From 442f8b983b91ef3698da71e3e98cbfaa067e7796 Mon Sep 17 00:00:00 2001 From: thomasb Date: Fri, 21 Mar 2008 13:29:12 +0000 Subject: Better patch to correctly quote email recipient strings (from #1484191) git-svn-id: https://svn.roundcube.net/trunk@1201 208e9e7b-5314-0410-a742-e7e81cd9613c --- roundcubemail/program/include/rcube_imap.inc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'roundcubemail/program/include/rcube_imap.inc') 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) -- cgit v1.2.3