Skip to content

Commit be958a2

Browse files
merge magento/2.3-develop into magento-trigger/MC-18527-merge-release
2 parents fdbe254 + 7901f14 commit be958a2

File tree

7 files changed

+63
-63
lines changed

7 files changed

+63
-63
lines changed

app/code/Magento/Email/Model/Transport.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99

1010
use Magento\Framework\App\Config\ScopeConfigInterface;
1111
use Magento\Framework\Exception\MailException;
12-
use Magento\Framework\Mail\EmailMessageInterface;
1312
use Magento\Framework\Mail\MessageInterface;
1413
use Magento\Framework\Mail\TransportInterface;
1514
use Magento\Framework\Phrase;
@@ -62,12 +61,12 @@ class Transport implements TransportInterface
6261
private $message;
6362

6463
/**
65-
* @param EmailMessageInterface $message Email message object
64+
* @param MessageInterface $message Email message object
6665
* @param ScopeConfigInterface $scopeConfig Core store config
6766
* @param null|string|array|\Traversable $parameters Config options for sendmail parameters
6867
*/
6968
public function __construct(
70-
EmailMessageInterface $message,
69+
MessageInterface $message,
7170
ScopeConfigInterface $scopeConfig,
7271
$parameters = null
7372
) {

dev/tests/integration/testsuite/Magento/Framework/Mail/EmailMessageTest.php

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
/**
1616
* Class EmailMessageTest
17+
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
1718
*/
1819
class EmailMessageTest extends TestCase
1920
{
@@ -164,23 +165,42 @@ public function testEmailMessage($content, $type): void
164165
'cc' => $cc,
165166
'replyTo' => $replyTo,
166167
'bcc' => $bcc,
167-
'sender' => $sender
168+
'sender' => $sender,
168169
];
169170
$message = $this->messageFactory->create($data);
170171

171172
$this->assertContains($content, $message->toString());
172173
$this->assertContains('Content-Type: ' . $type, $message->toString());
173-
$senderString = 'Sender: ' . $sender->getName() . ' <' . $sender->getEmail() . '>';
174+
$senderString = 'Sender: =?utf-8?Q?'
175+
. str_replace(' ', '=20', $sender->getName())
176+
. '?= <'
177+
. $sender->getEmail()
178+
. '>';
174179
$this->assertContains($senderString, $message->toString());
175180
$this->assertContains('From: ' . $from[0]->getEmail(), $message->toString());
176-
$replyToString = 'Reply-To: ' . $replyTo[0]->getName() . ' <' . $replyTo[0]->getEmail() . '>';
181+
$replyToString = 'Reply-To: =?utf-8?Q?'
182+
. str_replace(' ', '=20', $replyTo[0]->getName())
183+
. '?= <'
184+
. $replyTo[0]->getEmail()
185+
. '>';
177186
$this->assertContains($replyToString, $message->toString());
178-
$toString = 'To: ' . $to[0]->getName() . ' <' . $to[0]->getEmail() . '>';
187+
$toString = 'To: =?utf-8?Q?'
188+
. str_replace(' ', '=20', $to[0]->getName())
189+
. '?= <'
190+
. $to[0]->getEmail()
191+
. '>';
179192
$this->assertContains($toString, $message->toString());
180-
$ccString = 'Cc: ' . $cc[0]->getName() . ' <' . $cc[0]->getEmail() . '>';
193+
$ccString = 'Cc: =?utf-8?Q?'
194+
. str_replace(' ', '=20', $cc[0]->getName())
195+
. '?= <'
196+
. $cc[0]->getEmail()
197+
. '>';
181198
$this->assertContains($ccString, $message->toString());
182199
$this->assertContains('Bcc: ' . $bcc[0]->getEmail(), $message->toString());
183-
$this->assertContains('Content-Description: ' . $this->description, $message->toString());
200+
$contentDescription = 'Content-Description: =?utf-8?Q?'
201+
. str_replace(' ', '=20', $this->description)
202+
. '?=';
203+
$this->assertContains($contentDescription, $message->toString());
184204
$this->assertContains('Subject: ' . $this->subject, $message->toString());
185205
$this->assertContains($content, $message->toString());
186206
//tests address factory
@@ -235,6 +255,7 @@ public function testEmailMessageWithAttachment(): void
235255
'body' => $mimeMessage,
236256
'subject' => $this->subject,
237257
'to' => [$addressTo],
258+
'encoding' => '',
238259
];
239260
$message = $this->messageFactory->create($data);
240261

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

