From afecad66c9de503eda3baf64b6c5f9b28013fc8a Mon Sep 17 00:00:00 2001 From: Frederik Bosch Date: Wed, 29 Jan 2025 17:21:56 +0100 Subject: [PATCH] return-path should be using angle brackets --- src/Header/ReturnPath.php | 12 ++++++++---- test/Unit/Header/ReturnPathTest.php | 5 +++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/Header/ReturnPath.php b/src/Header/ReturnPath.php index bd8b068..d0f7ec9 100644 --- a/src/Header/ReturnPath.php +++ b/src/Header/ReturnPath.php @@ -9,14 +9,14 @@ final class ReturnPath implements HeaderInterface { /** - * @var EmailAddress + * @var ?EmailAddress */ private $reversePath; /** - * @param EmailAddress $reversePath + * @param ?EmailAddress $reversePath */ - public function __construct(EmailAddress $reversePath) + public function __construct(?EmailAddress $reversePath = null) { $this->reversePath = $reversePath; } @@ -34,6 +34,10 @@ public function getName(): HeaderName */ public function getValue(): HeaderValue { - return HeaderValue::fromEncodedString((string)$this->reversePath); + if ($this->reversePath === null) { + return new HeaderValue('<>'); + } + + return HeaderValue::fromEncodedString('<' . $this->reversePath . '>'); } } diff --git a/test/Unit/Header/ReturnPathTest.php b/test/Unit/Header/ReturnPathTest.php index e57b4fe..ca1516c 100644 --- a/test/Unit/Header/ReturnPathTest.php +++ b/test/Unit/Header/ReturnPathTest.php @@ -15,7 +15,7 @@ final class ReturnPathTest extends AbstractTestCase */ public function it_produces_correct_values($recipientEmail, $headerName, $headerValue): void { - $header = new ReturnPath(new EmailAddress($recipientEmail)); + $header = new ReturnPath($recipientEmail); $this->assertEquals($headerName, (string)$header->getName()); $this->assertEquals($headerValue, (string)$header->getValue()); } @@ -26,7 +26,8 @@ public function it_produces_correct_values($recipientEmail, $headerName, $header public function provideValues(): array { return [ - ['me@example.com', 'Return-Path', 'me@example.com'], + [new EmailAddress('me@example.com'), 'Return-Path', ''], + [null, 'Return-Path', '<>'], ]; } }