123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Framework\Mail;
- use Zend\Mime\Mime;
- use Zend\Mime\Part;
- /**
- * Class Message for email transportation
- */
- class Message implements MailMessageInterface
- {
- /**
- * @var \Zend\Mail\Message
- */
- private $zendMessage;
- /**
- * Message type
- *
- * @var string
- */
- private $messageType = self::TYPE_TEXT;
- /**
- * Initialize dependencies.
- *
- * @param string $charset
- */
- public function __construct($charset = 'utf-8')
- {
- $this->zendMessage = new \Zend\Mail\Message();
- $this->zendMessage->setEncoding($charset);
- }
- /**
- * @inheritdoc
- *
- * @deprecated 102.0.0
- * @see \Magento\Framework\Mail\Message::setBodyText
- * @see \Magento\Framework\Mail\Message::setBodyHtml
- */
- public function setMessageType($type)
- {
- $this->messageType = $type;
- return $this;
- }
- /**
- * @inheritdoc
- *
- * @deprecated 102.0.0
- * @see \Magento\Framework\Mail\Message::setBodyText
- * @see \Magento\Framework\Mail\Message::setBodyHtml
- */
- public function setBody($body)
- {
- if (is_string($body) && $this->messageType === MailMessageInterface::TYPE_HTML) {
- $body = self::createHtmlMimeFromString($body);
- }
- $this->zendMessage->setBody($body);
- return $this;
- }
- /**
- * @inheritdoc
- */
- public function setSubject($subject)
- {
- $this->zendMessage->setSubject($subject);
- return $this;
- }
- /**
- * @inheritdoc
- */
- public function getSubject()
- {
- return $this->zendMessage->getSubject();
- }
- /**
- * @inheritdoc
- */
- public function getBody()
- {
- return $this->zendMessage->getBody();
- }
- /**
- * @inheritdoc
- *
- * @deprecated 102.0.1 This function is missing the from name. The
- * setFromAddress() function sets both from address and from name.
- * @see setFromAddress()
- */
- public function setFrom($fromAddress)
- {
- $this->setFromAddress($fromAddress, null);
- return $this;
- }
- /**
- * @inheritdoc
- */
- public function setFromAddress($fromAddress, $fromName = null)
- {
- $this->zendMessage->setFrom($fromAddress, $fromName);
- return $this;
- }
- /**
- * @inheritdoc
- */
- public function addTo($toAddress)
- {
- $this->zendMessage->addTo($toAddress);
- return $this;
- }
- /**
- * @inheritdoc
- */
- public function addCc($ccAddress)
- {
- $this->zendMessage->addCc($ccAddress);
- return $this;
- }
- /**
- * @inheritdoc
- */
- public function addBcc($bccAddress)
- {
- $this->zendMessage->addBcc($bccAddress);
- return $this;
- }
- /**
- * @inheritdoc
- */
- public function setReplyTo($replyToAddress)
- {
- $this->zendMessage->setReplyTo($replyToAddress);
- return $this;
- }
- /**
- * @inheritdoc
- */
- public function getRawMessage()
- {
- return $this->zendMessage->toString();
- }
- /**
- * Create HTML mime message from the string.
- *
- * @param string $htmlBody
- * @return \Zend\Mime\Message
- */
- private function createHtmlMimeFromString($htmlBody)
- {
- $htmlPart = new Part($htmlBody);
- $htmlPart->setCharset($this->zendMessage->getEncoding());
- $htmlPart->setType(Mime::TYPE_HTML);
- $mimeMessage = new \Zend\Mime\Message();
- $mimeMessage->addPart($htmlPart);
- return $mimeMessage;
- }
- /**
- * @inheritdoc
- */
- public function setBodyHtml($html)
- {
- $this->setMessageType(self::TYPE_HTML);
- return $this->setBody($html);
- }
- /**
- * @inheritdoc
- */
- public function setBodyText($text)
- {
- $this->setMessageType(self::TYPE_TEXT);
- return $this->setBody($text);
- }
- }
|