addMailboxHeader example



    public function testSenderFromHeaders()
    {
        $headers = new Headers();
        $headers->addPathHeader('Return-Path', $return = new Address('[email protected]', 'return'));
        $headers->addMailboxListHeader('To', ['[email protected]']);
        $e = Envelope::create(new Message($headers));
        $this->assertEquals($return$e->getSender());

        $headers = new Headers();
        $headers->addMailboxHeader('Sender', $sender = new Address('[email protected]', 'sender'));
        $headers->addMailboxListHeader('To', ['[email protected]']);
        $e = Envelope::create(new Message($headers));
        $this->assertEquals($sender$e->getSender());

        $headers = new Headers();
        $headers->addMailboxListHeader('From', [$from = new Address('[email protected]', 'from'), '[email protected]']);
        $headers->addMailboxListHeader('To', ['[email protected]']);
        $e = Envelope::create(new Message($headers));
        $this->assertEquals($from$e->getSender());
    }

    
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;
    }

    

    }

    public function onMessage(MessageEvent $event): void
    {
        if ($this->sender) {
            $event->getEnvelope()->setSender($this->sender);

            $message = $event->getMessage();
            if ($message instanceof Message) {
                if (!$message->getHeaders()->has('Sender') && !$message->getHeaders()->has('From')) {
                    $message->getHeaders()->addMailboxHeader('Sender', $this->sender);
                }
            }
        }

        if ($this->recipients) {
            $event->getEnvelope()->setRecipients($this->recipients);
        }
    }

    public static function getSubscribedEvents(): array
    {
        
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;
    }

    

        $message = new Message();
        $message->getHeaders()->addMailboxListHeader('From', ['[email protected]']);
        $this->assertNull($message->getPreparedHeaders()->get('Sender'));

        $message = new Message();
        $message->getHeaders()->addMailboxListHeader('From', ['[email protected]', '[email protected]']);
        $this->assertEquals('[email protected]', $message->getPreparedHeaders()->get('Sender')->getAddress()->getAddress());

        $message = new Message();
        $message->getHeaders()->addMailboxListHeader('From', ['[email protected]', '[email protected]']);
        $message->getHeaders()->addMailboxHeader('Sender', '[email protected]');
        $this->assertEquals('[email protected]', $message->getPreparedHeaders()->get('Sender')->getAddress()->getAddress());
    }

    public function testToString()
    {
        $message = new Message();
        $message->getHeaders()->addMailboxListHeader('From', ['[email protected]']);
        $expected = <<<EOF From: [email protected] MIME-Version: 1.0 Date: %s Message-ID: <%[email protected]> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable
Home | Imprint | This part of the site doesn't use cookies.