@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, в котором вы можете настроить содержимое письма.