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\MailerView 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' localpart contains at least one non-ASCII character, and false if all addresses have all-ASCII localparts. |
|
Envelope::create | public static | function |