mirror of
https://github.com/yiisoft/yii2.git
synced 2025-08-26 06:15:19 +08:00
EmailValidator - the name of the mailbox is no longer limited with the length
This commit is contained in:
@ -206,7 +206,7 @@ yii.validation = (function ($) {
|
||||
value = matches[1] + matches[3] + matches[5] + '@' + matches[6] + matches[7];
|
||||
}
|
||||
|
||||
if (matches[5].length > 64 || matches[1].length > 64) {
|
||||
if (matches[5].length > 64) {
|
||||
valid = false;
|
||||
} else if ((matches[5] + '@' + matches[6]).length > 254) {
|
||||
valid = false;
|
||||
|
@ -81,7 +81,7 @@ class EmailValidator extends Validator
|
||||
$value = $matches['name'] . $matches['open'] . $matches['local'] . '@' . $matches['domain'] . $matches['close'];
|
||||
}
|
||||
|
||||
if (strlen($matches['local']) > 64 || mb_strlen($matches['name'], Yii::$app->charset) > 64) {
|
||||
if (strlen($matches['local']) > 64) {
|
||||
// The maximum total length of a user name or other local-part is 64 octets. RFC 5322 section 4.5.3.1.1
|
||||
// http://tools.ietf.org/html/rfc5321#section-4.5.3.1.1
|
||||
$valid = false;
|
||||
|
@ -45,10 +45,10 @@ class EmailValidatorTest extends TestCase
|
||||
$this->assertFalse($validator->validate('Informtation info@oertliches.de'));
|
||||
$this->assertTrue($validator->validate('test@example.com'));
|
||||
$this->assertTrue($validator->validate('John Smith <john.smith@example.com>'));
|
||||
$this->assertTrue($validator->validate('"This name is longer than 64 characters. Blah blah blah blah blah" <shortmail@example.com>'));
|
||||
$this->assertFalse($validator->validate('John Smith <example.com>'));
|
||||
$this->assertFalse($validator->validate('Short Name <localPartMoreThan64Characters-blah-blah-blah-blah-blah-blah-blah-blah@example.com>'));
|
||||
$this->assertFalse($validator->validate('Short Name <domainNameIsMoreThan254Characters@example-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah.com>'));
|
||||
$this->assertFalse($validator->validate('"This name is longer than 64 characters. Blah blah blah blah blah" <shortmail@example.com>'));
|
||||
}
|
||||
|
||||
public function testValidateValueIdn()
|
||||
@ -87,10 +87,10 @@ class EmailValidatorTest extends TestCase
|
||||
$this->assertTrue($validator->validate('<mail@cebe.cc>'));
|
||||
$this->assertTrue($validator->validate('test@example.com'));
|
||||
$this->assertTrue($validator->validate('John Smith <john.smith@example.com>'));
|
||||
$this->assertTrue($validator->validate('"Такое имя достаточно длинное, но оно все равно можнет пройти валидацию" <shortmail@example.com>'));
|
||||
$this->assertFalse($validator->validate('John Smith <example.com>'));
|
||||
$this->assertFalse($validator->validate('Короткое имя <после-преобразования-в-idn-тут-будет-больше-чем-64-символа@пример.com>'));
|
||||
$this->assertFalse($validator->validate('Короткое имя <тест@это-доменное-имя.после-преобразования-в-idn.будет-содержать-больше-254-символов.бла-бла-бла-бла-бла-бла-бла-бла.бла-бла-бла-бла-бла-бла.бла-бла-бла-бла-бла-бла.бла-бла-бла-бла-бла-бла.com>'));
|
||||
$this->assertFalse($validator->validate('"Такое имя достаточно длинное, чтобы не допустить валидацию имейла" <shortmail@example.com>'));
|
||||
}
|
||||
|
||||
public function testValidateValueMx()
|
||||
|
Reference in New Issue
Block a user