Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. Transports.php

function Transports::send

Overrides TransportInterface::send

File

vendor/symfony/mailer/Transport/Transports.php, line 47

Class

Transports
@author Fabien Potencier <fabien@symfony.com>

Namespace

Symfony\Component\Mailer\Transport

Code

public function send(RawMessage $message, ?Envelope $envelope = null) : ?SentMessage {
    
    /** @var Message $message */
    if (RawMessage::class === $message::class || !$message->getHeaders()
        ->has('X-Transport')) {
        return $this->default
            ->send($message, $envelope);
    }
    $headers = $message->getHeaders();
    $transport = $headers->get('X-Transport')
        ->getBody();
    $headers->remove('X-Transport');
    if (!isset($this->transports[$transport])) {
        throw new InvalidArgumentException(\sprintf('The "%s" transport does not exist (available transports: "%s").', $transport, implode('", "', array_keys($this->transports))));
    }
    try {
        return $this->transports[$transport]
            ->send($message, $envelope);
    } catch (\Throwable $e) {
        $headers->addTextHeader('X-Transport', $transport);
        throw $e;
    }
}
RSS feed
Powered by Drupal