File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 8888 $ routes ->add ('send_email ' , '/send-email ' )
8989 ->controller (App \Controller \SendEmailController::class)
9090 ->methods (['GET ' ]);
91+
92+ $ routes ->add ('send_message ' , '/send-message ' )
93+ ->controller (App \Controller \SendMessageController::class)
94+ ->methods (['GET ' ]);
9195};
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ declare (strict_types=1 );
4+
5+ namespace App \Controller ;
6+
7+ use App \Entity \User ;
8+ use App \Utils \Mailer ;
9+ use Symfony \Bundle \FrameworkBundle \Controller \AbstractController ;
10+ use Symfony \Component \HttpFoundation \Response ;
11+
12+ final class SendMessageController extends AbstractController
13+ {
14+ public function __construct (
15+ private readonly Mailer $ mailer ,
16+ ) {
17+ }
18+
19+ public function __invoke (): Response
20+ {
21+ $ this ->mailer ->sendMessage ((new User ())->setEmail ('jane_doe@example.com ' ));
22+
23+ return $ this ->json (['message ' => 'Message sent successfully ' ]);
24+ }
25+ }
Original file line number Diff line number Diff line change 88use Symfony \Bridge \Twig \Mime \TemplatedEmail ;
99use Symfony \Component \Mailer \MailerInterface ;
1010use Symfony \Component \Mime \Address ;
11+ use Symfony \Component \Mime \Header \Headers ;
12+ use Symfony \Component \Mime \Message ;
13+ use Symfony \Component \Mime \Part \TextPart ;
1114
1215final readonly class Mailer
1316{
@@ -30,4 +33,19 @@ public function sendConfirmationEmail(User $user): TemplatedEmail
3033
3134 return $ email ;
3235 }
36+
37+ public function sendMessage (User $ user ): Message
38+ {
39+ $ message = new Message (
40+ (new Headers ())
41+ ->addMailboxListHeader ('From ' , [new Address ('jeison_doe@gmail.com ' , 'No Reply ' )])
42+ ->addMailboxListHeader ('To ' , [new Address ($ user ->getEmail ())])
43+ ->addTextHeader ('Subject ' , 'Text message ' ),
44+ new TextPart ('Message body content ' ),
45+ );
46+
47+ $ this ->mailer ->send ($ message );
48+
49+ return $ message ;
50+ }
3351}
Original file line number Diff line number Diff line change 77use App \Entity \User ;
88use App \Tests \Support \FunctionalTester ;
99use Doctrine \DBAL \Connection ;
10+ use Symfony \Component \Mime \Message ;
1011
1112final class IssuesCest
1213{
@@ -53,4 +54,17 @@ public function runSymfonyConsoleCommandIgnoresSpecificOptions(FunctionalTester
5354 $ numRecords = $ I ->grabNumRecords (User::class);
5455 $ I ->assertSame (1 , $ numRecords );
5556 }
57+
58+ /**
59+ * @see https://github.com/Codeception/module-symfony/pull/232
60+ */
61+ public function ensureMessageObjectsCanBeFetched (FunctionalTester $ I )
62+ {
63+ $ I ->amOnPage ('/send-message ' );
64+ $ I ->seeEmailIsSent (1 );
65+ $ I ->assertEmailAddressContains ('To ' , 'jane_doe@example.com ' );
66+ $ I ->assertEmailHeaderSame ('To ' , 'jane_doe@example.com ' );
67+ $ I ->assertEmailHeaderSame ('Subject ' , 'Text message ' );
68+ $ I ->assertInstanceOf (Message::class, $ I ->grabLastSentEmail ());
69+ }
5670}
You can’t perform that action at this time.
0 commit comments