postoffice-1.0.x-dev/extensions/postoffice_html2text/src/EventSubscriber/MessageSubscriber.php

extensions/postoffice_html2text/src/EventSubscriber/MessageSubscriber.php
<?php

namespace Drupal\postoffice_html2text\EventSubscriber;

use Soundasleep\Html2Text;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Mailer\Event\MessageEvent;
use Symfony\Component\Mime\Email;

/**
 * Message subscriber which is responsible for inlining CSS.
 *
 * Runs with priority -100 in order (after Symfony MessageListener which is
 * responsible for body rendering).
 */
class MessageSubscriber implements EventSubscriberInterface {

  /**
   * {@inheritdoc}
   */
  public static function getSubscribedEvents(): array {
    $events = [];

    if (class_exists('\Soundasleep\Html2Text')) {
      $events[MessageEvent::class] = ['onMessage', -100];

    }

    return $events;
  }

  /**
   * Generate a text fallback if possible.
   */
  public function onMessage(MessageEvent $event): void {
    $message = $event->getMessage();
    if ($message instanceof Email && $message->getHtmlBody() && !$message->getTextBody()) {
      $message->text(Html2Text::convert($message->getHtmlBody()));
    }
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc