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

Breadcrumb

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

class DelayedEnvelope

@author Fabien Potencier <fabien@symfony.com>

@internal

Hierarchy

  • class \Symfony\Component\Mailer\Envelope
    • class \Symfony\Component\Mailer\DelayedEnvelope extends \Symfony\Component\Mailer\Envelope

Expanded class hierarchy of DelayedEnvelope

File

vendor/symfony/mailer/DelayedEnvelope.php, line 24

Namespace

Symfony\Component\Mailer
View source
final class DelayedEnvelope extends Envelope {
    private bool $senderSet = false;
    private bool $recipientsSet = false;
    public function __construct(Message $message) {
    }
    public function setSender(Address $sender) : void {
        parent::setSender($sender);
        $this->senderSet = true;
    }
    public function getSender() : Address {
        if (!$this->senderSet) {
            parent::setSender(self::getSenderFromHeaders($this->message
                ->getHeaders()));
        }
        return parent::getSender();
    }
    public function setRecipients(array $recipients) : void {
        parent::setRecipients($recipients);
        $this->recipientsSet = (bool) parent::getRecipients();
    }
    
    /**
     * @return Address[]
     */
    public function getRecipients() : array {
        if ($this->recipientsSet) {
            return parent::getRecipients();
        }
        return self::getRecipientsFromHeaders($this->message
            ->getHeaders());
    }
    private static function getRecipientsFromHeaders(Headers $headers) : array {
        $recipients = [];
        foreach ([
            'to',
            'cc',
            'bcc',
        ] as $name) {
            foreach ($headers->all($name) as $header) {
                foreach ($header->getAddresses() as $address) {
                    $recipients[] = $address;
                }
            }
        }
        return $recipients;
    }
    private static function getSenderFromHeaders(Headers $headers) : Address {
        if ($sender = $headers->get('Sender')) {
            return $sender->getAddress();
        }
        if ($return = $headers->get('Return-Path')) {
            return $return->getAddress();
        }
        if ($from = $headers->get('From')) {
            return $from->getAddresses()[0];
        }
        throw new LogicException('Unable to determine the sender of the message.');
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title
DelayedEnvelope::$recipientsSet private property
DelayedEnvelope::$senderSet private property
DelayedEnvelope::getRecipients public function Overrides Envelope::getRecipients
DelayedEnvelope::getRecipientsFromHeaders private static function
DelayedEnvelope::getSender public function Overrides Envelope::getSender
DelayedEnvelope::getSenderFromHeaders private static function
DelayedEnvelope::setRecipients public function Overrides Envelope::setRecipients
DelayedEnvelope::setSender public function Overrides Envelope::setSender
DelayedEnvelope::__construct public function Overrides Envelope::__construct
Envelope::$recipients private property
Envelope::$sender private property
Envelope::anyAddressHasUnicodeLocalpart public function Returns true if any address&#039; localpart contains at least one
non-ASCII character, and false if all addresses have all-ASCII
localparts.
Envelope::create public static function
RSS feed
Powered by Drupal