Skip to content

Commit 08327f7

Browse files
committed
Allow sending email to BCC address when not notifying user.
1 parent 2ec065d commit 08327f7

File tree

10 files changed

+46
-9
lines changed

10 files changed

+46
-9
lines changed

app/code/Magento/Sales/Model/Order/Email/Sender.php

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@
1818
*/
1919
abstract class Sender
2020
{
21+
/**
22+
* Copy methods
23+
*/
24+
const COPY_METHOD_BCC = 'bcc';
25+
const COPY_METHOD_COPY = 'copy';
26+
2127
/**
2228
* @var \Magento\Sales\Model\Order\Email\SenderBuilderFactory
2329
*/
@@ -87,10 +93,12 @@ protected function checkAndSend(Order $order)
8793
$this->logger->error($e->getMessage());
8894
return false;
8995
}
90-
try {
91-
$sender->sendCopyTo();
92-
} catch (\Exception $e) {
93-
$this->logger->error($e->getMessage());
96+
if ($this->identityContainer->getCopyMethod() == self::COPY_METHOD_COPY) {
97+
try {
98+
$sender->sendCopyTo();
99+
} catch (\Exception $e) {
100+
$this->logger->error($e->getMessage());
101+
}
94102
}
95103
return true;
96104
}

app/code/Magento/Sales/Model/Order/Email/SenderBuilder.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public function send()
6565

6666
$copyTo = $this->identityContainer->getEmailCopyTo();
6767

68-
if (!empty($copyTo) && $this->identityContainer->getCopyMethod() == 'bcc') {
68+
if (!empty($copyTo) && $this->identityContainer->getCopyMethod() == Sender::COPY_METHOD_BCC) {
6969
foreach ($copyTo as $email) {
7070
$this->transportBuilder->addBcc($email);
7171
}
@@ -84,7 +84,7 @@ public function sendCopyTo()
8484
{
8585
$copyTo = $this->identityContainer->getEmailCopyTo();
8686

87-
if (!empty($copyTo) && $this->identityContainer->getCopyMethod() == 'copy') {
87+
if (!empty($copyTo)) {
8888
foreach ($copyTo as $email) {
8989
$this->configureEmailTemplate();
9090

app/code/Magento/Sales/Test/Unit/Model/Order/Creditmemo/Sender/EmailSenderTest.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,10 @@ public function testSend($configValue, $forceSyncMode, $isComment, $emailSending
283283
->willReturn($emailSendingResult);
284284

285285
if ($emailSendingResult) {
286+
$this->identityContainerMock->expects($this->once())
287+
->method('getCopyMethod')
288+
->willReturn($this->subject::COPY_METHOD_COPY);
289+
286290
$this->senderBuilderFactoryMock->expects($this->once())
287291
->method('create')
288292
->willReturn($this->senderMock);

app/code/Magento/Sales/Test/Unit/Model/Order/Email/Sender/CreditmemoSenderTest.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,10 @@ public function testSend($configValue, $forceSyncMode, $customerNoteNotify, $ema
138138
->willReturn($emailSendingResult);
139139

140140
if ($emailSendingResult) {
141+
$this->identityContainerMock->expects($this->once())
142+
->method('getCopyMethod')
143+
->willReturn($this->sender::COPY_METHOD_COPY);
144+
141145
$this->senderBuilderFactoryMock->expects($this->once())
142146
->method('create')
143147
->willReturn($this->senderMock);

app/code/Magento/Sales/Test/Unit/Model/Order/Email/Sender/InvoiceSenderTest.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,10 @@ public function testSend($configValue, $forceSyncMode, $customerNoteNotify, $ema
144144
->willReturn($emailSendingResult);
145145

146146
if ($emailSendingResult) {
147+
$this->identityContainerMock->expects($this->once())
148+
->method('getCopyMethod')
149+
->willReturn($this->sender::COPY_METHOD_COPY);
150+
147151
$this->senderBuilderFactoryMock->expects($this->once())
148152
->method('create')
149153
->willReturn($this->senderMock);

app/code/Magento/Sales/Test/Unit/Model/Order/Email/Sender/OrderSenderTest.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,10 @@ public function testSend($configValue, $forceSyncMode, $emailSendingResult, $sen
7777
->willReturn($emailSendingResult);
7878

7979
if ($emailSendingResult) {
80+
$this->identityContainerMock->expects($this->once())
81+
->method('getCopyMethod')
82+
->willReturn($this->sender::COPY_METHOD_COPY);
83+
8084
$addressMock = $this->createMock(\Magento\Sales\Model\Order\Address::class);
8185

8286
$this->addressRenderer->expects($this->any())
@@ -214,6 +218,10 @@ public function testSendVirtualOrder($isVirtualOrder, $formatCallCount, $expecte
214218
->method('isEnabled')
215219
->willReturn(true);
216220

221+
$this->identityContainerMock->expects($this->once())
222+
->method('getCopyMethod')
223+
->willReturn($this->sender::COPY_METHOD_COPY);
224+
217225
$addressMock = $this->createMock(\Magento\Sales\Model\Order\Address::class);
218226

219227
$this->addressRenderer->expects($this->exactly($formatCallCount))

app/code/Magento/Sales/Test/Unit/Model/Order/Email/Sender/ShipmentSenderTest.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,10 @@ public function testSend($configValue, $forceSyncMode, $customerNoteNotify, $ema
144144
->willReturn($emailSendingResult);
145145

146146
if ($emailSendingResult) {
147+
$this->identityContainerMock->expects($this->once())
148+
->method('getCopyMethod')
149+
->willReturn($this->sender::COPY_METHOD_COPY);
150+
147151
$this->senderBuilderFactoryMock->expects($this->once())
148152
->method('create')
149153
->willReturn($this->senderMock);

app/code/Magento/Sales/Test/Unit/Model/Order/Email/SenderBuilderTest.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -165,9 +165,6 @@ public function testSendCopyTo()
165165
$transportMock = $this->createMock(
166166
\Magento\Sales\Test\Unit\Model\Order\Email\Stub\TransportInterfaceMock::class
167167
);
168-
$this->identityContainerMock->expects($this->once())
169-
->method('getCopyMethod')
170-
->will($this->returnValue('copy'));
171168
$this->identityContainerMock->expects($this->never())
172169
->method('getCustomerEmail');
173170
$this->identityContainerMock->expects($this->never())

app/code/Magento/Sales/Test/Unit/Model/Order/Invoice/Sender/EmailSenderTest.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,10 @@ public function testSend($configValue, $forceSyncMode, $isComment, $emailSending
282282
->willReturn($emailSendingResult);
283283

284284
if ($emailSendingResult) {
285+
$this->identityContainerMock->expects($this->once())
286+
->method('getCopyMethod')
287+
->willReturn($this->subject::COPY_METHOD_COPY);
288+
285289
$this->senderBuilderFactoryMock->expects($this->once())
286290
->method('create')
287291
->willReturn($this->senderMock);

app/code/Magento/Sales/Test/Unit/Model/Order/Shipment/Sender/EmailSenderTest.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,10 @@ public function testSend($configValue, $forceSyncMode, $isComment, $emailSending
284284
->willReturn($emailSendingResult);
285285

286286
if ($emailSendingResult) {
287+
$this->identityContainerMock->expects($this->once())
288+
->method('getCopyMethod')
289+
->willReturn($this->subject::COPY_METHOD_COPY);
290+
287291
$this->senderBuilderFactoryMock->expects($this->once())
288292
->method('create')
289293
->willReturn($this->senderMock);

0 commit comments

Comments
 (0)