Fix handling of email addresses with quoted domain part (#1490040)
| | |
| | | - 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 |
| | | ------------- |
| | |
| | | } |
| | | |
| | | if ($address) { |
| | | $address = self::fix_email($address); |
| | | $result[$key] = array('name' => $name, 'address' => $address); |
| | | } |
| | | } |
| | |
| | | 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); |
| | | } |
| | | } |
| | |
| | | 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( |
| | |
| | | 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) { |