Skip to content
Snippets Groups Projects
Commit fb7f3008 authored by Thomas Müller's avatar Thomas Müller
Browse files

idn have to be converted before being used

parent abdc823b
No related branches found
No related tags found
No related merge requests found
......@@ -73,6 +73,7 @@ class OC_Mail {
$mailo->FromName = $fromname;;
$mailo->Sender = $fromaddress;
try {
$toaddress = self::buildAsciiEmail($toaddress);
$mailo->AddAddress($toaddress, $toname);
if($ccaddress<>'') $mailo->AddCC($ccaddress, $ccname);
......@@ -125,6 +126,22 @@ class OC_Mail {
* @return bool
*/
public static function ValidateAddress($emailAddress) {
$emailAddress = self::buildAsciiEmail($emailAddress);
return PHPMailer::ValidateAddress($emailAddress);
}
/**
* IDN domains will be properly converted to ascii domains.
*
* @param string $emailAddress
* @return string
*/
public static function buildAsciiEmail($emailAddress) {
list($name, $domain) = explode('@', $emailAddress, 2);
$domain = idn_to_ascii($domain);
return "$name@$domain";
}
}
<?php
/**
* Copyright (c) 2014 Thomas Müller <deepdiver@owncloud.com>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
class Test_Mail extends PHPUnit_Framework_TestCase {
/**
* @dataProvider buildAsciiEmailProvider
* @param $expected
* @param $address
*/
public function testBuildAsciiEmail($expected, $address) {
$actual = \OC_Mail::buildAsciiEmail($address);
$this->assertEquals($expected, $actual);
}
function buildAsciiEmailProvider() {
return array(
array('info@example.com', 'info@example.com'),
array('info@xn--cjr6vy5ejyai80u.com', 'info@國際化域名.com'),
array('info@xn--mller-kva.de', 'info@müller.de'),
array('info@xn--mller-kva.xn--mller-kva.de', 'info@müller.müller.de'),
);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment