Fix handling of email addresses with quoted domain part (#1490040)

pull/252/head
Aleksander Machniak 10 years ago
parent e6f21118b8
commit dbf70cc7db

@ -11,6 +11,7 @@ CHANGELOG Roundcube Webmail
- Fix errors when adding/updating contacts in active search (#1490015)
- Fix incorrect thumbnail rotation with GD and exif orientation data (#1490029)
- Fix contacts list update after adding/deleting/moving a contact (#1490028, #1490033)
- Fix handling of email addresses with quoted domain part (#1490040)
RELEASE 1.0.2
-------------

@ -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);
}
}

@ -44,6 +44,8 @@ class Framework_Mime extends PHPUnit_Framework_TestCase
23 => '=?UTF-8?B?IlRlc3QsVGVzdCI=?= <test@domain.tld>',
// invalid, but we do our best to parse correctly
24 => '"email@test.com" <>',
// valid with redundant quoting (#1490040)
25 => '"user"@"domain.tld"',
);
$results = array(
@ -73,6 +75,7 @@ class Framework_Mime extends PHPUnit_Framework_TestCase
22 => array(1, 'John Doe @ SomeBusinessName', 'MAILER-DAEMON'),
23 => array(1, 'Test,Test', 'test@domain.tld'),
24 => array(1, '', 'email@test.com'),
25 => array(1, '', 'user@domain.tld'),
);
foreach ($headers as $idx => $header) {

Loading…
Cancel
Save