@@ -23,7 +23,7 @@ class Message implements MailMessageInterface
2323 *
2424 * @var string
2525 */
26- private $ messageType = self ::TYPE_TEXT ;
26+ private $ messageType = Mime ::TYPE_TEXT ;
2727
2828 /**
2929 * Initialize dependencies.
@@ -58,8 +58,8 @@ public function setMessageType($type)
5858 */
5959 public function setBody ($ body )
6060 {
61- if (is_string ($ body ) && $ this -> messageType === MailMessageInterface:: TYPE_HTML ) {
62- $ body = self ::createHtmlMimeFromString ($ body );
61+ if (is_string ($ body )) {
62+ $ body = self ::createMimeFromString ($ body, $ this -> messageType );
6363 }
6464 $ this ->zendMessage ->setBody ($ body );
6565 return $ this ;
@@ -161,6 +161,10 @@ public function getRawMessage()
161161 *
162162 * @param string $htmlBody
163163 * @return \Zend\Mime\Message
164+ *
165+ * @deprecated All emails that Magento sends should be mime encoded. Therefore
166+ * use generic function createMimeFromString
167+ * @see createMimeFromString()
164168 */
165169 private function createHtmlMimeFromString ($ htmlBody )
166170 {
@@ -172,12 +176,29 @@ private function createHtmlMimeFromString($htmlBody)
172176 return $ mimeMessage ;
173177 }
174178
179+ /**
180+ * Create mime message from the string.
181+ *
182+ * @param string $body
183+ * @param string $messageType
184+ * @return \Zend\Mime\Message
185+ */
186+ private function createMimeFromString ($ body , $ messageType )
187+ {
188+ $ part = new Part ($ body );
189+ $ part ->setCharset ($ this ->zendMessage ->getEncoding ());
190+ $ part ->setType ($ messageType );
191+ $ mimeMessage = new \Zend \Mime \Message ();
192+ $ mimeMessage ->addPart ($ part );
193+ return $ mimeMessage ;
194+ }
195+
175196 /**
176197 * @inheritdoc
177198 */
178199 public function setBodyHtml ($ html )
179200 {
180- $ this ->setMessageType (self ::TYPE_HTML );
201+ $ this ->setMessageType (Mime ::TYPE_HTML );
181202 return $ this ->setBody ($ html );
182203 }
183204
@@ -186,7 +207,7 @@ public function setBodyHtml($html)
186207 */
187208 public function setBodyText ($ text )
188209 {
189- $ this ->setMessageType (self ::TYPE_TEXT );
210+ $ this ->setMessageType (Mime ::TYPE_TEXT );
190211 return $ this ->setBody ($ text );
191212 }
192213}
0 commit comments