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

Commit 3ca1205

Browse files
committed
Merge branch 'hotfix/86'
Close #86
2 parents 08f23af + 7ef7ceb commit 3ca1205

File tree

3 files changed

+43
-3
lines changed

3 files changed

+43
-3
lines changed

src/Headers.php

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,11 @@ public function addHeaderLine($headerFieldNameOrLine, $fieldValue = null)
228228
}
229229

230230
if ($fieldValue === null) {
231-
$this->addHeader(Header\GenericHeader::fromString($headerFieldNameOrLine));
231+
$headers = $this->loadHeader($headerFieldNameOrLine);
232+
$headers = is_array($headers) ? $headers : [$headers];
233+
foreach ($headers as $header) {
234+
$this->addHeader($header);
235+
}
232236
} elseif (is_array($fieldValue)) {
233237
foreach ($fieldValue as $i) {
234238
$this->addHeader(Header\GenericMultiHeader::fromString($headerFieldNameOrLine . ':' . $i));
@@ -465,6 +469,19 @@ public function forceLoading()
465469
return true;
466470
}
467471

472+
/**
473+
* Create Header object from header line
474+
*
475+
* @param string $headerLine
476+
* @return Header\HeaderInterface|Header\HeaderInterface[]
477+
*/
478+
public function loadHeader($headerLine)
479+
{
480+
list($name, ) = Header\GenericHeader::splitHeaderLine($headerLine);
481+
$class = $this->getPluginClassLoader()->load($name) ?: Header\GenericHeader::class;
482+
return $class::fromString($headerLine);
483+
}
484+
468485
/**
469486
* @param $index
470487
* @return mixed

test/Storage/MessageTest.php

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@
99

1010
namespace ZendTest\Mail\Storage;
1111

12-
use Zend\Mime;
13-
use Zend\Mime\Exception as MimeException;
1412
use Zend\Mail\Exception as MailException;
1513
use Zend\Mail\Storage;
1614
use Zend\Mail\Storage\Exception;
1715
use Zend\Mail\Storage\Message;
16+
use Zend\Mime;
17+
use Zend\Mime\Exception as MimeException;
1818

1919
/**
2020
* @group Zend_Mail
@@ -23,10 +23,12 @@
2323
class MessageTest extends \PHPUnit_Framework_TestCase
2424
{
2525
protected $file;
26+
protected $file2;
2627

2728
public function setUp()
2829
{
2930
$this->file = __DIR__ . '/../_files/mail.txt';
31+
$this->file2 = __DIR__ . '/../_files/mail_multi_to.txt';
3032
}
3133

3234
public function testInvalidFile()
@@ -436,6 +438,16 @@ public function testStrictParseMessage()
436438
$message = new Message(['raw' => $raw, 'strict' => true]);
437439
}
438440

441+
public function testMultivalueToHeader()
442+
{
443+
$message = new Message(['file' => $this->file2]);
444+
/** @var \Zend\Mail\Header\To $header */
445+
$header = $message->getHeader('to');
446+
$addressList = $header->getAddressList();
447+
$this->assertEquals(2, $addressList->count());
448+
$this->assertEquals('nicpoń', $addressList->get('[email protected]')->getName());
449+
}
450+
439451
public function filesProvider()
440452
{
441453
$filePath = __DIR__ . '/../_files/mail.txt';

test/_files/mail_multi_to.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
Return-Path: <[email protected]>
2+
Date: Sun, 01 Jan 2000 00:00:00 +0000
3+
4+
To: =?ISO-8859-2?Q?nicpo=F1?= <[email protected]>, "foo" <[email protected]>
5+
Subject: Subject text
6+
Content-Type: text/html; charset=iso-8859-2
7+
Content-Transfer-Encoding: 8bit
8+
Content-Disposition: inline
9+
10+
<div>html content</div>
11+

0 commit comments

Comments
 (0)