8000 maintain sender/recipient name in SMTP envelopes · symfony/symfony@28ecf36 · GitHub
[go: up one dir, main page]

Skip to content

Commit 28ecf36

Browse files
committed
maintain sender/recipient name in SMTP envelopes
1 parent bcc6d31 commit 28ecf36

File tree

5 files changed

+16
-10
lines changed

5 files changed

+16
-10
lines changed

src/Symfony/Component/Mailer/DelayedSmtpEnvelope.php

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

48-
return new Address(self::getSenderFromHeaders($this->message->getHeaders())->getAddress());
48+
return self::getSenderFromHeaders($this->message->getHeaders());
4949
}
5050

5151
public function setRecipients(array $recipients): void
@@ -73,7 +73,7 @@ private static function getRecipientsFromHeaders(Headers $headers): array
7373
foreach (['to', 'cc', 'bcc'] as $name) {
7474
foreach ($headers->all($name) as $header) {
7575
foreach ($header->getAddresses() as $address) {
76-
$recipients[] = new Address($address->getAddress());
76+
$recipients[] = $address;
7777
}
7878
}
7979
}

src/Symfony/Component/Mailer/SmtpEnvelope.php

Lines 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 = $sender;
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[] = $recipient;
6565
}
6666
}
6767

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

Lines 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/Transport/Smtp/SmtpTransport.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ protected function doSend(SentMessage $message): void
165165
{
166166
try {
167167
$envelope = $message->getEnvelope();
168-
$this->doMailFromCommand($envelope->getSender()->toString());
168+
$this->doMailFromCommand($envelope->getSender()->getAddress());
169169
foreach ($envelope->getRecipients() as $recipient) {
170170
$this->doRcptToCommand($recipient->toString());
171171
}

src/Symfony/Component/Mailer/composer.json

Lines 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