Skip to content

Commit 584a17a

Browse files
committed
Replace ZF1 Zend_Mail with ZF2 Zend\Mail
1 parent 3309db2 commit 584a17a

File tree

3 files changed

+30
-24
lines changed

3 files changed

+30
-24
lines changed

lib/internal/Magento/Framework/Mail/Message.php

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,17 @@
77
*/
88
namespace Magento\Framework\Mail;
99

10-
class Message extends \Zend_Mail implements MessageInterface
10+
use Zend\Mime\Mime;
11+
use Zend\Mime\Part;
12+
13+
class Message extends \Zend\Mail\Message implements MessageInterface
1114
{
1215
/**
1316
* @param string $charset
1417
*/
1518
public function __construct($charset = 'utf-8')
1619
{
17-
parent::__construct($charset);
20+
parent::setEncoding($charset);
1821
}
1922

2023
/**
@@ -24,25 +27,14 @@ public function __construct($charset = 'utf-8')
2427
*/
2528
protected $messageType = self::TYPE_TEXT;
2629

27-
/**
28-
* Set message body
29-
*
30-
* @param string $body
31-
* @return $this
32-
*/
33-
public function setBody($body)
30+
private function htmlMimeFromString($htmlBody)
3431
{
35-
return $this->messageType == self::TYPE_TEXT ? $this->setBodyText($body) : $this->setBodyHtml($body);
36-
}
37-
38-
/**
39-
* Set message body
40-
*
41-
* @return string
42-
*/
43-
public function getBody()
44-
{
45-
return $this->messageType == self::TYPE_TEXT ? $this->getBodyText() : $this->getBodyHtml();
32+
$htmlPart = new Part($htmlBody);
33+
$htmlPart->setCharset($this->getEncoding());
34+
$htmlPart->setType(Mime::TYPE_HTML);
35+
$mimeMessage = new \Zend\Mime\Message();
36+
$mimeMessage->addPart($htmlPart);
37+
return $mimeMessage;
4638
}
4739

4840
/**
@@ -56,4 +48,17 @@ public function setMessageType($type)
5648
$this->messageType = $type;
5749
return $this;
5850
}
51+
52+
/**
53+
* @param null|object|string|\Zend\Mime\Message $body
54+
* @return \Zend\Mail\Message
55+
*/
56+
public function setBody($body)
57+
{
58+
if (is_string($body) && $this->messageType === MessageInterface::TYPE_HTML) {
59+
$body = self::htmlMimeFromString($body);
60+
}
61+
return parent::setBody($body);
62+
}
63+
5964
}

lib/internal/Magento/Framework/Mail/Test/Unit/TransportTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ protected function setUp()
2525

2626
/**
2727
* @expectedException \InvalidArgumentException
28-
* @expectedExceptionMessage The message should be an instance of \Zend_Mail
28+
* @expectedExceptionMessage The message should be an instance of \Zend\Mail\Message
2929
*/
3030
public function testTransportWithIncorrectMessageObject()
3131
{

lib/internal/Magento/Framework/Mail/Transport.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
*/
77
namespace Magento\Framework\Mail;
88

9-
class Transport extends \Zend_Mail_Transport_Sendmail implements \Magento\Framework\Mail\TransportInterface
9+
10+
class Transport extends \Zend\Mail\Transport\Sendmail implements \Magento\Framework\Mail\TransportInterface
1011
{
1112
/**
1213
* @var \Magento\Framework\Mail\MessageInterface
@@ -20,8 +21,8 @@ class Transport extends \Zend_Mail_Transport_Sendmail implements \Magento\Framew
2021
*/
2122
public function __construct(\Magento\Framework\Mail\MessageInterface $message, $parameters = null)
2223
{
23-
if (!$message instanceof \Zend_Mail) {
24-
throw new \InvalidArgumentException('The message should be an instance of \Zend_Mail');
24+
if (!$message instanceof \Zend\Mail\Message) {
25+
throw new \InvalidArgumentException('The message should be an instance of \Zend\Mail\Message');
2526
}
2627
parent::__construct($parameters);
2728
$this->_message = $message;

0 commit comments

Comments
 (0)