Skip to content

Commit 977abdb

Browse files
committed
fix: support SmsMessage with 'from' set
Fixes `Error Email does not comply with addr-spec of RFC 2822` See: #58535
1 parent 7b4ec02 commit 977abdb

File tree

4 files changed

+29
-6
lines changed

4 files changed

+29
-6
lines changed

src/Symfony/Component/Notifier/Bridge/FakeSms/FakeSmsEmailTransport.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,9 @@ protected function doSend(MessageInterface $message): SentMessage
6565
}
6666

6767
$email = (new Email())
68-
->from($message->getFrom() ?: $this->from)
68+
->from($this->from)
6969
->to($this->to)
70-
->subject(sprintf('New SMS on phone number: %s', $message->getPhone()))
70+
->subject('New SMS to phone number ' . $message->getPhone() . ($message->getFrom() ? ' from ' . $message->getFrom() : ''))
7171
->html($message->getSubject())
7272
->text($message->getSubject());
7373

src/Symfony/Component/Notifier/Bridge/FakeSms/FakeSmsLoggerTransport.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ protected function doSend(MessageInterface $message): SentMessage
5555
throw new UnsupportedMessageTypeException(__CLASS__, SmsMessage::class, $message);
5656
}
5757

58-
$this->logger->info(sprintf('New SMS on phone number: %s', $message->getPhone()));
58+
$this->logger->info('New SMS to phone number ' . $message->getPhone() . ($message->getFrom() ? ' from ' . $message->getFrom() : ''));
5959

6060
return new SentMessage($message, (string) $this);
6161
}

src/Symfony/Component/Notifier/Bridge/FakeSms/Tests/FakeSmsEmailTransportTest.php

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,30 @@ public function testSendWithDefaultTransport()
7070
$this->assertInstanceOf(Email::class, $sentEmail);
7171
$this->assertSame($to, $sentEmail->getTo()[0]->getEncodedAddress());
7272
$this->assertSame($from, $sentEmail->getFrom()[0]->getEncodedAddress());
73-
$this->assertSame(sprintf('New SMS on phone number: %s', $phone), $sentEmail->getSubject());
73+
$this->assertSame(\sprintf('New SMS to phone number %s', $phone), $sentEmail->getSubject());
74+
$this->assertSame($subject, $sentEmail->getTextBody());
75+
$this->assertFalse($sentEmail->getHeaders()->has('X-Transport'));
76+
}
77+
78+
public function testSendWithFrom()
79+
{
80+
$transportName = null;
81+
82+
$message = new SmsMessage($phone = '0611223344', $subject = 'Hello!', $fromPhone = '0655667788');
83+
84+
$mailer = new DummyMailer();
85+
86+
$transport = (new FakeSmsEmailTransport($mailer, $to = 'recipient@email.net', $from = 'sender@email.net'));
87+
$transport->setHost($transportName);
88+
89+
$transport->send($message);
90+
91+
/** @var Email $sentEmail */
92+
$sentEmail = $mailer->getSentEmail();
93+
$this->assertInstanceOf(Email::class, $sentEmail);
94+
$this->assertSame($to, $sentEmail->getTo()[0]->getEncodedAddress());
95+
$this->assertSame($from, $sentEmail->getFrom()[0]->getEncodedAddress());
96+
$this->assertSame(\sprintf('New SMS to phone number %s from %s', $phone, $fromPhone), $sentEmail->getSubject());
7497
$this->assertSame($subject, $sentEmail->getTextBody());
7598
$this->assertFalse($sentEmail->getHeaders()->has('X-Transport'));
7699
}
@@ -93,7 +116,7 @@ public function testSendWithCustomTransport()
93116
$this->assertInstanceOf(Email::class, $sentEmail);
94117
$this->assertSame($to, $sentEmail->getTo()[0]->getEncodedAddress());
95118
$this->assertSame($from, $sentEmail->getFrom()[0]->getEncodedAddress());
96-
$this->assertSame(sprintf('New SMS on phone number: %s', $phone), $sentEmail->getSubject());
119+
$this->assertSame(\sprintf('New SMS to phone number %s', $phone), $sentEmail->getSubject());
97120
$this->assertSame($subject, $sentEmail->getTextBody());
98121
$this->assertTrue($sentEmail->getHeaders()->has('X-Transport'));
99122
$this->assertSame($transportName, $sentEmail->getHeaders()->get('X-Transport')->getBody());

src/Symfony/Component/Notifier/Bridge/FakeSms/Tests/FakeSmsLoggerTransportTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public function testSendWithDefaultTransport()
6161
$this->assertNotEmpty($logs);
6262

6363
$log = $logs[0];
64-
$this->assertSame(sprintf('New SMS on phone number: %s', $phone), $log['message']);
64+
$this->assertSame(\sprintf('New SMS to phone number %s', $phone), $log['message']);
6565
$this->assertSame('info', $log['level']);
6666
}
6767
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy