From cbd0d2270fc5fc3688cd9cf74b7dcaef11309c4c Mon Sep 17 00:00:00 2001 From: Guillaume Verstraete Date: Thu, 2 Jan 2020 21:22:04 +0100 Subject: [PATCH 1/3] [Mailer] Fix addresses management in Sendgrid payload --- .../Tests/Transport/SendgridApiTransportTest.php | 15 +++++++++++---- .../Sendgrid/Transport/SendgridApiTransport.php | 15 +++++++++++++-- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/Symfony/Component/Mailer/Bridge/Sendgrid/Tests/Transport/SendgridApiTransportTest.php b/src/Symfony/Component/Mailer/Bridge/Sendgrid/Tests/Transport/SendgridApiTransportTest.php index 9ad5c280ecbad..495305d807124 100644 --- a/src/Symfony/Component/Mailer/Bridge/Sendgrid/Tests/Transport/SendgridApiTransportTest.php +++ b/src/Symfony/Component/Mailer/Bridge/Sendgrid/Tests/Transport/SendgridApiTransportTest.php @@ -13,6 +13,7 @@ use PHPUnit\Framework\TestCase; use Symfony\Component\Mailer\Bridge\Sendgrid\Transport\SendgridApiTransport; +use Symfony\Component\Mime\Address; use Symfony\Component\Mime\Email; use Symfony\Contracts\HttpClient\HttpClientInterface; use Symfony\Contracts\HttpClient\ResponseInterface; @@ -48,8 +49,8 @@ public function getTransportData() public function testSend() { $email = new Email(); - $email->from('foo@example.com') - ->to('bar@example.com') + $email->from(new Address('foo@example.com', 'Ms. Foo Bar')) + ->to(new Address('bar@example.com', 'Mr. Recipient')) ->bcc('baz@example.com') ->text('content'); @@ -73,12 +74,18 @@ public function testSend() 'json' => [ 'personalizations' => [ [ - 'to' => [['email' => 'bar@example.com']], + 'to' => [[ + 'email' => 'bar@example.com', + 'name' => 'Mr. Recipient' + ]], 'subject' => null, 'bcc' => [['email' => 'baz@example.com']], ], ], - 'from' => ['email' => 'foo@example.com'], + 'from' => [ + 'email' => 'foo@example.com', + 'name' => 'Ms. Foo Bar' + ], 'content' => [ ['type' => 'text/plain', 'value' => 'content'], ], diff --git a/src/Symfony/Component/Mailer/Bridge/Sendgrid/Transport/SendgridApiTransport.php b/src/Symfony/Component/Mailer/Bridge/Sendgrid/Transport/SendgridApiTransport.php index 262983afd73fd..f80d0b9c09724 100644 --- a/src/Symfony/Component/Mailer/Bridge/Sendgrid/Transport/SendgridApiTransport.php +++ b/src/Symfony/Component/Mailer/Bridge/Sendgrid/Transport/SendgridApiTransport.php @@ -63,11 +63,22 @@ protected function doSendApi(SentMessage $sentMessage, Email $email, Envelope $e private function getPayload(Email $email, Envelope $envelope): array { - $addressStringifier = function (Address $address) {return ['email' => $address->toString()]; }; + $addressStringifier = function (Address $address) { + $stringified = ['email' => $address->getAddress()]; + + if ($address->getName()) { + $stringified['name'] = $address->getName(); + } + + return $stringified; + }; $payload = [ 'personalizations' => [], - 'from' => ['email' => $envelope->getSender()->toString()], + 'from' => [ + 'email' => $envelope->getSender()->getAddress(), + 'name' => $envelope->getSender()->getName(), + ], 'content' => $this->getContent($email), ]; From d9ee58012719741264b0cdd62100700faf21ca52 Mon Sep 17 00:00:00 2001 From: Guillaume Verstraete Date: Thu, 2 Jan 2020 21:52:50 +0100 Subject: [PATCH 2/3] [Mailer] Code more efficient --- .../Bridge/Sendgrid/Transport/SendgridApiTransport.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/Symfony/Component/Mailer/Bridge/Sendgrid/Transport/SendgridApiTransport.php b/src/Symfony/Component/Mailer/Bridge/Sendgrid/Transport/SendgridApiTransport.php index f80d0b9c09724..37740861b862c 100644 --- a/src/Symfony/Component/Mailer/Bridge/Sendgrid/Transport/SendgridApiTransport.php +++ b/src/Symfony/Component/Mailer/Bridge/Sendgrid/Transport/SendgridApiTransport.php @@ -75,10 +75,7 @@ private function getPayload(Email $email, Envelope $envelope): array $payload = [ 'personalizations' => [], - 'from' => [ - 'email' => $envelope->getSender()->getAddress(), - 'name' => $envelope->getSender()->getName(), - ], + 'from' => $addressStringifier($envelope->getSender()), 'content' => $this->getContent($email), ]; From 817b722ef546d8d4742dc8e4f406cc7a3d2bea3b Mon Sep 17 00:00:00 2001 From: Guillaume Verstraete Date: Thu, 2 Jan 2020 22:00:55 +0100 Subject: [PATCH 3/3] [Mailer] Code fix --- .../Sendgrid/Tests/Transport/SendgridApiTransportTest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/Mailer/Bridge/Sendgrid/Tests/Transport/SendgridApiTransportTest.php b/src/Symfony/Component/Mailer/Bridge/Sendgrid/Tests/Transport/SendgridApiTransportTest.php index 495305d807124..c64dd505526a6 100644 --- a/src/Symfony/Component/Mailer/Bridge/Sendgrid/Tests/Transport/SendgridApiTransportTest.php +++ b/src/Symfony/Component/Mailer/Bridge/Sendgrid/Tests/Transport/SendgridApiTransportTest.php @@ -76,7 +76,7 @@ public function testSend() [ 'to' => [[ 'email' => 'bar@example.com', - 'name' => 'Mr. Recipient' + 'name' => 'Mr. Recipient', ]], 'subject' => null, 'bcc' => [['email' => 'baz@example.com']], @@ -84,7 +84,7 @@ public function testSend() ], 'from' => [ 'email' => 'foo@example.com', - 'name' => 'Ms. Foo Bar' + 'name' => 'Ms. Foo Bar', ], 'content' => [ ['type' => 'text/plain', 'value' => 'content'],