File indexing completed on 2025-03-09 04:54:13

0001 /*
0002    SPDX-FileCopyrightText: 2020 Sandro Knauß <knauss@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "autocryptrecipient.h"
0010 
0011 #include "messagecore_export.h"
0012 
0013 #include <KMime/Headers>
0014 #include <MimeTreeParser/MessagePart>
0015 #include <MimeTreeParser/NodeHelper>
0016 
0017 namespace MessageCore
0018 {
0019 class MESSAGECORE_EXPORT HeaderMixupNodeHelper
0020 {
0021 public:
0022     HeaderMixupNodeHelper(MimeTreeParser::NodeHelper *n, KMime::Content *m);
0023 
0024     [[nodiscard]] bool hasMailHeader(const char *header) const;
0025     [[nodiscard]] KMime::Headers::Base const *mailHeaderAsBase(const char *header) const;
0026     [[nodiscard]] QSharedPointer<KMime::Headers::Generics::AddressList> mailHeaderAsAddressList(const char *header) const;
0027     [[nodiscard]] QDateTime dateHeader() const;
0028     [[nodiscard]] QList<MimeTreeParser::MessagePart::Ptr> messagePartsOfMailHeader(const char *header) const;
0029     [[nodiscard]] QList<KMime::Headers::Base *> headers(const char *headerType) const;
0030 
0031 public:
0032     KMime::Content *message = nullptr;
0033 
0034 private:
0035     MimeTreeParser::NodeHelper *const mNodeHelper;
0036 };
0037 
0038 [[nodiscard]] QHash<QByteArray, QByteArray> MESSAGECORE_EXPORT paramsFromAutocryptHeader(const KMime::Headers::Base *const header);
0039 MESSAGECORE_EXPORT void processAutocryptfromMail(const HeaderMixupNodeHelper &mixup);
0040 }