Skip to content

Commit 1efa11a

Browse files
committed
bug #39954 [Mailer][Mime] Fix case-sensitive handling of header names (piku235)
This PR was squashed before being merged into the 5.2 branch. Discussion ---------- [Mailer][Mime] Fix case-sensitive handling of header names | Q | A | ------------- | --- | Branch? | 5.2 | Bug fix? | yes | New feature? | no | Deprecations? | no | Tickets | Fix #39953 | License | MIT | Doc PR | - Fixes case-sensitive handling of header names in "Mime" and "Mailer" component, more in the [ticket](symfony/symfony#39953). Commits ------- d563c846f6 [Mailer][Mime] Fix case-sensitive handling of header names
2 parents eeeabec + ad39e9f commit 1efa11a

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

EventListener/MessageListener.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public function addHeaderRule(string $headerName, int $rule): void
5858
throw new InvalidArgumentException(sprintf('The "%d" rule is not supported.', $rule));
5959
}
6060

61-
$this->headerRules[$headerName] = $rule;
61+
$this->headerRules[strtolower($headerName)] = $rule;
6262
}
6363

6464
public function onMessage(MessageEvent $event): void

Tests/EventListener/MessageListenerTest.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,5 +101,17 @@ public function provideHeaders(): iterable
101101
->add(new MailboxListHeader('bcc', [new Address('bcc-initial@example.com'), new Address('bcc-default@example.com'), new Address('bcc-default-1@example.com')]))
102102
;
103103
yield 'bcc, add another bcc (unique header)' => [$initialHeaders, $defaultHeaders, $expectedHeaders];
104+
105+
$initialHeaders = (new Headers())
106+
->add(new UnstructuredHeader('foo', 'initial'))
107+
;
108+
$defaultHeaders = (new Headers())
109+
->add(new UnstructuredHeader('foo', 'bar'))
110+
->add(new UnstructuredHeader('bar', 'foo'))
111+
;
112+
$rules = [
113+
'Foo' => MessageListener::HEADER_REPLACE,
114+
];
115+
yield 'Capitalized header rule (case-insensitive), replace if set' => [$initialHeaders, $defaultHeaders, $defaultHeaders, $rules];
104116
}
105117
}

0 commit comments

Comments
 (0)