diff options
-rw-r--r-- | framework/src/domain/mime/mailtemplates.cpp | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/framework/src/domain/mime/mailtemplates.cpp b/framework/src/domain/mime/mailtemplates.cpp index 02e71bce..8b2b49db 100644 --- a/framework/src/domain/mime/mailtemplates.cpp +++ b/framework/src/domain/mime/mailtemplates.cpp | |||
@@ -69,6 +69,13 @@ static KMime::Types::Mailbox::List stripMyAddressesFromAddressList(const KMime:: | |||
69 | return addresses; | 69 | return addresses; |
70 | } | 70 | } |
71 | 71 | ||
72 | static QString toPlainText(const QString &s) | ||
73 | { | ||
74 | QTextDocument doc; | ||
75 | doc.setHtml(s); | ||
76 | return doc.toPlainText(); | ||
77 | } | ||
78 | |||
72 | void initHeader(const KMime::Message::Ptr &message) | 79 | void initHeader(const KMime::Message::Ptr &message) |
73 | { | 80 | { |
74 | message->removeHeader<KMime::Headers::To>(); | 81 | message->removeHeader<KMime::Headers::To>(); |
@@ -881,9 +888,7 @@ QString MailTemplates::plaintextContent(const KMime::Message::Ptr &msg) | |||
881 | const auto plain = otp.plainTextContent(); | 888 | const auto plain = otp.plainTextContent(); |
882 | if (plain.isEmpty()) { | 889 | if (plain.isEmpty()) { |
883 | //Maybe not as good as the webengine version, but works at least for simple html content | 890 | //Maybe not as good as the webengine version, but works at least for simple html content |
884 | QTextDocument doc; | 891 | return toPlainText(otp.htmlContent()); |
885 | doc.setHtml(otp.htmlContent()); | ||
886 | return doc.toPlainText(); | ||
887 | } | 892 | } |
888 | return plain; | 893 | return plain; |
889 | } | 894 | } |
@@ -906,16 +911,16 @@ static KMime::Content *createAttachmentPart(const QByteArray &content, const QSt | |||
906 | return part; | 911 | return part; |
907 | } | 912 | } |
908 | 913 | ||
909 | static KMime::Content *createPlainBodyPart(const QByteArray &body) { | 914 | static KMime::Content *createPlainBodyPart(const QString &body) { |
910 | auto mainMessage = new KMime::Content; | 915 | auto mainMessage = new KMime::Content; |
911 | mainMessage->setBody(body); | 916 | mainMessage->setBody(body.toUtf8()); |
912 | mainMessage->contentType(true)->setMimeType("text/plain"); | 917 | mainMessage->contentType(true)->setMimeType("text/plain"); |
913 | return mainMessage; | 918 | return mainMessage; |
914 | } | 919 | } |
915 | 920 | ||
916 | static KMime::Content *createHtmlBodyPart(const QByteArray &body) { | 921 | static KMime::Content *createHtmlBodyPart(const QString &body) { |
917 | auto mainMessage = new KMime::Content; | 922 | auto mainMessage = new KMime::Content; |
918 | mainMessage->setBody(body); | 923 | mainMessage->setBody(body.toUtf8()); |
919 | mainMessage->contentType(true)->setMimeType("text/html"); | 924 | mainMessage->contentType(true)->setMimeType("text/html"); |
920 | return mainMessage; | 925 | return mainMessage; |
921 | } | 926 | } |
@@ -926,10 +931,7 @@ static KMime::Content *createBodyPart(const QByteArray &body, bool htmlBody) { | |||
926 | bodyPart->contentType(true)->setMimeType("multipart/alternative"); | 931 | bodyPart->contentType(true)->setMimeType("multipart/alternative"); |
927 | bodyPart->contentType()->setBoundary(KMime::multiPartBoundary()); | 932 | bodyPart->contentType()->setBoundary(KMime::multiPartBoundary()); |
928 | 933 | ||
929 | QTextDocument doc; | 934 | bodyPart->addContent(createPlainBodyPart(toPlainText(body))); |
930 | doc.setHtml(body); | ||
931 | |||
932 | bodyPart->addContent(createPlainBodyPart(doc.toPlainText().toUtf8())); | ||
933 | bodyPart->addContent(createHtmlBodyPart(body)); | 935 | bodyPart->addContent(createHtmlBodyPart(body)); |
934 | return bodyPart; | 936 | return bodyPart; |
935 | } else { | 937 | } else { |