|
|
@ -2272,6 +2272,8 @@ class rcube_imap
|
|
|
|
{
|
|
|
|
{
|
|
|
|
$a = $this->_parse_address_list($input, $decode);
|
|
|
|
$a = $this->_parse_address_list($input, $decode);
|
|
|
|
$out = array();
|
|
|
|
$out = array();
|
|
|
|
|
|
|
|
// Special chars as defined by RFC 822 need to in quoted string (or escaped).
|
|
|
|
|
|
|
|
$special_chars = '[\(\)\<\>\\\.\[\]@,;:"]';
|
|
|
|
|
|
|
|
|
|
|
|
if (!is_array($a))
|
|
|
|
if (!is_array($a))
|
|
|
|
return $out;
|
|
|
|
return $out;
|
|
|
@ -2285,7 +2287,7 @@ class rcube_imap
|
|
|
|
$address = $val['address'];
|
|
|
|
$address = $val['address'];
|
|
|
|
$name = preg_replace(array('/^[\'"]/', '/[\'"]$/'), '', trim($val['name']));
|
|
|
|
$name = preg_replace(array('/^[\'"]/', '/[\'"]$/'), '', trim($val['name']));
|
|
|
|
if ($name && $address && $name != $address)
|
|
|
|
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)
|
|
|
|
else if ($address)
|
|
|
|
$string = $address;
|
|
|
|
$string = $address;
|
|
|
|
else if ($name)
|
|
|
|
else if ($name)
|
|
|
|