From dbf70cc7db3c5574f7a89e069591523363db709b Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Thu, 21 Aug 2014 18:08:26 +0200 Subject: Fix handling of email addresses with quoted domain part (#1490040) --- program/lib/Roundcube/rcube_mime.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'program/lib/Roundcube') diff --git a/program/lib/Roundcube/rcube_mime.php b/program/lib/Roundcube/rcube_mime.php index 091b2fae8..4d43a898e 100644 --- a/program/lib/Roundcube/rcube_mime.php +++ b/program/lib/Roundcube/rcube_mime.php @@ -394,6 +394,7 @@ class rcube_mime } if ($address) { + $address = self::fix_email($address); $result[$key] = array('name' => $name, 'address' => $address); } } @@ -889,4 +890,19 @@ class rcube_mime return 'image/' . $type; } + /** + * Try to fix invalid email addresses + */ + public static function fix_email($email) + { + $parts = rcube_utils::explode_quoted_string('@', $email); + foreach ($parts as $idx => $part) { + // remove redundant quoting (#1490040) + if ($part[0] == '"' && preg_match('/^"([a-zA-Z0-9._+=-]+)"$/', $part, $m)) { + $parts[$idx] = $m[1]; + } + } + + return implode('@', $parts); + } } -- cgit v1.2.3