File tree 4 files changed +25
-1
lines changed
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)
121
121
*/
122
122
public function from (...$ addresses )
123
123
{
124
+ if (!$ addresses ) {
125
+ throw new LogicException ('"from()" must be called with at least one address. ' );
126
+ }
127
+
124
128
return $ this ->setListAddressHeaderBody ('From ' , $ addresses );
125
129
}
126
130
Original file line number Diff line number Diff line change @@ -140,7 +140,10 @@ public function generateMessageId(): string
140
140
if ($ this ->headers ->has ('Sender ' )) {
141
141
$ sender = $ this ->headers ->get ('Sender ' )->getAddress ();
142
142
} 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 ];
144
147
} else {
145
148
throw new LogicException ('An email must have a "From" or a "Sender" header. ' );
146
149
}
Original file line number Diff line number Diff line change 15
15
use PHPUnit \Framework \TestCase ;
16
16
use Symfony \Component \Mime \Address ;
17
17
use Symfony \Component \Mime \Email ;
18
+ use Symfony \Component \Mime \Exception \LogicException ;
18
19
use Symfony \Component \Mime \Part \DataPart ;
19
20
use Symfony \Component \Mime \Part \Multipart \AlternativePart ;
20
21
use Symfony \Component \Mime \Part \Multipart \MixedPart ;
@@ -62,6 +63,13 @@ public function testSender()
62
63
$ this ->assertSame ($ fabien , $ e ->getSender ());
63
64
}
64
65
66
+ public function testFromWithNoAddress ()
67
+ {
68
+ $ e = new Email ();
69
+ $ this ->expectException (LogicException::class);
70
+ $ e ->from ();
71
+ }
72
+
65
73
public function testFrom ()
66
74
{
67
75
$ e = new Email ();
Original file line number Diff line number Diff line change 13
13
14
14
use PHPUnit \Framework \TestCase ;
15
15
use Symfony \Component \Mime \Address ;
16
+ use Symfony \Component \Mime \Exception \LogicException ;
16
17
use Symfony \Component \Mime \Header \Headers ;
17
18
use Symfony \Component \Mime \Header \MailboxListHeader ;
18
19
use Symfony \Component \Mime \Header \UnstructuredHeader ;
@@ -125,6 +126,14 @@ public function testGetPreparedHeadersHasSenderWhenNeeded()
125
126
$ this ->
assertEquals (
'[email protected] ' ,
$ message->
getPreparedHeaders ()->
get (
'Sender ' )->
getAddress ()->
getAddress ());
126
127
}
127
128
129
+ public function testGenerateMessageIdThrowsWhenHasFromButNoAddresses ()
130
+ {
131
+ $ message = new Message ();
132
+ $ message ->getHeaders ()->addMailboxListHeader ('From ' , []);
133
+ $ this ->expectException (LogicException::class);
134
+ $ message ->generateMessageId ();
135
+ }
136
+
128
137
public function testToString ()
129
138
{
130
139
$ message = new Message ();
You can’t perform that action at this time.
0 commit comments