Skip to content

Commit 628f4c6

Browse files
committed
maintain sender/recipient name in SMTP envelopes
1 parent 9407c6b commit 628f4c6

File tree

2 files changed

+18
-7
lines changed

2 files changed

+18
-7
lines changed

src/Symfony/Component/Mailer/DelayedSmtpEnvelope.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public function getSender(): Address
4747
return parent::getSender();
4848
}
4949

50-
return new Address(self::getSenderFromHeaders($this->message->getHeaders())->getAddress());
50+
return self::getSenderFromHeaders($this->message->getHeaders());
5151
}
5252

5353
public function setRecipients(array $recipients): void
@@ -75,7 +75,7 @@ private static function getRecipientsFromHeaders(Headers $headers): array
7575
foreach (['to', 'cc', 'bcc'] as $name) {
7676
foreach ($headers->all($name) as $header) {
7777
foreach ($header->getAddresses() as $address) {
78-
$recipients[] = new Address($address->getAddress());
78+
$recipients[] = $address;
7979
}
8080
}
8181
}

src/Symfony/Component/Mailer/Tests/SmtpEnvelopeTest.php

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,19 +56,19 @@ public function testSenderFromHeaders()
5656
$headers->addPathHeader('Return-Path', new NamedAddress('return@symfony.com', 'return'));
5757
$headers->addMailboxListHeader('To', ['from@symfony.com']);
5858
$e = SmtpEnvelope::create(new Message($headers));
59-
$this->assertEquals('return@symfony.com', $e->getSender()->getAddress());
59+
$this->assertEquals(new NamedAddress('return@symfony.com', 'return'), $e->getSender());
6060

6161
$headers = new Headers();
6262
$headers->addMailboxHeader('Sender', new NamedAddress('sender@symfony.com', 'sender'));
6363
$headers->addMailboxListHeader('To', ['from@symfony.com']);
6464
$e = SmtpEnvelope::create(new Message($headers));
65-
$this->assertEquals('sender@symfony.com', $e->getSender()->getAddress());
65+
$this->assertEquals(new NamedAddress('sender@symfony.com', 'sender'), $e->getSender());
6666

6767
$headers = new Headers();
6868
$headers->addMailboxListHeader('From', [new NamedAddress('from@symfony.com', 'from'), 'some@symfony.com']);
6969
$headers->addMailboxListHeader('To', ['from@symfony.com']);
7070
$e = SmtpEnvelope::create(new Message($headers));
71-
$this->assertEquals('from@symfony.com', $e->getSender()->getAddress());
71+
$this->assertEquals(new NamedAddress('from@symfony.com', 'from'), $e->getSender());
7272
}
7373

7474
public function testSenderFromHeadersWithoutFrom()
@@ -77,17 +77,28 @@ public function testSenderFromHeadersWithoutFrom()
7777
$headers->addMailboxListHeader('To', ['from@symfony.com']);
7878
$e = SmtpEnvelope::create($message = new Message($headers));
7979
$message->getHeaders()->addMailboxListHeader('From', [new NamedAddress('from@symfony.com', 'from')]);
80-
$this->assertEquals('from@symfony.com', $e->getSender()->getAddress());
80+
$this->assertEquals(new NamedAddress('from@symfony.com', 'from'), $e->getSender());
8181
}
8282

8383
public function testRecipientsFromHeaders()
84+
{
85+
$headers = new Headers();
86+
$headers->addPathHeader('Return-Path', 'return@symfony.com');
87+
$headers->addMailboxListHeader('To', [new Address('to@symfony.com')]);
88+
$headers->addMailboxListHeader('Cc', [new Address('cc@symfony.com')]);
89+
$headers->addMailboxListHeader('Bcc', [new Address('bcc@symfony.com')]);
90+
$e = SmtpEnvelope::create(new Message($headers));
91+
$this->assertEquals([new Address('to@symfony.com'), new Address('cc@symfony.com'), new Address('bcc@symfony.com')], $e->getRecipients());
92+
}
93+
94+
public function testRecipientsFromHeadersWithNames()
8495
{
8596
$headers = new Headers();
8697
$headers->addPathHeader('Return-Path', 'return@symfony.com');
8798
$headers->addMailboxListHeader('To', [new NamedAddress('to@symfony.com', 'to')]);
8899
$headers->addMailboxListHeader('Cc', [new NamedAddress('cc@symfony.com', 'cc')]);
89100
$headers->addMailboxListHeader('Bcc', [new NamedAddress('bcc@symfony.com', 'bcc')]);
90101
$e = SmtpEnvelope::create(new Message($headers));
91-
$this->assertEquals([new Address('to@symfony.com'), new Address('cc@symfony.com'), new Address('bcc@symfony.com')], $e->getRecipients());
102+
$this->assertEquals([new NamedAddress('to@symfony.com', 'to'), new NamedAddress('cc@symfony.com', 'cc'), new NamedAddress('bcc@symfony.com', 'bcc')], $e->getRecipients());
92103
}
93104
}

0 commit comments

Comments
 (0)