Skip to content
This repository was archived by the owner on Jan 30, 2020. It is now read-only.

Commit d7a19b0

Browse files
committed
Merge branch 'hotfix/11' into develop
Forward port #11
2 parents c6b36bd + e97e78d commit d7a19b0

File tree

3 files changed

+21
-2
lines changed

3 files changed

+21
-2
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,6 @@ All notable changes to this project will be documented in this file, in reverse
2020

2121
- [#26](https://github.com/zendframework/zend-mail/pull/26) fixes the
2222
`ContentType` header to properly handle parameters with encoded values.
23+
- [#11](https://github.com/zendframework/zend-mail/pull/11) fixes the
24+
behavior of the `Sender` header, ensuring it can handle domains that do not
25+
contain a TLD, as well as addresses referencing mailboxes (no domain).

src/Header/Sender.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ public static function fromString($headerLine)
5353
$senderName = null;
5454
}
5555
$senderEmail = $matches['email'];
56+
} else {
57+
$senderEmail = $value;
5658
}
5759

5860
$header->setAddress($senderEmail, $senderName);

test/Header/SenderTest.php

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,15 @@ public function testGetFieldNameReturnsHeaderName()
3131
}
3232

3333
/**
34-
* @dataProvider validSenderDataProvider
34+
* @dataProvider validSenderHeaderDataProvider
3535
* @group ZF2015-04
3636
* @param string $email
3737
* @param null|string $name
3838
* @param string $expectedFieldValue,
3939
* @param string $encodedValue
4040
* @param string $encoding
4141
*/
42-
public function testParseValidSenderHeader($email, $name, $expectedFieldValue, $encodedValue, $encoding)
42+
public function testParseValidSenderHeader($expectedFieldValue, $encodedValue, $encoding)
4343
{
4444
$header = Header\Sender::fromString('Sender:' . $encodedValue);
4545

@@ -145,6 +145,20 @@ public function validSenderDataProvider()
145145
];
146146
}
147147

148+
public function validSenderHeaderDataProvider()
149+
{
150+
return array_merge(array_map(function ($parameters) {
151+
return array_slice($parameters, 2);
152+
}, $this->validSenderDataProvider()), [
153+
// Per RFC 2822, 3.4 and 3.6.2, "Sender: foo@bar" is valid.
154+
'Unbracketed email' => [
155+
'<foo@bar>',
156+
'foo@bar',
157+
'ASCII'
158+
]
159+
]);
160+
}
161+
148162
public function invalidSenderDataProvider()
149163
{
150164
$mailInvalidArgumentException = 'Zend\Mail\Exception\InvalidArgumentException';

0 commit comments

Comments
 (0)