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

Breadcrumb

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

function Message::getPreparedHeaders

1 method overrides Message::getPreparedHeaders()
DraftEmail::getPreparedHeaders in vendor/symfony/mime/DraftEmail.php
Override default behavior as draft emails do not require From/Sender/Date/Message-ID headers. These are added by the client that actually sends the email.

File

vendor/symfony/mime/Message.php, line 72

Class

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

Namespace

Symfony\Component\Mime

Code

public function getPreparedHeaders() : Headers {
    $headers = clone $this->headers;
    if (!$headers->has('From')) {
        if (!$headers->has('Sender')) {
            throw new LogicException('An email must have a "From" or a "Sender" header.');
        }
        $headers->addMailboxListHeader('From', [
            $headers->get('Sender')
                ->getAddress(),
        ]);
    }
    if (!$headers->has('MIME-Version')) {
        $headers->addTextHeader('MIME-Version', '1.0');
    }
    if (!$headers->has('Date')) {
        $headers->addDateHeader('Date', new \DateTimeImmutable());
    }
    // determine the "real" sender
    if (!$headers->has('Sender') && \count($froms = $headers->get('From')
        ->getAddresses()) > 1) {
        $headers->addMailboxHeader('Sender', $froms[0]);
    }
    if (!$headers->has('Message-ID')) {
        $headers->addIdHeader('Message-ID', $this->generateMessageId());
    }
    // remove the Bcc field which should NOT be part of the sent message
    $headers->remove('Bcc');
    return $headers;
}
RSS feed
Powered by Drupal