summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--framework/src/domain/mime/mimetreeparser/messagepart.cpp11
-rw-r--r--framework/src/domain/mime/mimetreeparser/tests/mimetreeparsertest.cpp17
-rw-r--r--framework/src/domain/mime/testdata/applehtmlwithattachments.mbox340
3 files changed, 368 insertions, 0 deletions
diff --git a/framework/src/domain/mime/mimetreeparser/messagepart.cpp b/framework/src/domain/mime/mimetreeparser/messagepart.cpp
index 4bed80da..1a1b2003 100644
--- a/framework/src/domain/mime/mimetreeparser/messagepart.cpp
+++ b/framework/src/domain/mime/mimetreeparser/messagepart.cpp
@@ -568,6 +568,17 @@ AlternativeMessagePart::AlternativeMessagePart(ObjectTreeParser *otp, KMime::Con
568 // immediate children of this multipart/alternative node. 568 // immediate children of this multipart/alternative node.
569 // In this case, the HTML node is a child of multipart/related. 569 // In this case, the HTML node is a child of multipart/related.
570 dataHtml = findTypeInDirectChilds(mNode, "multipart/related"); 570 dataHtml = findTypeInDirectChilds(mNode, "multipart/related");
571 if (dataHtml) {
572 const auto parts = dataHtml->contents();
573 for (int i = 0; i < parts.size(); i++) {
574 const auto p = parts.at(i);
575 if (i == 0 ) {
576 dataHtml = p;
577 } else if (KMime::isAttachment(p)) {
578 appendSubPart(MimeMessagePart::Ptr(new MimeMessagePart(otp, p, true)));
579 }
580 }
581 }
571 582
572 // Still not found? Stupid apple mail actually puts the attachments inside of the 583 // Still not found? Stupid apple mail actually puts the attachments inside of the
573 // multipart/alternative, which is wrong. Therefore we also have to look for multipart/mixed 584 // multipart/alternative, which is wrong. Therefore we also have to look for multipart/mixed
diff --git a/framework/src/domain/mime/mimetreeparser/tests/mimetreeparsertest.cpp b/framework/src/domain/mime/mimetreeparser/tests/mimetreeparsertest.cpp
index 97c79fe7..6b4280a9 100644
--- a/framework/src/domain/mime/mimetreeparser/tests/mimetreeparsertest.cpp
+++ b/framework/src/domain/mime/mimetreeparser/tests/mimetreeparsertest.cpp
@@ -401,6 +401,23 @@ private slots:
401 QCOMPARE(part->signatureState(), MimeTreeParser::KMMsgFullySigned); 401 QCOMPARE(part->signatureState(), MimeTreeParser::KMMsgFullySigned);
402 QCOMPARE(otp.plainTextContent(), QString::fromUtf8("test\n\n-- \nThis is a HTML signature.\n")); 402 QCOMPARE(otp.plainTextContent(), QString::fromUtf8("test\n\n-- \nThis is a HTML signature.\n"));
403 } 403 }
404
405 void testAppleHtmlWithAttachments()
406 {
407 MimeTreeParser::ObjectTreeParser otp;
408 otp.parseObjectTree(readMailFromFile("applehtmlwithattachments.mbox"));
409 otp.decryptParts();
410 auto partList = otp.collectContentParts();
411 QCOMPARE(partList.size(), 1);
412 auto part = partList[0].dynamicCast<MimeTreeParser::MessagePart>();
413 QCOMPARE(part->encryptions().size(), 0);
414 QCOMPARE(part->signatures().size(), 0);
415 QCOMPARE(otp.plainTextContent(), QString::fromUtf8("Hi,\n\nThis is an HTML message with attachments.\n\nCheers,\nChristian"));
416 QCOMPARE(otp.htmlContent(), QString::fromUtf8("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=us-ascii\"></head><body style=\"word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;\" class=\"\"><meta http-equiv=\"Content-Type\" content=\"text/html; charset=us-ascii\" class=\"\"><div style=\"word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;\" class=\"\">Hi,<div class=\"\"><br class=\"\"></div><blockquote style=\"margin: 0 0 0 40px; border: none; padding: 0px;\" class=\"\"><div class=\"\">This is an <b class=\"\">HTML</b> message with attachments.</div></blockquote><div class=\"\"><br class=\"\"></div><div class=\"\">Cheers,</div><div class=\"\">Christian<img apple-inline=\"yes\" id=\"B9EE68A9-83CA-41CD-A3E4-E5BA301F797A\" class=\"\" src=\"cid:F5B62D1D-E4EC-4C59-AA5A-708525C2AC3C\"></div></div></body></html>"));
417
418 auto attachments = otp.collectAttachmentParts();
419 QCOMPARE(attachments.size(), 1);
420 }
404}; 421};
405 422
406QTEST_GUILESS_MAIN(InterfaceTest) 423QTEST_GUILESS_MAIN(InterfaceTest)
diff --git a/framework/src/domain/mime/testdata/applehtmlwithattachments.mbox b/framework/src/domain/mime/testdata/applehtmlwithattachments.mbox
new file mode 100644
index 00000000..cb392293
--- /dev/null
+++ b/framework/src/domain/mime/testdata/applehtmlwithattachments.mbox
@@ -0,0 +1,340 @@
1Return-Path: <test1@kolab.org>
2Received: from imapb020.mykolab.com ([unix socket])
3 by imapb020.mykolab.com (Cyrus 2.5.11-41-gd53406f3f-Kolab-2.5.11-15.1.el7.kolab_16) with LMTPA;
4 Fri, 29 Jun 2018 14:27:36 +0200
5X-Sieve: CMU Sieve 2.4
6Received: from int-mx001.mykolab.com (unknown [10.9.13.1])
7 by imapb020.mykolab.com (Postfix) with ESMTPS id 1E5E8108
8 for <test1@kolab.org>; Fri, 29 Jun 2018 14:27:36 +0200 (CEST)
9Received: from ext-subm003.mykolab.com (unknown [10.9.6.3])
10 by int-mx001.mykolab.com (Postfix) with ESMTPS id 09E231F3
11 for <test1@kolab.org>; Fri, 29 Jun 2018 14:27:36 +0200 (CEST)
12From: Kolab <test1@kolab.org>
13Content-Type: multipart/alternative;
14 boundary="Apple-Mail=_4DD68C10-D3A8-44AD-A99A-639C610B861A"
15Mime-Version: 1.0 (Mac OS X Mail 11.2 \(3445.5.20\))
16Subject: Apple HTML with attachments
17Message-Id: <7A536C16-FA0F-47AA-8FFC-F61761E7689A@kolab.org>
18Date: Fri, 29 Jun 2018 05:27:26 -0700
19To: John Doe <test1@kolab.org>
20
21
22--Apple-Mail=_4DD68C10-D3A8-44AD-A99A-639C610B861A
23Content-Transfer-Encoding: 7bit
24Content-Type: text/plain;
25 charset=us-ascii
26
27Hi,
28
29This is an HTML message with attachments.
30
31Cheers,
32Christian
33--Apple-Mail=_4DD68C10-D3A8-44AD-A99A-639C610B861A
34Content-Type: multipart/related;
35 type="text/html";
36 boundary="Apple-Mail=_B5C06910-39A1-4BE0-A173-E19D0A86E091"
37
38
39--Apple-Mail=_B5C06910-39A1-4BE0-A173-E19D0A86E091
40Content-Transfer-Encoding: 7bit
41Content-Type: text/html;
42 charset=us-ascii
43
44<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><meta http-equiv="Content-Type" content="text/html; charset=us-ascii" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi,<div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class="">This is an <b class="">HTML</b> message with attachments.</div></blockquote><div class=""><br class=""></div><div class="">Cheers,</div><div class="">Christian<img apple-inline="yes" id="B9EE68A9-83CA-41CD-A3E4-E5BA301F797A" class="" src="cid:F5B62D1D-E4EC-4C59-AA5A-708525C2AC3C"></div></div></body></html>
45--Apple-Mail=_B5C06910-39A1-4BE0-A173-E19D0A86E091
46Content-Transfer-Encoding: base64
47Content-Disposition: inline;
48 filename=kubeonosxscreenshot07.png
49Content-Type: image/png;
50 x-unix-mode=0666;
51 name="kubeonosxscreenshot07.png"
52Content-Id: <F5B62D1D-E4EC-4C59-AA5A-708525C2AC3C>
53
54iVBORw0KGgoAAAANSUhEUgAAAUAAAACqCAYAAADcOJb6AAAAAXNSR0IArs4c6QAAAZ9pVFh0WE1M
55OmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6
56eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3
57LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlv
58biByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNv
59bS9leGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MjA0NzwvZXhpZjpQ
60aXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4xMDkyPC9leGlm
61OlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4K
62PC94OnhtcG1ldGE+CnDhDyMAAD0nSURBVHgB7X1JbyRJlt6LCI99Y3BnJslMZmZ1dVd1T68SBB3m
63JGEE3XTVSTcB+jmCfoEO0km6jCBBF42AUQMzwHQXpqu6tq7OyrUyk3vse4S+73kY6QxuQSYZTjKf
64VUX6ZmZu/gX9i2f2tsh//r9fD9dyQ4mWyzLwIhLJ5mTY3ZeIDGUYK0l1UJX2sCvz3oyIRCUSwfkh
65dkcl4naObEcVIrgaqHukypELrhdXGce4D/5B+9E22BinhoEq2lWgKnbdqWCrw3GPKujw3C15r4Mx
66AQf2hzM865fR0egEaoxO4zwroxzW9S+5c9oyUN2d11o4z+v8h1W07mjr77szrHS8uDa8MrrFqFLw
67yuiqq6CXeENXx10YNR1Vd0fjV/WrcRcPtmO1cBisp98X6h59GrbhmTPKqAo37jth7QP8R+0jo+/g
68jJ6OXGJ/LEfHw36PFr3naIijoWgFfT9Ge+4ZxtsGewo+5Vn1XJuT67uzrgd37Fq58+746JZXgy30
69eNTktJZ+m0O0j/bg+j9szf4Pj3iAoyBhuO9r1HSI65HRdb8tkWVBO///gzEf9Msu/RrYYg//n/z1
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
337Ax7TQVF/KOtyAAAAAElFTkSuQmCC
338--Apple-Mail=_B5C06910-39A1-4BE0-A173-E19D0A86E091--
339
340--Apple-Mail=_4DD68C10-D3A8-44AD-A99A-639C610B861A--