class MessageEventTestSubscriber

A message event test subscriber.

Hierarchy

  • class \Drupal\mailer_event_subscriber_test\EventSubscriber\MessageEventTestSubscriber implements \Symfony\Component\EventDispatcher\EventSubscriberInterface

Expanded class hierarchy of MessageEventTestSubscriber

1 string reference to 'MessageEventTestSubscriber'
mailer_event_subscriber_test.services.yml in core/modules/mailer/tests/modules/mailer_event_subscriber_test/mailer_event_subscriber_test.services.yml
core/modules/mailer/tests/modules/mailer_event_subscriber_test/mailer_event_subscriber_test.services.yml
1 service uses MessageEventTestSubscriber
mailer_event_subscriber_test.message_event_test_subscriber in core/modules/mailer/tests/modules/mailer_event_subscriber_test/mailer_event_subscriber_test.services.yml
Drupal\mailer_event_subscriber_test\EventSubscriber\MessageEventTestSubscriber

File

core/modules/mailer/tests/modules/mailer_event_subscriber_test/src/EventSubscriber/MessageEventTestSubscriber.php, line 16

Namespace

Drupal\mailer_event_subscriber_test\EventSubscriber
View source
class MessageEventTestSubscriber implements EventSubscriberInterface {
  
  /**
   * Constructs a new message event test subscriber.
   *
   * @param \Drupal\Core\State\StateInterface $state
   *   The state service.
   */
  public function __construct(protected StateInterface $state) {
  }
  
  /**
   * Sets a custom from header.
   *
   * @param \Symfony\Component\Mailer\Event\MessageEvent $event
   *   The message event.
   */
  public function setCustomFrom(MessageEvent $event) : void {
    $customFrom = $this->state
      ->get('mailer_event_subscriber_test.set_custom_from');
    $message = $event->getMessage();
    if (!empty($customFrom) && $message instanceof Email) {
      $message->from(Address::create($customFrom));
    }
  }
  
  /**
   * Sets a custom message sender header.
   *
   * @param \Symfony\Component\Mailer\Event\MessageEvent $event
   *   The message event.
   */
  public function setCustomMessageSender(MessageEvent $event) : void {
    $customFrom = $this->state
      ->get('mailer_event_subscriber_test.set_custom_message_sender');
    $message = $event->getMessage();
    if (!empty($customFrom) && $message instanceof Email) {
      $message->sender(Address::create($customFrom));
    }
  }
  
  /**
   * Sets a custom envelope sender.
   *
   * @param \Symfony\Component\Mailer\Event\MessageEvent $event
   *   The message event.
   */
  public function setCustomEnvelopeSender(MessageEvent $event) : void {
    $customEnvelopeSender = $this->state
      ->get('mailer_event_subscriber_test.set_custom_envelope_sender');
    if (!empty($customEnvelopeSender)) {
      $envelope = $event->getEnvelope();
      $envelope->setSender(Address::create($customEnvelopeSender));
    }
  }
  
  /**
   * {@inheritdoc}
   */
  public static function getSubscribedEvents() : array {
    return [
      MessageEvent::class => [
        [
          'setCustomFrom',
          0,
        ],
        [
          'setCustomMessageSender',
          0,
        ],
        [
          'setCustomEnvelopeSender',
          0,
        ],
      ],
    ];
  }

}

Members

Title Sort descending Modifiers Object type Summary
MessageEventTestSubscriber::getSubscribedEvents public static function
MessageEventTestSubscriber::setCustomEnvelopeSender public function Sets a custom envelope sender.
MessageEventTestSubscriber::setCustomFrom public function Sets a custom from header.
MessageEventTestSubscriber::setCustomMessageSender public function Sets a custom message sender header.
MessageEventTestSubscriber::__construct public function Constructs a new message event test subscriber.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.