From b390d0e43a803861268d68deefca03b09d6731f3 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Fri, 29 Jun 2018 16:43:20 +0200 Subject: Fixed apple html messages with attachments. --- .../src/domain/mime/mimetreeparser/messagepart.cpp | 11 + .../mimetreeparser/tests/mimetreeparsertest.cpp | 17 ++ .../mime/testdata/applehtmlwithattachments.mbox | 340 +++++++++++++++++++++ 3 files changed, 368 insertions(+) create mode 100644 framework/src/domain/mime/testdata/applehtmlwithattachments.mbox 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 // immediate children of this multipart/alternative node. // In this case, the HTML node is a child of multipart/related. dataHtml = findTypeInDirectChilds(mNode, "multipart/related"); + if (dataHtml) { + const auto parts = dataHtml->contents(); + for (int i = 0; i < parts.size(); i++) { + const auto p = parts.at(i); + if (i == 0 ) { + dataHtml = p; + } else if (KMime::isAttachment(p)) { + appendSubPart(MimeMessagePart::Ptr(new MimeMessagePart(otp, p, true))); + } + } + } // Still not found? Stupid apple mail actually puts the attachments inside of the // 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: QCOMPARE(part->signatureState(), MimeTreeParser::KMMsgFullySigned); QCOMPARE(otp.plainTextContent(), QString::fromUtf8("test\n\n-- \nThis is a HTML signature.\n")); } + + void testAppleHtmlWithAttachments() + { + MimeTreeParser::ObjectTreeParser otp; + otp.parseObjectTree(readMailFromFile("applehtmlwithattachments.mbox")); + otp.decryptParts(); + auto partList = otp.collectContentParts(); + QCOMPARE(partList.size(), 1); + auto part = partList[0].dynamicCast(); + QCOMPARE(part->encryptions().size(), 0); + QCOMPARE(part->signatures().size(), 0); + QCOMPARE(otp.plainTextContent(), QString::fromUtf8("Hi,\n\nThis is an HTML message with attachments.\n\nCheers,\nChristian")); + QCOMPARE(otp.htmlContent(), QString::fromUtf8("
Hi,

This is an HTML message with attachments.

Cheers,
Christian
")); + + auto attachments = otp.collectAttachmentParts(); + QCOMPARE(attachments.size(), 1); + } }; QTEST_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 @@ +Return-Path: +Received: from imapb020.mykolab.com ([unix socket]) + by imapb020.mykolab.com (Cyrus 2.5.11-41-gd53406f3f-Kolab-2.5.11-15.1.el7.kolab_16) with LMTPA; + Fri, 29 Jun 2018 14:27:36 +0200 +X-Sieve: CMU Sieve 2.4 +Received: from int-mx001.mykolab.com (unknown [10.9.13.1]) + by imapb020.mykolab.com (Postfix) with ESMTPS id 1E5E8108 + for ; Fri, 29 Jun 2018 14:27:36 +0200 (CEST) +Received: from ext-subm003.mykolab.com (unknown [10.9.6.3]) + by int-mx001.mykolab.com (Postfix) with ESMTPS id 09E231F3 + for ; Fri, 29 Jun 2018 14:27:36 +0200 (CEST) +From: Kolab +Content-Type: multipart/alternative; + boundary="Apple-Mail=_4DD68C10-D3A8-44AD-A99A-639C610B861A" +Mime-Version: 1.0 (Mac OS X Mail 11.2 \(3445.5.20\)) +Subject: Apple HTML with attachments +Message-Id: <7A536C16-FA0F-47AA-8FFC-F61761E7689A@kolab.org> +Date: Fri, 29 Jun 2018 05:27:26 -0700 +To: John Doe + + +--Apple-Mail=_4DD68C10-D3A8-44AD-A99A-639C610B861A +Content-Transfer-Encoding: 7bit +Content-Type: text/plain; + charset=us-ascii + +Hi, + +This is an HTML message with attachments. + +Cheers, +Christian +--Apple-Mail=_4DD68C10-D3A8-44AD-A99A-639C610B861A +Content-Type: multipart/related; + type="text/html"; + boundary="Apple-Mail=_B5C06910-39A1-4BE0-A173-E19D0A86E091" + + +--Apple-Mail=_B5C06910-39A1-4BE0-A173-E19D0A86E091 +Content-Transfer-Encoding: 7bit +Content-Type: text/html; + charset=us-ascii + +
Hi,

This is an HTML message with attachments.

Cheers,
Christian
+--Apple-Mail=_B5C06910-39A1-4BE0-A173-E19D0A86E091 +Content-Transfer-Encoding: base64 +Content-Disposition: inline; + filename=kubeonosxscreenshot07.png +Content-Type: image/png; + x-unix-mode=0666; + name="kubeonosxscreenshot07.png" +Content-Id: + +iVBORw0KGgoAAAANSUhEUgAAAUAAAACqCAYAAADcOJb6AAAAAXNSR0IArs4c6QAAAZ9pVFh0WE1M +OmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6 +eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3 +LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlv +biByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNv +bS9leGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MjA0NzwvZXhpZjpQ +aXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4xMDkyPC9leGlm +OlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4K +PC94OnhtcG1ldGE+CnDhDyMAAD0nSURBVHgB7X1JbyRJlt6LCI99Y3BnJslMZmZ1dVd1T68SBB3m +JGEE3XTVSTcB+jmCfoEO0km6jCBBF42AUQMzwHQXpqu6tq7OyrUyk3vse4S+73kY6QxuQSYZTjKf +VUX6ZmZu/gX9i2f2tsh//r9fD9dyQ4mWyzLwIhLJ5mTY3ZeIDGUYK0l1UJX2sCvz3oyIRCUSwfkh +dkcl4naObEcVIrgaqHukypELrhdXGce4D/5B+9E22BinhoEq2lWgKnbdqWCrw3GPKujw3C15r4Mx +AQf2hzM865fR0egEaoxO4zwroxzW9S+5c9oyUN2d11o4z+v8h1W07mjr77szrHS8uDa8MrrFqFLw +yuiqq6CXeENXx10YNR1Vd0fjV/WrcRcPtmO1cBisp98X6h59GrbhmTPKqAo37jth7QP8R+0jo+/g +jJ6OXGJ/LEfHw36PFr3naIijoWgFfT9Ge+4ZxtsGewo+5Vn1XJuT67uzrgd37Fq58+746JZXgy30 +eNTktJZ+m0O0j/bg+j9szf4Pj3iAoyBhuO9r1HSI65HRdb8tkWVBO///gzEf9Msu/RrYYg//n/z1 +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 +Ax7TQVF/KOtyAAAAAElFTkSuQmCC +--Apple-Mail=_B5C06910-39A1-4BE0-A173-E19D0A86E091-- + +--Apple-Mail=_4DD68C10-D3A8-44AD-A99A-639C610B861A-- -- cgit v1.2.3