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 3e8a726

Browse filesBrowse files
committed
Merge branch '4.3' into 4.4
* 4.3: maintain sender/recipient name in SMTP envelopes Fix #32148 TransportException was not thrown
2 parents 6988286 + 828e5a4 commit 3e8a726
Copy full SHA for 3e8a726

File tree

4 files changed

+21
-10
lines changed
Filter options

4 files changed

+21
-10
lines changed

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

Copy file name to clipboardExpand all lines: src/Symfony/Component/Mailer/DelayedSmtpEnvelope.php
+2-2Lines 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/Tests/SmtpEnvelopeTest.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/Mailer/Tests/SmtpEnvelopeTest.php
+16-5Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,19 +57,19 @@ public function testSenderFromHeaders()
5757
$headers->addPathHeader('Return-Path', new Address('return@symfony.com', 'return'));
5858
$headers->addMailboxListHeader('To', ['from@symfony.com']);
5959
$e = SmtpEnvelope::create(new Message($headers));
60-
$this->assertEquals('return@symfony.com', $e->getSender()->getAddress());
60+
$this->assertEquals(new Address('return@symfony.com', 'return'), $e->getSender());
6161

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

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

7575
public function testSenderFromHeadersWithoutFrom()
@@ -78,18 +78,29 @@ public function testSenderFromHeadersWithoutFrom()
7878
$headers->addMailboxListHeader('To', ['from@symfony.com']);
7979
$e = SmtpEnvelope::create($message = new Message($headers));
8080
$message->getHeaders()->addMailboxListHeader('From', [new Address('from@symfony.com', 'from')]);
81-
$this->assertEquals('from@symfony.com', $e->getSender()->getAddress());
81+
$this->assertEquals(new Address('from@symfony.com', 'from'), $e->getSender());
8282
}
8383

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

95106
public function testFromRawMessages()

‎src/Symfony/Component/Mailer/Transport/Smtp/SmtpTransport.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/Mailer/Transport/Smtp/SmtpTransport.php
+2-2Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,9 +165,9 @@ 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) {
170-
$this->doRcptToCommand($recipient->toString());
170+
$this->doRcptToCommand($recipient->getAddress());
171171
}
172172

173173
$this->executeCommand("DATA\r\n", [354]);

‎src/Symfony/Component/Mailer/Transport/Smtp/Stream/AbstractStream.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/Mailer/Transport/Smtp/Stream/AbstractStream.php
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public function write(string $bytes, $debug = true): void
4141
$bytesToWrite = \strlen($bytes);
4242
$totalBytesWritten = 0;
4343
while ($totalBytesWritten < $bytesToWrite) {
44-
$bytesWritten = fwrite($this->in, substr($bytes, $totalBytesWritten));
44+
$bytesWritten = @fwrite($this->in, substr($bytes, $totalBytesWritten));
4545
if (false === $bytesWritten || 0 === $bytesWritten) {
4646
throw new TransportException('Unable to write bytes on the wire.');
4747
}

0 commit comments

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