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 };