Lines changed: 24 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,13 @@
1010
use Magento\Framework\Mail\Exception\InvalidArgumentException;
1111
use Zend\Mail\Address as ZendAddress;
1212
use Zend\Mail\AddressList;
13-
use Zend\Mail\Message as ZendMessage;
1413
use Zend\Mime\Message as ZendMimeMessage;
1514

1615
/**
17-
* Class EmailMessage
16+
* Email message
1817
*/
19-
class EmailMessage implements EmailMessageInterface
18+
class EmailMessage extends Message implements EmailMessageInterface
2019
{
21-
/**
22-
* @var ZendMessage
23-
*/
24-
private $message;
25-
2620
/**
2721
* @var MimeMessageInterfaceFactory
2822
*/
@@ -64,38 +58,35 @@ public function __construct(
6458
?array $replyTo = null,
6559
?Address $sender = null,
6660
?string $subject = '',
67-
?string $encoding = ''
61+
?string $encoding = 'utf-8'
6862
) {
69-
$this->message = new ZendMessage();
63+
parent::__construct($encoding);
7064
$mimeMessage = new ZendMimeMessage();
7165
$mimeMessage->setParts($body->getParts());
72-
$this->message->setBody($mimeMessage);
73-
if ($encoding) {
74-
$this->message->setEncoding($encoding);
75-
}
66+
$this->zendMessage->setBody($mimeMessage);
7667
if ($subject) {
77-
$this->message->setSubject($subject);
68+
$this->zendMessage->setSubject($subject);
7869
}
7970
if ($sender) {
80-
$this->message->setSender($sender->getEmail(), $sender->getName());
71+
$this->zendMessage->setSender($sender->getEmail(), $sender->getName());
8172
}
8273
if (count($to) < 1) {
8374
throw new InvalidArgumentException('Email message must have at list one addressee');
8475
}
8576
if ($to) {
86-
$this->message->setTo($this->convertAddressArrayToAddressList($to));
77+
$this->zendMessage->setTo($this->convertAddressArrayToAddressList($to));
8778
}
8879
if ($replyTo) {
89-
$this->message->setReplyTo($this->convertAddressArrayToAddressList($replyTo));
80+
$this->zendMessage->setReplyTo($this->convertAddressArrayToAddressList($replyTo));
9081
}
9182
if ($from) {
92-
$this->message->setFrom($this->convertAddressArrayToAddressList($from));
83+
$this->zendMessage->setFrom($this->convertAddressArrayToAddressList($from));
9384
}
9485
if ($cc) {
95-
$this->message->setCc($this->convertAddressArrayToAddressList($cc));
86+
$this->zendMessage->setCc($this->convertAddressArrayToAddressList($cc));
9687
}
9788
if ($bcc) {
98-
$this->message->setBcc($this->convertAddressArrayToAddressList($bcc));
89+
$this->zendMessage->setBcc($this->convertAddressArrayToAddressList($bcc));
9990
}
10091
$this->mimeMessageFactory = $mimeMessageFactory;
10192
$this->addressFactory = $addressFactory;
@@ -106,55 +97,55 @@ public function __construct(
10697
*/
10798
public function getEncoding(): string
10899
{
109-
return $this->message->getEncoding();
100+
return $this->zendMessage->getEncoding();
110101
}
111102

112103
/**
113104
* @inheritDoc
114105
*/
115106
public function getHeaders(): array
116107
{
117-
return $this->message->getHeaders()->toArray();
108+
return $this->zendMessage->getHeaders()->toArray();
118109
}
119110

120111
/**
121112
* @inheritDoc
122113
*/
123114
public function getFrom(): ?array
124115
{
125-
return $this->convertAddressListToAddressArray($this->message->getFrom());
116+
return $this->convertAddressListToAddressArray($this->zendMessage->getFrom());
126117
}
127118

128119
/**
129120
* @inheritDoc
130121
*/
131122
public function getTo(): array
132123
{
133-
return $this->convertAddressListToAddressArray($this->message->getTo());
124+
return $this->convertAddressListToAddressArray($this->zendMessage->getTo());
134125
}
135126

136127
/**
137128
* @inheritDoc
138129
*/
139130
public function getCc(): ?array
140131
{
141-
return $this->convertAddressListToAddressArray($this->message->getCc());
132+
return $this->convertAddressListToAddressArray($this->zendMessage->getCc());
142133
}
143134

144135
/**
145136
* @inheritDoc
146137
*/
147138
public function getBcc(): ?array
148139
{
149-
return $this->convertAddressListToAddressArray($this->message->getBcc());
140+
return $this->convertAddressListToAddressArray($this->zendMessage->getBcc());
150141
}
151142

152143
/**
153144
* @inheritDoc
154145
*/
155146
public function getReplyTo(): ?array
156147
{
157-
return $this->convertAddressListToAddressArray($this->message->getReplyTo());
148+
return $this->convertAddressListToAddressArray($this->zendMessage->getReplyTo());
158149
}
159150

160151
/**
@@ -163,7 +154,7 @@ public function getReplyTo(): ?array
163154
public function getSender(): ?Address
164155
{
165156
/** @var ZendAddress $zendSender */
166-
if (!$zendSender = $this->message->getSender()) {
157+
if (!$zendSender = $this->zendMessage->getSender()) {
167158
return null;
168159
}
169160

@@ -178,18 +169,10 @@ public function getSender(): ?Address
178169
/**
179170
* @inheritDoc
180171
*/
181-
public function getSubject(): ?string
182-
{
183-
return $this->message->getSubject();
184-
}
185-
186-
/**
187-
* @inheritDoc
188-
*/
189-
public function getBody(): MimeMessageInterface
172+
public function getMessageBody(): MimeMessageInterface
190173
{
191174
return $this->mimeMessageFactory->create(
192-
['parts' => $this->message->getBody()->getParts()]
175+
['parts' => $this->zendMessage->getBody()->getParts()]
193176
);
194177
}
195178

@@ -198,23 +181,15 @@ public function getBody(): MimeMessageInterface
198181
*/
199182
public function getBodyText(): string
200183
{
201-
return $this->message->getBodyText();
202-
}
203-
204-
/**
205-
* @inheritdoc
206-
*/
207-
public function getRawMessage(): string
208-
{
209-
return $this->toString();
184+
return $this->zendMessage->getBodyText();
210185
}
211186

212187
/**
213188
* @inheritDoc
214189
*/
215190
public function toString(): string
216191
{
217-
return $this->message->toString();
192+
return $this->zendMessage->toString();
218193
}
219194

220195
/**

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
/**
1010
* Interface EmailMessageInterface
1111
*/
12-
interface EmailMessageInterface
12+
interface EmailMessageInterface extends MailMessageInterface
1313
{
1414
/**
1515
* Get the message encoding
@@ -72,14 +72,14 @@ public function getSender(): ?Address;
7272
*
7373
* @return null|string
7474
*/
75-
public function getSubject(): ?string;
75+
public function getSubject();
7676

7777
/**
7878
* Return the currently set message body
7979
*
8080
* @return MimeMessageInterface
8181
*/
82-
public function getBody(): MimeMessageInterface;
82+
public function getMessageBody(): MimeMessageInterface;
8383

8484
/**
8585
* Get the string-serialized message body text

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
* Mail Message interface
1010
*
1111
* @api
12+
* @deprecated
13+
* @see \Magento\Framework\Mail\EmailMessageInterface
1214
*/
1315
interface MailMessageInterface extends MessageInterface
1416
{

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,16 @@
1010

1111
/**
1212
* Class Message for email transportation
13+
*
14+
* @deprecated
15+
* @see \Magento\Framework\Mail\EmailMessage
1316
*/
1417
class Message implements MailMessageInterface
1518
{
1619
/**
1720
* @var \Zend\Mail\Message
1821
*/
19-
private $zendMessage;
22+
protected $zendMessage;
2023

2124
/**
2225
* Message type

lib/internal/Magento/Framework/Mail/Template/TransportBuilder.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ class TransportBuilder
8787
/**
8888
* Message
8989
*
90-
* @var EmailMessageInterface
90+
* @var MessageInterface
9191
*/
9292
protected $message;
9393

0 commit comments

Comments
 (0)