summaryrefslogtreecommitdiffstats
path: root/framework/src/domain/mime/mailtemplates.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2017-10-08 13:36:05 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2017-10-08 13:36:05 +0200
commit5948dfeef0685477c9bd98f7d08508a6688c04d1 (patch)
tree09445799c8ee2e19aea1fa34fd460459681fa99c /framework/src/domain/mime/mailtemplates.cpp
parent1913df64d2d9a19f1e0e7ae92a4e90c95e17d777 (diff)
downloadkube-5948dfeef0685477c9bd98f7d08508a6688c04d1.tar.gz
kube-5948dfeef0685477c9bd98f7d08508a6688c04d1.zip
Assembling html mails
Diffstat (limited to 'framework/src/domain/mime/mailtemplates.cpp')
-rw-r--r--framework/src/domain/mime/mailtemplates.cpp24
1 files changed, 22 insertions, 2 deletions
diff --git a/framework/src/domain/mime/mailtemplates.cpp b/framework/src/domain/mime/mailtemplates.cpp
index dc4f93b5..25ce1385 100644
--- a/framework/src/domain/mime/mailtemplates.cpp
+++ b/framework/src/domain/mime/mailtemplates.cpp
@@ -913,6 +913,13 @@ static KMime::Content *createBodyPart(const QByteArray &body) {
913 return mainMessage; 913 return mainMessage;
914} 914}
915 915
916static KMime::Content *createHtmlBodyPart(const QByteArray &body) {
917 auto mainMessage = new KMime::Content;
918 mainMessage->setBody(body);
919 mainMessage->contentType(true)->setMimeType("text/html");
920 return mainMessage;
921}
922
916static KMime::Types::Mailbox::List stringListToMailboxes(const QStringList &list) 923static KMime::Types::Mailbox::List stringListToMailboxes(const QStringList &list)
917{ 924{
918 KMime::Types::Mailbox::List mailboxes; 925 KMime::Types::Mailbox::List mailboxes;
@@ -924,7 +931,7 @@ static KMime::Types::Mailbox::List stringListToMailboxes(const QStringList &list
924 return mailboxes; 931 return mailboxes;
925} 932}
926 933
927KMime::Message::Ptr MailTemplates::createMessage(KMime::Message::Ptr existingMessage, const QStringList &to, const QStringList &cc, const QStringList &bcc, const KMime::Types::Mailbox &from, const QString &subject, const QString &body, const QList<Attachment> &attachments, const std::vector<GpgME::Key> &signingKeys) 934KMime::Message::Ptr MailTemplates::createMessage(KMime::Message::Ptr existingMessage, const QStringList &to, const QStringList &cc, const QStringList &bcc, const KMime::Types::Mailbox &from, const QString &subject, const QString &body, bool htmlBody, const QList<Attachment> &attachments, const std::vector<GpgME::Key> &signingKeys)
928{ 935{
929 auto mail = existingMessage; 936 auto mail = existingMessage;
930 if (!mail) { 937 if (!mail) {
@@ -968,12 +975,25 @@ KMime::Message::Ptr MailTemplates::createMessage(KMime::Message::Ptr existingMes
968 bodyPart->contentType()->setBoundary(KMime::multiPartBoundary()); 975 bodyPart->contentType()->setBoundary(KMime::multiPartBoundary());
969 bodyPart->contentTransferEncoding()->setEncoding(KMime::Headers::CE7Bit); 976 bodyPart->contentTransferEncoding()->setEncoding(KMime::Headers::CE7Bit);
970 bodyPart->setPreamble("This is a multi-part message in MIME format.\n"); 977 bodyPart->setPreamble("This is a multi-part message in MIME format.\n");
978 //TODO deal with html
971 bodyPart->addContent(createBodyPart(body.toUtf8())); 979 bodyPart->addContent(createBodyPart(body.toUtf8()));
972 for (const auto &attachment : attachments) { 980 for (const auto &attachment : attachments) {
973 bodyPart->addContent(createAttachmentPart(attachment.data, attachment.filename, attachment.isInline, attachment.mimeType, attachment.name)); 981 bodyPart->addContent(createAttachmentPart(attachment.data, attachment.filename, attachment.isInline, attachment.mimeType, attachment.name));
974 } 982 }
975 } else { 983 } else {
976 bodyPart = createBodyPart(body.toUtf8()); 984 if (htmlBody) {
985 bodyPart = new KMime::Content;
986 bodyPart->contentType(true)->setMimeType("multipart/alternative");
987 bodyPart->contentType()->setBoundary(KMime::multiPartBoundary());
988
989 QTextDocument doc;
990 doc.setHtml(body);
991
992 bodyPart->addContent(createBodyPart(doc.toPlainText().toUtf8()));
993 bodyPart->addContent(createHtmlBodyPart(body.toUtf8()));
994 } else {
995 bodyPart = createBodyPart(body.toUtf8());
996 }
977 } 997 }
978 bodyPart->assemble(); 998 bodyPart->assemble();
979 999