Метод asEmailMessage класса Notification
Метод asEmailMessage класса Notification
преобразует уведомление в объект EmailMessage,
который затем отправляется через email-канал.
Метод принимает первым параметром объект
EmailMessage, в который можно добавить
получателей, тему, HTML-содержимое и вложения.
Возвращает метод тот же объект EmailMessage.
Синтаксис
public function asEmailMessage(EmailMessage $email): EmailMessage
Пример
Давайте создадим уведомление и преобразуем его в email-сообщение:
<?php
namespace AppNotification;
use SymfonyComponentNotifierNotification;
use SymfonyComponentNotifierChannelEmailChannelEmailMessage;
class ArticleNotification extends Notification
{
public function asEmailMessage(EmailMessage $email): EmailMessage
{
$email->to('user@example.com');
$email->subject('article');
$email->html('<p>hello</p>');
return $email;
}
}
?>
Пример
Давайте отправим уведомление через Notifier,
используя метод asEmailMessage:
<?php
namespace AppController;
use AppNotificationArticleNotification;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentNotifierNotifierInterface;
use SymfonyComponentRoutingAttributeRoute;
class ArticleController extends AbstractController
{
#[Route('/notify', name: 'article_notify')]
public function notify(NotifierInterface $notifier): Response
{
$notification = new ArticleNotification();
$notifier->send($notification);
return new Response('hello');
}
}
?>
Результат выполнения кода:
"hello"
Пример
Давайте добавим нескольких получателей и вложение:
<?php
namespace AppNotification;
use SymfonyComponentMimePartFile;
use SymfonyComponentNotifierNotification;
use SymfonyComponentNotifierChannelEmailChannelEmailMessage;
class ArticleNotification extends Notification
{
public function asEmailMessage(EmailMessage $email): EmailMessage
{
$email->to('user@example.com');
$email->cc('admin@example.com');
$email->subject('article');
$email->html('<p>abcde</p>');
$email->attach(new File('/path/to/file.txt'));
return $email;
}
}
?>
Смотрите также
-
класс
Notification,
который представляет уведомление -
метод
content,
который задаёт содержимое уведомления -
метод
subject,
который задаёт тему уведомления -
класс
Notifier,
который отправляет уведомления