File indexing completed on 2025-02-02 05:08:36
0001 // SPDX-FileCopyrightText: 2023 Carl Schwan <carlschwan@kde.org> 0002 // SPDX-License-Identifier: LGPL-2.0-or-later 0003 0004 #pragma once 0005 0006 #include "ispdb/serverconfiguration.h" 0007 0008 #include <KMime/HeaderParsing> 0009 #include <QObject> 0010 0011 class QNetworkAccessManager; 0012 class QNetworkReply; 0013 0014 class IspdbService : public QObject 0015 { 0016 Q_OBJECT 0017 0018 public: 0019 explicit IspdbService(QObject *parent = nullptr); 0020 void start(const KMime::Types::AddrSpec &addrSpec); 0021 0022 Q_SIGNALS: 0023 void finished(const EmailProvider &emailProvider, const QString &messageInfo); 0024 void notConfigFound(); 0025 void requestedConfigFromUrl(const QUrl &url); 0026 0027 private: 0028 enum SearchServerType { 0029 IspAutoConfig = 0, ///< http://autoconfig.example.com/mail/config-v1.1.xml 0030 IspWellKnow, ///< http://example.com/.well-known/autoconfig/mail/config-v1.1.xml 0031 DataBase ///< https://autoconfig.thunderbird.net/v1.1/example.com */ 0032 }; 0033 void requestConfig(const KMime::Types::AddrSpec &addrSpec, const SearchServerType searchServerType); 0034 void handleReply(QNetworkReply *const reply, const KMime::Types::AddrSpec &addrSpec, const SearchServerType searchServerType); 0035 0036 QNetworkAccessManager *const mNetworkAccessManager; 0037 };