diff --git a/src/Symfony/Component/Mime/Header/Headers.php b/src/Symfony/Component/Mime/Header/Headers.php index 5556f64a6d54f..f60cd474a6cb1 100644 --- a/src/Symfony/Component/Mime/Header/Headers.php +++ b/src/Symfony/Component/Mime/Header/Headers.php @@ -210,13 +210,23 @@ public static function isUniqueHeader(string $name): bool public function toString(): string { $string = ''; + foreach ($this->toArray() as $str) { + $string .= $str."\r\n"; + } + + return $string; + } + + public function toArray(): array + { + $arr = []; foreach ($this->getAll() as $header) { if ('' !== $header->getBodyAsString()) { - $string .= $header->toString()."\r\n"; + $arr[] = $header->toString(); } } - return $string; + return $arr; } /** diff --git a/src/Symfony/Component/Mime/Tests/Header/HeadersTest.php b/src/Symfony/Component/Mime/Tests/Header/HeadersTest.php index 00c21a35cf30f..2f4a1dd6358a8 100644 --- a/src/Symfony/Component/Mime/Tests/Header/HeadersTest.php +++ b/src/Symfony/Component/Mime/Tests/Header/HeadersTest.php @@ -231,4 +231,15 @@ public function testHeadersWithoutBodiesAreNotDisplayed() $headers->addTextHeader('Zip', ''); $this->assertEquals("Foo: bar\r\n", $headers->toString()); } + + public function testToArray() + { + $headers = new Headers(); + $headers->addIdHeader('Message-ID', 'some@id'); + $headers->addTextHeader('Foo', str_repeat('a', 60).pack('C', 0x8F)); + $this->assertEquals([ + 'Message-ID: ', + "Foo: =?utf-8?Q?aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa?=\r\n =?utf-8?Q?aaaa?=", + ], $headers->toArray()); + } }