mailer
v7.2.0
Компонент Mailer помогает отправлять электронные письма.
composer require symfony/mailer
use Symfony Component Mailer Transport ;
use Symfony Component Mailer Mailer ;
use Symfony Component Mime Email ;
$ transport = Transport:: fromDsn ( ' smtp://localhost ' );
$ mailer = new Mailer ( $ transport );
$ email = ( new Email ())
-> from ( ' [email protected] ' )
-> to ( ' [email protected] ' )
//->cc('[email protected]')
//->bcc('[email protected]')
//->replyTo('[email protected]')
//->priority(Email::PRIORITY_HIGH)
-> subject ( ' Time for Symfony Mailer! ' )
-> text ( ' Sending emails is fun again! ' )
-> html ( ' <p>See Twig integration for better HTML integration!</p> ' );
$ mailer -> send ( $ email );
Чтобы включить интеграцию Twig с Mailer, потребуется symfony/twig-bridge
и настройте BodyRenderer
:
use Symfony Bridge Twig Mime BodyRenderer ;
use Symfony Bridge Twig Mime TemplatedEmail ;
use Symfony Component EventDispatcher EventDispatcher ;
use Symfony Component Mailer EventListener MessageListener ;
use Symfony Component Mailer Mailer ;
use Symfony Component Mailer Transport ;
use Twig Environment as TwigEnvironment ;
$ twig = new TwigEnvironment (...);
$ messageListener = new MessageListener ( null , new BodyRenderer ( $ twig ));
$ eventDispatcher = new EventDispatcher ();
$ eventDispatcher -> addSubscriber ( $ messageListener );
$ transport = Transport:: fromDsn ( ' smtp://localhost ' , $ eventDispatcher );
$ mailer = new Mailer ( $ transport , null , $ eventDispatcher );
$ email = ( new TemplatedEmail ())
// ...
-> htmlTemplate ( ' emails/signup.html.twig ' )
-> context ([
' expiration_date ' => new DateTimeImmutable ( ' +7 days ' ),
' username ' => ' foo ' ,
])
;
$ mailer -> send ( $ email );
Компонент Mailer для Symfony 7.2 поддерживается:
Помогите Symfony, спонсируя ее разработку!