From d4db16194b488879ae7e195c58031ce1ffb1df47 Mon Sep 17 00:00:00 2001 From: Guillaume Gautreau Date: Mon, 25 Feb 2019 15:54:33 +0100 Subject: [PATCH] #26 Does not initializes the name property if not provided --- .../MessageFormat/MessagePayloadV31.php | 17 +++++++++--- Tests/SwiftMailer/MailjetTransportv31Test.php | 26 +++++++++++++++++++ 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/SwiftMailer/MessageFormat/MessagePayloadV31.php b/SwiftMailer/MessageFormat/MessagePayloadV31.php index 8145e7b..46a19ab 100644 --- a/SwiftMailer/MessageFormat/MessagePayloadV31.php +++ b/SwiftMailer/MessageFormat/MessagePayloadV31.php @@ -182,10 +182,19 @@ private static function getMailjetHeaders() { * @return array|null */ private function getReplyTo(Swift_Mime_Message $message) { - if (is_array($message->getReplyTo())) { - return array('Email' => key($message->getReplyTo()), 'Name' => current($message->getReplyTo())); - } elseif (is_string($message->getReplyTo())) { - return array('Email' => $message->getReplyTo()); + $replyTo = $message->getReplyTo(); + + if (is_array($replyTo)) { + $email = key($replyTo); + $name = current($replyTo); + + if (empty($name)){ + return array('Email' => $email); + } + + return array('Email' => $email, 'Name' => $name); + } elseif (is_string($replyTo)) { + return array('Email' => $replyTo); } else { return null; } diff --git a/Tests/SwiftMailer/MailjetTransportv31Test.php b/Tests/SwiftMailer/MailjetTransportv31Test.php index 65293cf..0aa51a6 100644 --- a/Tests/SwiftMailer/MailjetTransportv31Test.php +++ b/Tests/SwiftMailer/MailjetTransportv31Test.php @@ -255,6 +255,32 @@ public function testBulkSendMessages() { } } + public function testReplyToWithoutName(){ + $message = new \Swift_Message('Test Subject', '

Foo bar

', 'text/html'); + $message->setReplyTo('alice+replyTo@nowhere.com'); + $message->setFrom('alice+from@nowhere.com'); + $message->setTo('bob@nowhere.com'); + $message->setBody("Hello world!", 'text/plain'); + + $transport = $this->createTransport(); + $mailjetMessage = $transport->messageFormat->getMailjetMessage($message)['Messages'][0]; + + $this->assertEquals(["Email" => 'alice+replyTo@nowhere.com'], $mailjetMessage['ReplyTo']); + } + + public function testReplyTo(){ + $message = new \Swift_Message('Test Subject', '

Foo bar

', 'text/html'); + $message->setReplyTo('alice+replyTo@nowhere.com', 'Alice'); + $message->setFrom('alice+from@nowhere.com'); + $message->setTo('bob@nowhere.com'); + $message->setBody("Hello world!", 'text/plain'); + + $transport = $this->createTransport(); + $mailjetMessage = $transport->messageFormat->getMailjetMessage($message)['Messages'][0]; + + $this->assertEquals(["Email" => 'alice+replyTo@nowhere.com', "Name" => "Alice"], $mailjetMessage['ReplyTo']); + } + /** * @param string $email * @param string $name