File tree Expand file tree Collapse file tree 4 files changed +25
-1
lines changed
src/Symfony/Component/Mime Expand file tree Collapse file tree 4 files changed +25
-1
lines changed Original file line number Diff line number Diff line change @@ -121,6 +121,10 @@ public function addFrom(...$addresses)
121121 */
122122 public function from (...$ addresses )
123123 {
124+ if (!$ addresses ) {
125+ throw new LogicException ('"from()" must be called with at least one address. ' );
126+ }
127+
124128 return $ this ->setListAddressHeaderBody ('From ' , $ addresses );
125129 }
126130
Original file line number Diff line number Diff line change @@ -140,7 +140,10 @@ public function generateMessageId(): string
140140 if ($ this ->headers ->has ('Sender ' )) {
141141 $ sender = $ this ->headers ->get ('Sender ' )->getAddress ();
142142 } elseif ($ this ->headers ->has ('From ' )) {
143- $ sender = $ this ->headers ->get ('From ' )->getAddresses ()[0 ];
143+ if (!$ froms = $ this ->headers ->get ('From ' )->getAddresses ()) {
144+ throw new LogicException ('A "From" header must have at least one email address. ' );
145+ }
146+ $ sender = $ froms [0 ];
144147 } else {
145148 throw new LogicException ('An email must have a "From" or a "Sender" header. ' );
146149 }
Original file line number Diff line number Diff line change 1515use PHPUnit \Framework \TestCase ;
1616use Symfony \Component \Mime \Address ;
1717use Symfony \Component \Mime \Email ;
18+ use Symfony \Component \Mime \Exception \LogicException ;
1819use Symfony \Component \Mime \Part \DataPart ;
1920use Symfony \Component \Mime \Part \Multipart \AlternativePart ;
2021use Symfony \Component \Mime \Part \Multipart \MixedPart ;
@@ -62,6 +63,13 @@ public function testSender()
6263 $ this ->assertSame ($ fabien , $ e ->getSender ());
6364 }
6465
66+ public function testFromWithNoAddress ()
67+ {
68+ $ e = new Email ();
69+ $ this ->expectException (LogicException::class);
70+ $ e ->from ();
71+ }
72+
6573 public function testFrom ()
6674 {
6775 $ e = new Email ();
Original file line number Diff line number Diff line change 1313
1414use PHPUnit \Framework \TestCase ;
1515use Symfony \Component \Mime \Address ;
16+ use Symfony \Component \Mime \Exception \LogicException ;
1617use Symfony \Component \Mime \Header \Headers ;
1718use Symfony \Component \Mime \Header \MailboxListHeader ;
1819use Symfony \Component \Mime \Header \UnstructuredHeader ;
@@ -125,6 +126,14 @@ public function testGetPreparedHeadersHasSenderWhenNeeded()
125126 $ this ->
assertEquals (
'[email protected] ' ,
$ message->
getPreparedHeaders ()->
get (
'Sender ' )->
getAddress ()->
getAddress ());
126127 }
127128
129+ public function testGenerateMessageIdThrowsWhenHasFromButNoAddresses ()
130+ {
131+ $ message = new Message ();
132+ $ message ->getHeaders ()->addMailboxListHeader ('From ' , []);
133+ $ this ->expectException (LogicException::class);
134+ $ message ->generateMessageId ();
135+ }
136+
128137 public function testToString ()
129138 {
130139 $ message = new Message ();
You can’t perform that action at this time.
0 commit comments