|
11 | 11 | use Magento\Framework\App\TemplateTypesInterface; |
12 | 12 | use Magento\Framework\Exception\LocalizedException; |
13 | 13 | use Magento\Framework\Mail\MessageInterface; |
| 14 | +use Magento\Framework\Mail\MessageInterfaceFactory; |
14 | 15 | use Magento\Framework\Mail\TransportInterfaceFactory; |
15 | 16 | use Magento\Framework\ObjectManagerInterface; |
16 | 17 | use Magento\Framework\Phrase; |
@@ -88,25 +89,36 @@ class TransportBuilder |
88 | 89 | */ |
89 | 90 | protected $mailTransportFactory; |
90 | 91 |
|
| 92 | + /** |
| 93 | + * @var \Magento\Framework\Mail\MessageInterfaceFactory |
| 94 | + */ |
| 95 | + private $messageFactory; |
| 96 | + |
91 | 97 | /** |
92 | 98 | * @param FactoryInterface $templateFactory |
93 | 99 | * @param MessageInterface $message |
94 | 100 | * @param SenderResolverInterface $senderResolver |
95 | 101 | * @param ObjectManagerInterface $objectManager |
96 | 102 | * @param TransportInterfaceFactory $mailTransportFactory |
| 103 | + * @param MessageInterfaceFactory $messageFactory |
| 104 | + * |
| 105 | + * @SuppressWarnings(PHPMD.UnusedFormalParameter) |
97 | 106 | */ |
98 | 107 | public function __construct( |
99 | 108 | FactoryInterface $templateFactory, |
100 | 109 | MessageInterface $message, |
101 | 110 | SenderResolverInterface $senderResolver, |
102 | 111 | ObjectManagerInterface $objectManager, |
103 | | - TransportInterfaceFactory $mailTransportFactory |
| 112 | + TransportInterfaceFactory $mailTransportFactory, |
| 113 | + MessageInterfaceFactory $messageFactory = null |
104 | 114 | ) { |
105 | 115 | $this->templateFactory = $templateFactory; |
106 | | - $this->message = $message; |
107 | 116 | $this->objectManager = $objectManager; |
108 | 117 | $this->_senderResolver = $senderResolver; |
109 | 118 | $this->mailTransportFactory = $mailTransportFactory; |
| 119 | + $this->messageFactory = $messageFactory ?: \Magento\Framework\App\ObjectManager::getInstance() |
| 120 | + ->get(MessageInterfaceFactory::class); |
| 121 | + $this->message = $this->messageFactory->create(); |
110 | 122 | } |
111 | 123 |
|
112 | 124 | /** |
@@ -242,7 +254,7 @@ public function getTransport() |
242 | 254 | */ |
243 | 255 | protected function reset() |
244 | 256 | { |
245 | | - $this->message = $this->objectManager->create(\Magento\Framework\Mail\Message::class); |
| 257 | + $this->message = $this->messageFactory->create(); |
246 | 258 | $this->templateIdentifier = null; |
247 | 259 | $this->templateVars = null; |
248 | 260 | $this->templateOptions = null; |
|
0 commit comments