File indexing completed on 2024-05-12 05:28:17
0001 // SPDX-FileCopyrightText: 2016 Christian Mollekopf <mollekopf@kolabsys.com> 0002 // SPDX-License-Identifier: LGPL-2.0-or-later 0003 0004 #pragma once 0005 0006 #include <KMime/Message> 0007 #include <QByteArray> 0008 #include <QStringList> 0009 #include <functional> 0010 0011 #include "mailcrypto.h" 0012 0013 struct Attachment { 0014 QString name; 0015 QString filename; 0016 QByteArray mimeType; 0017 bool isInline; 0018 QByteArray data; 0019 }; 0020 0021 struct Recipients { 0022 QStringList to; 0023 QStringList cc; 0024 QStringList bcc; 0025 }; 0026 0027 namespace MailTemplates 0028 { 0029 void reply(const KMime::Message::Ptr &origMsg, 0030 const std::function<void(const KMime::Message::Ptr &result)> &callback, 0031 const KMime::Types::AddrSpecList &me = {}); 0032 void forward(const KMime::Message::Ptr &origMsg, const std::function<void(const KMime::Message::Ptr &result)> &callback); 0033 QString plaintextContent(const KMime::Message::Ptr &origMsg); 0034 QString body(const KMime::Message::Ptr &msg, bool &isHtml); 0035 KMime::Message::Ptr createMessage(KMime::Message::Ptr existingMessage, 0036 const QStringList &to, 0037 const QStringList &cc, 0038 const QStringList &bcc, 0039 const KMime::Types::Mailbox &from, 0040 const QString &subject, 0041 const QString &body, 0042 bool htmlBody, 0043 const QList<Attachment> &attachments, 0044 const std::vector<Crypto::Key> &signingKeys = {}, 0045 const std::vector<Crypto::Key> &encryptionKeys = {}, 0046 const Crypto::Key &attachedKey = {}); 0047 0048 KMime::Message::Ptr 0049 createIMipMessage(const QString &from, const Recipients &recipients, const QString &subject, const QString &body, const QString &attachment); 0050 };