diff --git a/src/Header/Sender.php b/src/Header/Sender.php index 3a70405c..2efc23bf 100644 --- a/src/Header/Sender.php +++ b/src/Header/Sender.php @@ -53,6 +53,8 @@ public static function fromString($headerLine) $senderName = null; } $senderEmail = $matches['email']; + } else { + $senderEmail = $value; } $header->setAddress($senderEmail, $senderName); diff --git a/test/Header/SenderTest.php b/test/Header/SenderTest.php index cb28129e..757e7a3d 100644 --- a/test/Header/SenderTest.php +++ b/test/Header/SenderTest.php @@ -31,7 +31,7 @@ public function testGetFieldNameReturnsHeaderName() } /** - * @dataProvider validSenderDataProvider + * @dataProvider validSenderHeaderDataProvider * @group ZF2015-04 * @param string $email * @param null|string $name @@ -39,7 +39,7 @@ public function testGetFieldNameReturnsHeaderName() * @param string $encodedValue * @param string $encoding */ - public function testParseValidSenderHeader($email, $name, $expectedFieldValue, $encodedValue, $encoding) + public function testParseValidSenderHeader($expectedFieldValue, $encodedValue, $encoding) { $header = Header\Sender::fromString('Sender:' . $encodedValue); @@ -145,6 +145,20 @@ public function validSenderDataProvider() ]; } + public function validSenderHeaderDataProvider() + { + return array_merge(array_map(function ($parameters) { + return array_slice($parameters, 2); + }, $this->validSenderDataProvider()), [ + // Per RFC 2822, 3.4 and 3.6.2, "Sender: foo@bar" is valid. + 'Unbracketed email' => [ + '', + 'foo@bar', + 'ASCII' + ] + ]); + } + public function invalidSenderDataProvider() { $mailInvalidArgumentException = 'Zend\Mail\Exception\InvalidArgumentException';