3
3
* Copyright © Magento, Inc. All rights reserved.
4
4
* See COPYING.txt for license details.
5
5
*/
6
+
6
7
namespace Magento \Customer \Model ;
7
8
8
9
use Magento \Framework \App \Config \ScopeConfigInterface ;
10
+ use Magento \Framework \App \ObjectManager ;
11
+ use Magento \Framework \Mail \Template \SenderResolverInterface ;
9
12
use Magento \Store \Model \StoreManagerInterface ;
10
13
use Magento \Framework \Mail \Template \TransportBuilder ;
11
14
use Magento \Customer \Helper \View as CustomerViewHelper ;
@@ -90,28 +93,36 @@ class EmailNotification implements EmailNotificationInterface
90
93
*/
91
94
private $ scopeConfig ;
92
95
96
+ /**
97
+ * @var SenderResolverInterface
98
+ */
99
+ private $ senderResolver ;
100
+
93
101
/**
94
102
* @param CustomerRegistry $customerRegistry
95
103
* @param StoreManagerInterface $storeManager
96
104
* @param TransportBuilder $transportBuilder
97
105
* @param CustomerViewHelper $customerViewHelper
98
106
* @param DataObjectProcessor $dataProcessor
99
107
* @param ScopeConfigInterface $scopeConfig
108
+ * @param SenderResolverInterface|null $senderResolver
100
109
*/
101
110
public function __construct (
102
111
CustomerRegistry $ customerRegistry ,
103
112
StoreManagerInterface $ storeManager ,
104
113
TransportBuilder $ transportBuilder ,
105
114
CustomerViewHelper $ customerViewHelper ,
106
115
DataObjectProcessor $ dataProcessor ,
107
- ScopeConfigInterface $ scopeConfig
116
+ ScopeConfigInterface $ scopeConfig ,
117
+ SenderResolverInterface $ senderResolver = null
108
118
) {
109
119
$ this ->customerRegistry = $ customerRegistry ;
110
120
$ this ->storeManager = $ storeManager ;
111
121
$ this ->transportBuilder = $ transportBuilder ;
112
122
$ this ->customerViewHelper = $ customerViewHelper ;
113
123
$ this ->dataProcessor = $ dataProcessor ;
114
124
$ this ->scopeConfig = $ scopeConfig ;
125
+ $ this ->senderResolver = $ senderResolver ?: ObjectManager::getInstance ()->get (SenderResolverInterface::class);
115
126
}
116
127
117
128
/**
@@ -230,6 +241,7 @@ private function passwordReset(CustomerInterface $customer)
230
241
* @param int|null $storeId
231
242
* @param string $email
232
243
* @return void
244
+ * @throws \Magento\Framework\Exception\MailException
233
245
*/
234
246
private function sendEmailTemplate (
235
247
$ customer ,
@@ -243,10 +255,17 @@ private function sendEmailTemplate(
243
255
if ($ email === null ) {
244
256
$ email = $ customer ->getEmail ();
245
257
}
258
+
259
+ /** @var array $from */
260
+ $ from = $ this ->senderResolver ->resolve (
261
+ $ this ->scopeConfig ->getValue ($ sender , 'store ' , $ storeId ),
262
+ $ storeId
263
+ );
264
+
246
265
$ transport = $ this ->transportBuilder ->setTemplateIdentifier ($ templateId )
247
266
->setTemplateOptions (['area ' => 'frontend ' , 'store ' => $ storeId ])
248
267
->setTemplateVars ($ templateParams )
249
- ->setFrom ($ this -> scopeConfig -> getValue ( $ sender , ' store ' , $ storeId ) )
268
+ ->setFrom ($ from )
250
269
->addTo ($ email , $ this ->customerViewHelper ->getCustomerName ($ customer ))
251
270
->getTransport ();
252
271
0 commit comments