Skip to content

Commit 226009e

Browse files
author
Graham Wharton
committed
Change Encoding of MIME Emails to QUOTED-PRINTABLE
Added Content-Disposition: inline to all MIME emails Implementation now matches previous ZF1 implementation
1 parent ede25ae commit 226009e

File tree

14 files changed

+21
-14
lines changed

14 files changed

+21
-14
lines changed

dev/tests/integration/testsuite/Magento/Customer/Controller/AccountTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -771,7 +771,7 @@ public function testConfirmationEmailWithSpecialCharacters(): void
771771

772772
$this->assertContains('To: ' . $email, $rawMessage);
773773

774-
$content = $message->getBody()->getPartContent(0);
774+
$content = $message->getBody()->getParts()[0]->getRawContent();
775775
$confirmationUrl = $this->getConfirmationUrlFromMessageContent($content);
776776
$this->setRequestInfo($confirmationUrl, 'confirm');
777777
$this->clearCookieMessagesList();

dev/tests/integration/testsuite/Magento/Newsletter/Model/SubscriberTest.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77

88
use Magento\TestFramework\Mail\Template\TransportBuilderMock;
99

10+
/**
11+
* \Magento\Newsletter\Model\Subscriber tests
12+
*/
1013
class SubscriberTest extends \PHPUnit\Framework\TestCase
1114
{
1215
/**
@@ -35,7 +38,7 @@ public function testEmailConfirmation()
3538
$this->assertContains(
3639
'/newsletter/subscriber/confirm/id/' . $this->model->getSubscriberId()
3740
. '/code/ysayquyajua23iq29gxwu2eax2qb6gvy',
38-
$transportBuilder->getSentMessage()->getRawMessage()
41+
$transportBuilder->getSentMessage()->getBody()->getParts()[0]->getRawContent()
3942
);
4043
$this->assertEquals(Subscriber::STATUS_NOT_ACTIVE, $this->model->getSubscriberStatus());
4144
}

dev/tests/integration/testsuite/Magento/Sales/Controller/Adminhtml/Order/Create/SaveTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ public function testSendEmailOnOrderSave(): void
142142
);
143143

144144
$this->assertEquals($message->getSubject(), $subject);
145-
$this->assertThat($message->getRawMessage(), $assert);
145+
$this->assertThat($message->getBody()->getParts()[0]->getRawContent(), $assert);
146146
}
147147

148148
/**

dev/tests/integration/testsuite/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/AddCommentTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public function testSendEmailOnAddCreditmemoComment(): void
5454
);
5555

5656
$this->assertEquals($message->getSubject(), $subject);
57-
$this->assertThat($message->getRawMessage(), $messageConstraint);
57+
$this->assertThat($message->getBody()->getParts()[0]->getRawContent(), $messageConstraint);
5858
}
5959

6060
/**

dev/tests/integration/testsuite/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/SaveTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public function testSendEmailOnCreditmemoSave(): void
5656
);
5757

5858
$this->assertEquals($message->getSubject(), $subject);
59-
$this->assertThat($message->getRawMessage(), $messageConstraint);
59+
$this->assertThat($message->getBody()->getParts()[0]->getRawContent(), $messageConstraint);
6060
}
6161

6262
/**

dev/tests/integration/testsuite/Magento/Sales/Controller/Adminhtml/Order/EmailTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public function testSendOrderEmail(): void
8282
);
8383

8484
$this->assertEquals($message->getSubject(), $subject);
85-
$this->assertThat($message->getRawMessage(), $assert);
85+
$this->assertThat($message->getBody()->getParts()[0]->getRawContent(), $assert);
8686
}
8787

8888
/**

dev/tests/integration/testsuite/Magento/Sales/Controller/Adminhtml/Order/Invoice/AddCommentTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public function testSendEmailOnAddInvoiceComment(): void
5555
);
5656

5757
$this->assertEquals($message->getSubject(), $subject);
58-
$this->assertThat($message->getRawMessage(), $messageConstraint);
58+
$this->assertThat($message->getBody()->getParts()[0]->getRawContent(), $messageConstraint);
5959
}
6060

6161
/**

dev/tests/integration/testsuite/Magento/Sales/Controller/Adminhtml/Order/Invoice/EmailTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public function testSendInvoiceEmail(): void
5959
);
6060

6161
$this->assertEquals($message->getSubject(), $subject);
62-
$this->assertThat($message->getRawMessage(), $messageConstraint);
62+
$this->assertThat($message->getBody()->getParts()[0]->getRawContent(), $messageConstraint);
6363
}
6464

6565
/**

dev/tests/integration/testsuite/Magento/Sales/Controller/Adminhtml/Order/Invoice/SaveTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public function testSendEmailOnInvoiceSave(): void
5151
);
5252

5353
$this->assertEquals($message->getSubject(), $subject);
54-
$this->assertThat($message->getRawMessage(), $messageConstraint);
54+
$this->assertThat($message->getBody()->getParts()[0]->getRawContent(), $messageConstraint);
5555
}
5656

5757
/**

dev/tests/integration/testsuite/Magento/Sales/Model/Order/CreateTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,6 @@ public function testSendEmailOnOrderPlace(): void
9595
);
9696

9797
$this->assertEquals($message->getSubject(), $subject);
98-
$this->assertThat($message->getRawMessage(), $assert);
98+
$this->assertThat($message->getBody()->getParts()[0]->getRawContent(), $assert);
9999
}
100100
}

dev/tests/integration/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddCommentTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public function testSendEmailOnShipmentCommentAdd(): void
5454
);
5555

5656
$this->assertEquals($message->getSubject(), $subject);
57-
$this->assertThat($message->getRawMessage(), $messageConstraint);
57+
$this->assertThat($message->getBody()->getParts()[0]->getRawContent(), $messageConstraint);
5858
}
5959

6060
/**

dev/tests/integration/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/SaveTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public function testSendEmailOnShipmentSave(): void
5151
);
5252

5353
$this->assertEquals($message->getSubject(), $subject);
54-
$this->assertThat($message->getRawMessage(), $messageConstraint);
54+
$this->assertThat($message->getBody()->getParts()[0]->getRawContent(), $messageConstraint);
5555
}
5656

5757
/**

lib/internal/Magento/Framework/Mail/Message.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,8 @@ private function createMimeFromString($body, $messageType)
167167
{
168168
$part = new Part($body);
169169
$part->setCharset($this->zendMessage->getEncoding());
170+
$part->setEncoding(Mime::ENCODING_QUOTEDPRINTABLE);
171+
$part->setDisposition(Mime::DISPOSITION_INLINE);
170172
$part->setType($messageType);
171173
$mimeMessage = new \Zend\Mime\Message();
172174
$mimeMessage->addPart($part);

lib/internal/Magento/Framework/Mail/Test/Unit/MessageTest.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,10 @@ public function testSetBodyHtml()
2626

2727
$part = $this->message->getBody()->getParts()[0];
2828
$this->assertEquals('text/html', $part->getType());
29-
$this->assertEquals('8bit', $part->getEncoding());
29+
$this->assertEquals('quoted-printable', $part->getEncoding());
3030
$this->assertEquals('utf-8', $part->getCharset());
3131
$this->assertEquals('body', $part->getContent());
32+
$this->assertEquals('inline', $part->getDisposition());
3233
}
3334

3435
public function testSetBodyText()
@@ -37,8 +38,9 @@ public function testSetBodyText()
3738

3839
$part = $this->message->getBody()->getParts()[0];
3940
$this->assertEquals('text/plain', $part->getType());
40-
$this->assertEquals('8bit', $part->getEncoding());
41+
$this->assertEquals('quoted-printable', $part->getEncoding());
4142
$this->assertEquals('utf-8', $part->getCharset());
4243
$this->assertEquals('body', $part->getContent());
44+
$this->assertEquals('inline', $part->getDisposition());
4345
}
4446
}

0 commit comments

Comments
 (0)