使用电子邮件渠道时,如何使用通知程序将通知作为 HTML 的内容发送?
How to send the notification as content as HTML with Notifier when using the email channel?
是否可以使用新的 Symfony Notifier 服务以 html 的身份发送电子邮件?怎么样?
这个简单的问题没有太多的上下文可以添加。 Notifier class 是 Symfony 5 中的一项新服务,它实现了通过不同渠道发送通知。它目前被标记为“实验性”,因此在满足特定需求时没有很好的文档。
这里有一些代码示例:
$emailSubject = $this->getParameter('app.registration.email_subject_activation');
$emailContent = $this->render('email/user-activation.html.twig', ['activation_link' => $activationLink]);
$notification = (new Notification($emailSubject, ['email']))->content($emailContent);
$recipient = new Recipient($user->getEmail());
$sentMessage = $notifier->send($notification, $recipient);
模板内容为纯文本,带有 html 个标签,全部在电子邮件中。
如果您想发送 HTML 内容,您更适合直接使用 Symfony Mailer 而不是通过 Notifier。
Notifier 是许多具有截然不同功能的传输的抽象。例如。并非所有聊天消息都以相同的方式对待 HTML。短信支持 0 HTML。等等
考虑到这一点,Notifier 迎合了纯文本的最小分母。无论您在 content()
中输入什么,都将以纯文本形式在任何和所有媒体中呈现给最终用户。请记住,同一通知可以同时发送到多个频道。
直接使用 Mailer,你可以简单地做(按照你的例子):
$email = new NotficationEmail();
$email->htmlTemplate('email/user-activation.html.twig')
->context(['activation_link' => $activationLink])
->to($user->getEmail())
->subject($ths->getParameter('app.registration.email_subject_activation'))
;
$mailer->send($email);
您可以根据需要自定义通知消息并创建模板电子邮件。请检查以下 link
https://symfony.com/doc/current/notifier.html#customize-notification-messages
您可以在 Symfony 安全包中检查实现:
Symfony\Component\Security\Http\LoginLink\LoginLinkNotification
是否可以使用新的 Symfony Notifier 服务以 html 的身份发送电子邮件?怎么样?
这个简单的问题没有太多的上下文可以添加。 Notifier class 是 Symfony 5 中的一项新服务,它实现了通过不同渠道发送通知。它目前被标记为“实验性”,因此在满足特定需求时没有很好的文档。
这里有一些代码示例:
$emailSubject = $this->getParameter('app.registration.email_subject_activation');
$emailContent = $this->render('email/user-activation.html.twig', ['activation_link' => $activationLink]);
$notification = (new Notification($emailSubject, ['email']))->content($emailContent);
$recipient = new Recipient($user->getEmail());
$sentMessage = $notifier->send($notification, $recipient);
模板内容为纯文本,带有 html 个标签,全部在电子邮件中。
如果您想发送 HTML 内容,您更适合直接使用 Symfony Mailer 而不是通过 Notifier。
Notifier 是许多具有截然不同功能的传输的抽象。例如。并非所有聊天消息都以相同的方式对待 HTML。短信支持 0 HTML。等等
考虑到这一点,Notifier 迎合了纯文本的最小分母。无论您在 content()
中输入什么,都将以纯文本形式在任何和所有媒体中呈现给最终用户。请记住,同一通知可以同时发送到多个频道。
直接使用 Mailer,你可以简单地做(按照你的例子):
$email = new NotficationEmail();
$email->htmlTemplate('email/user-activation.html.twig')
->context(['activation_link' => $activationLink])
->to($user->getEmail())
->subject($ths->getParameter('app.registration.email_subject_activation'))
;
$mailer->send($email);
您可以根据需要自定义通知消息并创建模板电子邮件。请检查以下 link
https://symfony.com/doc/current/notifier.html#customize-notification-messages
您可以在 Symfony 安全包中检查实现:
Symfony\Component\Security\Http\LoginLink\LoginLinkNotification