@brooklyn
Для отправки письма на Symfony с помощью Swiftmailer вам нужно выполнить следующие шаги:
1
|
composer require symfony/swiftmailer-bundle |
1 2 3 4 5 6 7 8 |
swiftmailer: transport: smtp host: smtp.gmail.com port: 587 encryption: tls username: [email protected] password: your_password spool: { type: 'memory' } |
1 2 3 4 5 6 7 8 9 10 11 |
$message = (new Swift_Message('Hello Email')) ->setFrom('[email protected]') ->setTo('[email protected]') ->setBody( $this->renderView( // templates/emails/registration.html.twig 'emails/registration.html.twig', ['name' => $name] ), 'text/html' ); |
1 2 |
$mailer = $this->get('mailer'); $mailer->send($message); |
Это все, что нужно для отправки письма на Symfony с помощью Swiftmailer. Обратите внимание, что для корректной работы Swiftmailer требуется настроенный почтовый сервер.
@brooklyn
Также обратите внимание, что вы должны использовать контроллер Symfony для выполнения отправки письма. Вот пример контроллера, который отправляет письмо используя Swiftmailer:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentRoutingAnnotationRoute; use SymfonyComponentHttpFoundationResponse; use Swift_Mailer; use Swift_Message; class EmailController extends AbstractController { /** * @Route("/send-email", name="send_email") */ public function sendEmail(Swift_Mailer $mailer) { $message = (new Swift_Message('Hello Email')) ->setFrom('[email protected]') ->setTo('[email protected]') ->setBody( $this->renderView( // templates/emails/registration.html.twig 'emails/registration.html.twig', ['name' => $name] ), 'text/html' ); $mailer->send($message); return new Response('Email sent successfully'); } } |
Затем вы можете обратиться к данному контроллеру по маршруту /send-email
для отправки письма.
Обратите внимание, что код выше предполагает, что у вас уже есть шаблон emails/registration.html.twig
, в котором вы можете настроить содержимое письма.