| 
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