From 3beeadb0c392139b0617d8348e02cb3997984dcd Mon Sep 17 00:00:00 2001 From: "Alexander M. Turek" Date: Sat, 2 Jan 2021 20:44:30 +0100 Subject: [PATCH] Allow egulias/email-validator 3.x --- composer.json | 3 ++- src/Symfony/Bridge/Twig/composer.json | 2 +- src/Symfony/Component/Mailer/composer.json | 2 +- src/Symfony/Component/Mime/Address.php | 3 ++- src/Symfony/Component/Mime/composer.json | 3 ++- .../Component/Validator/Constraints/EmailValidator.php | 2 +- .../Validator/Tests/Constraints/EmailValidatorTest.php | 6 +++--- src/Symfony/Component/Validator/composer.json | 2 +- 8 files changed, 13 insertions(+), 10 deletions(-) diff --git a/composer.json b/composer.json index 63108b1e13..a3430b3f80 100644 --- a/composer.json +++ b/composer.json @@ -134,7 +134,7 @@ "predis/predis": "~1.1", "psr/http-client": "^1.0", "psr/simple-cache": "^1.0", - "egulias/email-validator": "^2.1.10", + "egulias/email-validator": "^2.1.10|^3.1", "symfony/phpunit-bridge": "^5.2", "symfony/security-acl": "~2.8|~3.0", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", @@ -143,6 +143,7 @@ "twig/markdown-extra": "^2.12" }, "conflict": { + "egulias/email-validator": "~3.0.0", "masterminds/html5": "<2.6", "monolog/monolog": ">=2", "phpdocumentor/reflection-docblock": "<3.0|>=3.2.0,<3.2.2", diff --git a/src/Symfony/Bridge/Twig/composer.json b/src/Symfony/Bridge/Twig/composer.json index 6878052543..e6e5533de0 100644 --- a/src/Symfony/Bridge/Twig/composer.json +++ b/src/Symfony/Bridge/Twig/composer.json @@ -21,7 +21,7 @@ "twig/twig": "^1.43|^2.13|^3.0.4" }, "require-dev": { - "egulias/email-validator": "^2.1.10", + "egulias/email-validator": "^2.1.10|^3", "symfony/asset": "^3.4|^4.0|^5.0", "symfony/dependency-injection": "^3.4|^4.0|^5.0", "symfony/error-handler": "^4.4|^5.0", diff --git a/src/Symfony/Component/Mailer/composer.json b/src/Symfony/Component/Mailer/composer.json index 88bf72e353..915bac6121 100644 --- a/src/Symfony/Component/Mailer/composer.json +++ b/src/Symfony/Component/Mailer/composer.json @@ -17,7 +17,7 @@ ], "require": { "php": ">=7.1.3", - "egulias/email-validator": "^2.1.10", + "egulias/email-validator": "^2.1.10|^3", "psr/log": "~1.0", "symfony/event-dispatcher": "^4.3", "symfony/mime": "^4.4|^5.0", diff --git a/src/Symfony/Component/Mime/Address.php b/src/Symfony/Component/Mime/Address.php index 53f682c9c2..46f048d230 100644 --- a/src/Symfony/Component/Mime/Address.php +++ b/src/Symfony/Component/Mime/Address.php @@ -12,6 +12,7 @@ namespace Symfony\Component\Mime; use Egulias\EmailValidator\EmailValidator; +use Egulias\EmailValidator\Validation\MessageIDValidation; use Egulias\EmailValidator\Validation\RFCValidation; use Symfony\Component\Mime\Encoder\IdnAddressEncoder; use Symfony\Component\Mime\Exception\InvalidArgumentException; @@ -51,7 +52,7 @@ final class Address $this->address = trim($address); $this->name = trim(str_replace(["\n", "\r"], '', $name)); - if (!self::$validator->isValid($this->address, new RFCValidation())) { + if (!self::$validator->isValid($this->address, class_exists(MessageIDValidation::class) ? new MessageIDValidation() : new RFCValidation())) { throw new RfcComplianceException(sprintf('Email "%s" does not comply with addr-spec of RFC 2822.', $address)); } } diff --git a/src/Symfony/Component/Mime/composer.json b/src/Symfony/Component/Mime/composer.json index 166dfea10f..aaced87ff4 100644 --- a/src/Symfony/Component/Mime/composer.json +++ b/src/Symfony/Component/Mime/composer.json @@ -21,10 +21,11 @@ "symfony/polyfill-mbstring": "^1.0" }, "require-dev": { - "egulias/email-validator": "^2.1.10", + "egulias/email-validator": "^2.1.10|^3.1", "symfony/dependency-injection": "^3.4|^4.1|^5.0" }, "conflict": { + "egulias/email-validator": "~3.0.0", "symfony/mailer": "<4.4" }, "autoload": { diff --git a/src/Symfony/Component/Validator/Constraints/EmailValidator.php b/src/Symfony/Component/Validator/Constraints/EmailValidator.php index cbe8f52a44..d895b3ac10 100644 --- a/src/Symfony/Component/Validator/Constraints/EmailValidator.php +++ b/src/Symfony/Component/Validator/Constraints/EmailValidator.php @@ -109,7 +109,7 @@ class EmailValidator extends ConstraintValidator if (Email::VALIDATION_MODE_STRICT === $constraint->mode) { if (!class_exists(EguliasEmailValidator::class)) { - throw new LogicException('Strict email validation requires egulias/email-validator ~1.2|~2.0.'); + throw new LogicException('Strict email validation requires egulias/email-validator ^2.1.10|^3.'); } $strictValidator = new EguliasEmailValidator(); diff --git a/src/Symfony/Component/Validator/Tests/Constraints/EmailValidatorTest.php b/src/Symfony/Component/Validator/Tests/Constraints/EmailValidatorTest.php index 45b8943cc1..7748ba00a2 100644 --- a/src/Symfony/Component/Validator/Tests/Constraints/EmailValidatorTest.php +++ b/src/Symfony/Component/Validator/Tests/Constraints/EmailValidatorTest.php @@ -35,7 +35,7 @@ class EmailValidatorTest extends ConstraintValidatorTestCase { $this->validator = new EmailValidator(true); $this->validator->initialize($this->context); - $this->validator->validate('example@localhost', new Email()); + $this->validator->validate('example@mywebsite.tld', new Email()); $this->assertNoViolation(); } @@ -211,7 +211,7 @@ class EmailValidatorTest extends ConstraintValidatorTestCase { $constraint = new Email(['mode' => Email::VALIDATION_MODE_STRICT]); - $this->validator->validate('example@localhost', $constraint); + $this->validator->validate('example@mywebsite.tld', $constraint); $this->assertNoViolation(); } @@ -256,7 +256,7 @@ class EmailValidatorTest extends ConstraintValidatorTestCase { $constraint = new Email(['strict' => true]); - $this->validator->validate('example@localhost', $constraint); + $this->validator->validate('example@mywebsite.tld', $constraint); $this->assertNoViolation(); } diff --git a/src/Symfony/Component/Validator/composer.json b/src/Symfony/Component/Validator/composer.json index a60c5ebd1c..c9cbe689ce 100644 --- a/src/Symfony/Component/Validator/composer.json +++ b/src/Symfony/Component/Validator/composer.json @@ -37,7 +37,7 @@ "symfony/translation": "^4.2", "doctrine/annotations": "^1.10.4", "doctrine/cache": "~1.0", - "egulias/email-validator": "^2.1.10" + "egulias/email-validator": "^2.1.10|^3" }, "conflict": { "doctrine/lexer": "<1.0.2",