File tree Expand file tree Collapse file tree 2 files changed +22
-0
lines changed
src/Symfony/Component/Mime Expand file tree Collapse file tree 2 files changed +22
-0
lines changed Original file line number Diff line number Diff line change @@ -180,6 +180,20 @@ protected function getEncodableWordTokens(string $string): array
180180 $ tokens [] = $ encodedToken ;
181181 }
182182
183+ foreach ($ tokens as $ i => $ token ) {
184+ // whitespace(s) between 2 encoded tokens
185+ if (
186+ 0 < $ i
187+ && isset ($ tokens [$ i + 1 ])
188+ && preg_match ('~^[\t ]+$~ ' , $ token )
189+ && $ this ->tokenNeedsEncoding ($ tokens [$ i - 1 ])
190+ && $ this ->tokenNeedsEncoding ($ tokens [$ i + 1 ])
191+ ) {
192+ $ tokens [$ i - 1 ] .= $ token .$ tokens [$ i + 1 ];
193+ array_splice ($ tokens , $ i , 2 );
194+ }
195+ }
196+
183197 return $ tokens ;
184198 }
185199
Original file line number Diff line number Diff line change @@ -62,6 +62,14 @@ public function testUtf8CharsInLocalPart()
6262 {
6363 $ header = new MailboxHeader ('Sender ' , new Address ('fabïen@symfony.com ' ));
6464 $ this ->assertSame ('fabïen@symfony.com ' , $ header ->getBodyAsString ());
65+
66+ // name with single space
67+ $ header = new MailboxHeader ('Sender ' , new Address ('fabïen@symfony.com ' , 'Fabïen Pötencier ' ));
68+ $ this ->assertSame ('=?utf-8?Q?Fab=C3=AFen_P=C3=B6tencier?= <fabïen@symfony.com> ' , $ header ->getBodyAsString ());
69+
70+ // name with double spaces
71+ $ header = new MailboxHeader ('Sender ' , new Address ('fabïen@symfony.com ' , 'Fabïen Pötencier ' ));
72+ $ this ->assertSame ('=?utf-8?Q?Fab=C3=AFen__P=C3=B6tencier?= <fabïen@symfony.com> ' , $ header ->getBodyAsString ());
6573 }
6674
6775 public function testToString ()
You can’t perform that action at this time.
0 commit comments