diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-10-08 13:36:05 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-10-08 13:36:05 +0200 |
commit | 5948dfeef0685477c9bd98f7d08508a6688c04d1 (patch) | |
tree | 09445799c8ee2e19aea1fa34fd460459681fa99c /framework/src/domain/mime/mailtemplates.cpp | |
parent | 1913df64d2d9a19f1e0e7ae92a4e90c95e17d777 (diff) | |
download | kube-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.cpp | 24 |
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 | ||
916 | static 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 | |||
916 | static KMime::Types::Mailbox::List stringListToMailboxes(const QStringList &list) | 923 | static 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 | ||
927 | KMime::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) | 934 | KMime::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 | ||