Класс Mailer
Класс Mailer является сервисом для отправки
электронных писем. В конструктор передаётся
транспорт TransportInterface, который
определяет способ доставки письма. Метод
send принимает объект письма Email
и отправляет его через настроенный транспорт.
Обычно Mailer внедряется в контроллер
через механизм внедрения зависимостей Symfony.
Синтаксис
public function send(Email $email): void
Пример
Давайте отправим простое письмо с помощью
класса Mailer:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentMailerMailer;
use SymfonyComponentMimeEmail;
use SymfonyComponentRoutingAttributeRoute;
class MailController extends AbstractController
{
#[Route('/mail', name: 'mail_send')]
public function send(Mailer $mailer): Response
{
$email = (new Email())
->from('sender@example.com')
->to('recipient@example.com')
->subject('Hello')
->text('abcde');
$mailer->send($email);
return new Response('sent');
}
}
?>
Результат выполнения кода:
"sent"
Пример
Давайте отправим письмо с HTML-содержимым:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentMailerMailer;
use SymfonyComponentMimeEmail;
use SymfonyComponentRoutingAttributeRoute;
class MailController extends AbstractController
{
#[Route('/mail-html', name: 'mail_html')]
public function sendHtml(Mailer $mailer): Response
{
$email = (new Email())
->from('sender@example.com')
->to('recipient@example.com')
->subject('Article')
->html('<p>hello</p>');
$mailer->send($email);
return new Response('sent');
}
}
?>
Результат выполнения кода:
"sent"