vendor/boldr/cms-bundle/src/EventSubscriber/MailSubscriber.php line 27

Open in your IDE?
  1. <?php
  2. namespace Boldr\Cms\CmsBundle\EventSubscriber;
  3. use Symfony\Component\Mailer\Event\MessageEvent;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use Boldr\Cms\CmsBundle\MailRenderer;
  6. class MailSubscriber implements EventSubscriberInterface
  7. {
  8. private MailRenderer $mailRenderer;
  9. public function __construct(MailRenderer $mailRenderer)
  10. {
  11. $this->mailRenderer = $mailRenderer;
  12. }
  13. public static function getSubscribedEvents()
  14. {
  15. return [
  16. MessageEvent::class => [['onMessage']]
  17. ];
  18. }
  19. public function onMessage(MessageEvent $event): void
  20. {
  21. $message = $event->getMessage();
  22. if (method_exists($message, 'getHtmlBody') && method_exists($message, 'html') && method_exists($message, 'getSubject'))
  23. {
  24. $message->html($this->mailRenderer->renderMail($message->getHtmlBody(), $message->getSubject()));
  25. }
  26. }
  27. }