diff --git a/src/Symfony/Component/Mime/Address.php b/src/Symfony/Component/Mime/Address.php index 86a80426db..be1ca760a7 100644 --- a/src/Symfony/Component/Mime/Address.php +++ b/src/Symfony/Component/Mime/Address.php @@ -40,11 +40,11 @@ class Address self::$validator = new EmailValidator(); } - if (!self::$validator->isValid($address, new RFCValidation())) { + $this->address = trim($address); + + if (!self::$validator->isValid($this->address, new RFCValidation())) { throw new RfcComplianceException(sprintf('Email "%s" does not comply with addr-spec of RFC 2822.', $address)); } - - $this->address = $address; } public function getAddress(): string diff --git a/src/Symfony/Component/Mime/NamedAddress.php b/src/Symfony/Component/Mime/NamedAddress.php index 0d58708a1c..b13fd73526 100644 --- a/src/Symfony/Component/Mime/NamedAddress.php +++ b/src/Symfony/Component/Mime/NamedAddress.php @@ -24,7 +24,7 @@ final class NamedAddress extends Address { parent::__construct($address); - $this->name = $name; + $this->name = trim(str_replace(["\n", "\r"], '', $name)); } public function getName(): string diff --git a/src/Symfony/Component/Mime/Tests/NamedAddressTest.php b/src/Symfony/Component/Mime/Tests/NamedAddressTest.php index 72840191d5..b793cbbaf8 100644 --- a/src/Symfony/Component/Mime/Tests/NamedAddressTest.php +++ b/src/Symfony/Component/Mime/Tests/NamedAddressTest.php @@ -24,4 +24,19 @@ class NamedAddressTest extends TestCase $this->assertEquals('Fabien ', $a->toString()); $this->assertEquals('fabien@xn--symfon-nwa.com', $a->getEncodedAddress()); } + + public function nameEmptyDataProvider(): array + { + return [[''], [' '], [" \r\n "]]; + } + + /** + * @dataProvider nameEmptyDataProvider + */ + public function testNameEmpty(string $name) + { + $mail = 'mail@example.org'; + + $this->assertSame($mail, (new NamedAddress($mail, $name))->getEncodedNamedAddress()); + } }