Метод send класса Mailer
Метод send класса Mailer принимает объект Email
и отправляет его получателям. Первым параметром передаётся
сформированное письмо, вторым (необязательным) - конверт
Envelope, который переопределяет адреса отправителя и получателей.
Если отправка прошла успешно, метод возвращает объект
SentMessage, иначе выбрасывает исключение
TransportExceptionInterface.
Синтаксис
$mailer->send(Email $email, ?Envelope $envelope = null): ?SentMessage
Пример
Давайте отправим простое письмо с текстом 'hello':
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentMailerMailerInterface;
use SymfonyComponentMimeEmail;
use SymfonyComponentRoutingAttributeRoute;
class MailController extends AbstractController
{
#[Route('/mail', name: 'mail_send')]
public function send(MailerInterface $mailer): Response
{
$email = (new Email())
->from('sender@example.com')
->to('recipient@example.com')
->subject('Article')
->text('hello');
$mailer->send($email);
return new Response('sent');
}
}
?>
Результат выполнения кода:
"sent"
Пример
Давайте отправим письмо с HTML-содержимым:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentMailerMailerInterface;
use SymfonyComponentMimeEmail;
use SymfonyComponentRoutingAttributeRoute;
class MailController extends AbstractController
{
#[Route('/mail-html', name: 'mail_html')]
public function sendHtml(MailerInterface $mailer): Response
{
$email = (new Email())
->from('sender@example.com')
->to('recipient@example.com')
->subject('Article')
->html('<p>hello</p>');
$sentMessage = $mailer->send($email);
return new Response($sentMessage->getMessageId());
}
}
?>
Результат выполнения кода:
"abcde@example.com"
Пример
Давайте отправим письмо нескольким получателям, используя метод to:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentMailerMailerInterface;
use SymfonyComponentMimeEmail;
use SymfonyComponentRoutingAttributeRoute;
class MailController extends AbstractController
{
#[Route('/mail-many', name: 'mail_many')]
public function sendMany(MailerInterface $mailer): Response
{
$email = (new Email())
->from('sender@example.com')
->to('user1@example.com')
->to('user2@example.com')
->subject('Article')
->text('hello');
$mailer->send($email);
return new Response('sent');
}
}
?>
Результат выполнения кода:
"sent"