Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit c1d2451

Browse filesBrowse files
committed
maintain sender/recipient name in SMTP envelopes
1 parent bcc6d31 commit c1d2451
Copy full SHA for c1d2451

File tree

4 files changed

+17
-9
lines changed
Filter options

4 files changed

+17
-9
lines changed

‎src/Symfony/Component/Mailer/DelayedSmtpEnvelope.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/Mailer/DelayedSmtpEnvelope.php
+4-2Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,9 @@ public function getSender(): Address
4545
return parent::getSender();
4646
}
4747

48-
return new Address(self::getSenderFromHeaders($this->message->getHeaders())->getAddress());
48+
$address = self::getSenderFromHeaders($this->message->getHeaders());
49+
50+
return new Address($address->getAddress(), $address->getName());
4951
}
5052

5153
public function setRecipients(array $recipients): void
@@ -73,7 +75,7 @@ private static function getRecipientsFromHeaders(Headers $headers): array
7375
foreach (['to', 'cc', 'bcc'] as $name) {
7476
foreach ($headers->all($name) as $header) {
7577
foreach ($header->getAddresses() as $address) {
76-
$recipients[] = new Address($address->getAddress());
78+
$recipients[] = new Address($address->getAddress(), $address->getName());
7779
}
7880
}
7981
}

‎src/Symfony/Component/Mailer/SmtpEnvelope.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/Mailer/SmtpEnvelope.php
+2-2Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public static function create(RawMessage $message): self
3939

4040
public function setSender(Address $sender): void
4141
{
42-
$this->sender = new Address($sender->getAddress());
42+
$this->sender = new Address($sender->getAddress(), $sender->getName());
4343
}
4444

4545
public function getSender(): Address
@@ -61,7 +61,7 @@ public function setRecipients(array $recipients): void
6161
if (!$recipient instanceof Address) {
6262
throw new InvalidArgumentException(sprintf('A recipient must be an instance of "%s" (got "%s").', Address::class, \is_object($recipient) ? \get_class($recipient) : \gettype($recipient)));
6363
}
64-
$this->recipients[] = new Address($recipient->getAddress());
64+
$this->recipients[] = new Address($recipient->getAddress(), $recipient->getName());
6565
}
6666
}
6767

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

Copy file name to clipboardExpand all lines: src/Symfony/Component/Mailer/Tests/SmtpEnvelopeTest.php
+10-4Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,21 @@ public function testConstructorWithAddressSender()
2828
public function testConstructorWithNamedAddressSender()
2929
{
3030
$e = new SmtpEnvelope(new Address('fabien@symfony.com', 'Fabien'), [new Address('thomas@symfony.com')]);
31-
$this->assertEquals(new Address('fabien@symfony.com'), $e->getSender());
31+
$this->assertEquals(new Address('fabien@symfony.com', 'Fabien'), $e->getSender());
3232
}
3333

3434
public function testConstructorWithAddressRecipients()
3535
{
36-
$e = new SmtpEnvelope(new Address('fabien@symfony.com'), [new Address('thomas@symfony.com'), new Address('lucas@symfony.com', 'Lucas')]);
36+
$e = new SmtpEnvelope(new Address('fabien@symfony.com'), [new Address('thomas@symfony.com'), new Address('lucas@symfony.com')]);
3737
$this->assertEquals([new Address('thomas@symfony.com'), new Address('lucas@symfony.com')], $e->getRecipients());
3838
}
3939

40+
public function testConstructorWithNamedAddressRecipients()
41+
{
42+
$e = new SmtpEnvelope(new Address('fabien@symfony.com'), [new Address('thomas@symfony.com', 'Thomas'), new Address('lucas@symfony.com', 'Lucas')]);
43+
$this->assertEquals([new Address('thomas@symfony.com', 'Thomas'), new Address('lucas@symfony.com', 'Lucas')], $e->getRecipients());
44+
}
45+
4046
public function testConstructorWithNoRecipients()
4147
{
4248
$this->expectException(\InvalidArgumentException::class);
@@ -55,7 +61,7 @@ public function testSenderFromHeaders()
5561
$headers->addPathHeader('Return-Path', new Address('return@symfony.com', 'return'));
5662
$headers->addMailboxListHeader('To', ['from@symfony.com']);
5763
$e = SmtpEnvelope::create(new Message($headers));
58-
$this->assertEquals('return@symfony.com', $e->getSender()->getAddress());
64+
$this->assertEquals(new Address('return@symfony.com', 'return'), $e->getSender());
5965

6066
$headers = new Headers();
6167
$headers->addMailboxHeader('Sender', new Address('sender@symfony.com', 'sender'));
@@ -87,6 +93,6 @@ public function testRecipientsFromHeaders()
8793
$headers->addMailboxListHeader('Cc', [new Address('cc@symfony.com', 'cc')]);
8894
$headers->addMailboxListHeader('Bcc', [new Address('bcc@symfony.com', 'bcc')]);
8995
$e = SmtpEnvelope::create(new Message($headers));
90-
$this->assertEquals([new Address('to@symfony.com'), new Address('cc@symfony.com'), new Address('bcc@symfony.com')], $e->getRecipients());
96+
$this->assertEquals([new Address('to@symfony.com', 'to'), new Address('cc@symfony.com', 'cc'), new Address('bcc@symfony.com', 'bcc')], $e->getRecipients());
9197
}
9298
}

‎src/Symfony/Component/Mailer/composer.json

Copy file name to clipboardExpand all lines: src/Symfony/Component/Mailer/composer.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"egulias/email-validator": "^2.1.10",
2121
"psr/log": "~1.0",
2222
"symfony/event-dispatcher": "^4.3",
23-
"symfony/mime": "^4.3.3|^5.0",
23+
"symfony/mime": "^4.4|^5.0",
2424
"symfony/service-contracts": "^1.1"
2525
},
2626
"require-dev": {

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.