From 92158f9f845cb2f28035f32836de70c148aa35b3 Mon Sep 17 00:00:00 2001 From: Timothee Leclaire-Fournier Date: Fri, 8 Mar 2024 12:10:58 -0500 Subject: [PATCH] emailQt: Initial commit --- CMakeLists.txt | 32 +++++++++++++ CurlHandler.cpp | 101 +++++++++++++++++++++++++++++++++++++++++ CurlHandler.hpp | 49 ++++++++++++++++++++ Email.cpp | 47 +++++++++++++++++++ Email.hpp | 28 ++++++++++++ EmailClient.cpp | 44 ++++++++++++++++++ EmailClient.hpp | 43 ++++++++++++++++++ EmailDetails.cpp | 18 ++++++++ EmailDetails.hpp | 19 ++++++++ ParametersProvider.cpp | 57 +++++++++++++++++++++++ ParametersProvider.hpp | 32 +++++++++++++ README.md | 10 ++++ demo.mkv | Bin 0 -> 617827 bytes main.cpp | 10 ++++ 14 files changed, 490 insertions(+) create mode 100644 CMakeLists.txt create mode 100755 CurlHandler.cpp create mode 100755 CurlHandler.hpp create mode 100644 Email.cpp create mode 100644 Email.hpp create mode 100755 EmailClient.cpp create mode 100755 EmailClient.hpp create mode 100644 EmailDetails.cpp create mode 100644 EmailDetails.hpp create mode 100644 ParametersProvider.cpp create mode 100644 ParametersProvider.hpp create mode 100644 README.md create mode 100644 demo.mkv create mode 100755 main.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..93dbe00 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,32 @@ +cmake_minimum_required(VERSION 3.27) +project(emailQt) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTORCC ON) + +set(CMAKE_CXX_STANDARD 23) + +set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG -fsanitize=address,undefined") +set(CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} -fsanitize=address,undefined") + +find_package(Qt6 COMPONENTS Core Gui Widgets REQUIRED) +find_package(Qt6Keychain CONFIG REQUIRED) + +add_executable(emailQt main.cpp + EmailClient.hpp + EmailClient.cpp + CurlHandler.hpp + CurlHandler.cpp + ParametersProvider.cpp + ParametersProvider.hpp + Email.cpp + Email.hpp + EmailDetails.cpp + EmailDetails.hpp) + +target_link_libraries(emailQt PRIVATE Qt6::Core + Qt6::Gui + Qt6::Widgets + curl + Qt6Keychain::Qt6Keychain) diff --git a/CurlHandler.cpp b/CurlHandler.cpp new file mode 100755 index 0000000..d1a5b2a --- /dev/null +++ b/CurlHandler.cpp @@ -0,0 +1,101 @@ +#include "CurlHandler.hpp" + +CurlHandler::CurlHandler() + : initialRes{}, initialCurl(curl_easy_init(), curl_easy_cleanup) { +} + +CurlHandler::~CurlHandler() { + for (auto& t : v) + t.join(); +} + +void CurlHandler::configure(const ParametersProvider::settings &sett) { + url.append("imaps://"); + url += sett.imapS; + url += "/INBOX?ALL"; + setts = sett; + + setupCurl(initialCurl, initialChunk, url); +} + +std::vector *CurlHandler::fetch() { + initialRes = curl_easy_perform(initialCurl.get()); + if (initialRes != CURLE_OK) { + return &decodedMessages; + } + + // We prepare to query the server. + url.erase(url.end() - 4, url.end()); + url += "/;MAILINDEX="; + + std::string temp; + std::stringstream s(initialChunk); + + size_t count = 0; + while (getline(s, temp, ' ')) { + // SELECT and * + if (count < 2) { + count++; + continue; + } + messagesId.emplace_back(temp); + } + + // We will query the server number by number. + // The messagesId vector contains all Email GUIDs. + v.reserve(messagesId.size()); + decodedMessages.resize(messagesId.size()); + count = 0; + + for (auto i{messagesId.rbegin()}; i != messagesId.rbegin() + 5; i++) + v.emplace_back(&CurlHandler::query, this, std::ref(*i), count++); + + return &decodedMessages; +} + +void CurlHandler::query(std::string &c, size_t count) { + std::shared_ptr localCurl(curl_easy_init(), curl_easy_cleanup); + CURLcode localCode; + c.erase(std::remove(c.begin(), c.end(), '\r'), c.end()); + c.erase(std::remove(c.begin(), c.end(), '\n'), c.end()); + setupCurl(localCurl, decodedMessages[count], url + c); + + localCode = curl_easy_perform(localCurl.get()); + if (localCode != CURLE_OK) { + // ... + } + + emit threadFinished(count, std::stoi(c)); +} + +void CurlHandler::setupCurl(std::shared_ptr ptr, std::string &m, std::string const &ur) const { + curl_easy_setopt(ptr.get(), CURLOPT_USERNAME, setts.userS.c_str()); + curl_easy_setopt(ptr.get(), CURLOPT_PASSWORD, setts.passS.c_str()); + + curl_easy_setopt(ptr.get(), CURLOPT_PORT, setts.port); + curl_easy_setopt(ptr.get(), CURLOPT_TIMEOUT, curlTimeoutSeconds); + + // The callback function will receive the string ref as its userdata + // and therefore save the data there. + curl_easy_setopt(ptr.get(), CURLOPT_USE_SSL, (long) CURLUSESSL_ALL); + curl_easy_setopt(ptr.get(), CURLOPT_WRITEDATA, (void *) &m); + curl_easy_setopt(ptr.get(), CURLOPT_WRITEFUNCTION, cb); + + // Necessary on some servers + curl_easy_setopt(ptr.get(), CURLOPT_USERAGENT, "libcurl-agent/1.0"); + + curl_easy_setopt(ptr.get(), CURLOPT_URL, ur.c_str()); + +#ifdef DEBUG + curl_easy_setopt(ptr.get(), CURLOPT_VERBOSE, 1L); +#else + curl_easy_setopt(ptr.get(), CURLOPT_VERBOSE, 0L); +#endif +} + +size_t cb(char *data, size_t size, size_t numberOfMembers, void *userdata) { + size_t realSize = size * numberOfMembers; + auto *mem = (std::string *) userdata; + mem->append(data, realSize); + return realSize; +} diff --git a/CurlHandler.hpp b/CurlHandler.hpp new file mode 100755 index 0000000..6463d90 --- /dev/null +++ b/CurlHandler.hpp @@ -0,0 +1,49 @@ +#pragma once + +#include +#include +#include +#include +#include +#include + +#include + +#include + +#include "ParametersProvider.hpp" + +constexpr long curlTimeoutSeconds{5}; + +// View RFC 3501 and RFC 2192 for more details + +size_t cb(char *data, size_t size, size_t numberOfMembers, void *userdata); + +class CurlHandler : public QObject { + Q_OBJECT + +public: + CurlHandler(); + ~CurlHandler(); + + void configure(const ParametersProvider::settings &sett); + std::vector *fetch(); + + void query(std::string &c, size_t count); + void setupCurl(std::shared_ptr ptr, std::string &m, const std::string &ur) const; + +signals: + void threadFinished(size_t threadId, int uid); + +private: + std::string url; + std::shared_ptr initialCurl; + CURLcode initialRes; + std::string initialChunk; + + std::vector decodedMessages; + std::vector messagesId; + std::vector v; + + ParametersProvider::settings setts; +}; \ No newline at end of file diff --git a/Email.cpp b/Email.cpp new file mode 100644 index 0000000..a78130d --- /dev/null +++ b/Email.cpp @@ -0,0 +1,47 @@ +#include "Email.hpp" + +Email::Email(const std::string &str, size_t uid) + : QListWidgetItem(nullptr, QListWidgetItem::UserType), uid{uid} { + setString(str); +} + +Email::Email(Email const &e) + : QListWidgetItem(e), uid{e.uid}, titleS(e.titleS), messageS(e.messageS) { + setString(titleS); +} + +void Email::setString(const std::string &str) { + std::stringstream ss(str); + + std::string line; + while (std::getline(ss, line)) { + if (line.starts_with("Subject:")) + titleS = line.substr(9); + else if (line.starts_with("Content-Type:")) + parseEmailBody(ss, line); + } + + setText(QString::fromStdString(titleS)); +} + +const std::string &Email::title() const { + return titleS; +} + +const std::string &Email::message() const { + return messageS; +} + +bool Email::operator<(QListWidgetItem const &other) const { + auto a{dynamic_cast(other)}; + return this->uid < a.uid; +} + +void Email::parseEmailBody(std::stringstream &ss, std::string &line) { + if (!line.contains("text/plain")) + return; + + while (std::getline(ss, line) && !(line.starts_with("--"))) { + messageS.append(line); + } +} \ No newline at end of file diff --git a/Email.hpp b/Email.hpp new file mode 100644 index 0000000..430e008 --- /dev/null +++ b/Email.hpp @@ -0,0 +1,28 @@ +#pragma once + +#include +#include +#include + +#include +#include + +class Email : public QListWidgetItem { +public: + explicit Email(const std::string &str, size_t uid); + Email(const Email &e); + ~Email() = default; + + void setString(const std::string &str); + [[nodiscard]] const std::string &title() const; + [[nodiscard]] const std::string &message() const; + + bool operator<(const QListWidgetItem &other) const; + + void parseEmailBody(std::stringstream &ss, std::string &line); + +private: + std::string titleS; + std::string messageS; + size_t uid; +}; diff --git a/EmailClient.cpp b/EmailClient.cpp new file mode 100755 index 0000000..5947a85 --- /dev/null +++ b/EmailClient.cpp @@ -0,0 +1,44 @@ +#include "EmailClient.hpp" + +EmailClient::EmailClient(QWidget *parent) + : QMainWindow(parent) { + connect(&provider, &ParametersProvider::done, this, &EmailClient::parametersDone); + + auto *layout{new QVBoxLayout}; + response = new QListWidget; + + layout->addWidget(response); + + auto *centralWidget{new QWidget(this)}; + centralWidget->setLayout(layout); + setCentralWidget(centralWidget); + + setWindowTitle("emailQt"); + + connect(response, &QListWidget::itemActivated, this, &EmailClient::itemActivated); + connect(&handler, &CurlHandler::threadFinished, this, &EmailClient::updateList); +} + +void EmailClient::start() { + provider.show(); + provider.setFocusInternal(); +} + +void EmailClient::parametersDone() { + handler.configure(provider.getSettings()); + + emailsString = handler.fetch(); + + showMaximized(); +} + +void EmailClient::itemActivated(QListWidgetItem *item) { + auto *p = dynamic_cast(item); + det.setMail(*p); + det.show(); +} + +void EmailClient::updateList(size_t threadId, int uid) { + response->addItem(new Email((*emailsString)[threadId], uid)); + response->sortItems(Qt::DescendingOrder); +} diff --git a/EmailClient.hpp b/EmailClient.hpp new file mode 100755 index 0000000..01d97f1 --- /dev/null +++ b/EmailClient.hpp @@ -0,0 +1,43 @@ +#pragma once + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "CurlHandler.hpp" +#include "Email.hpp" +#include "EmailDetails.hpp" +#include "ParametersProvider.hpp" + +class EmailClient : public QMainWindow { + Q_OBJECT + +public: + explicit EmailClient(QWidget *parent = nullptr); + ~EmailClient() = default; + + void start(); + +public slots: + void parametersDone(); + void itemActivated(QListWidgetItem *item); + void updateList(size_t threadId, int uid); + +private: + ParametersProvider provider; + CurlHandler handler; + QListWidget *response; + + std::vector *emailsString{}; + QList emailTitles; + EmailDetails det; +}; diff --git a/EmailDetails.cpp b/EmailDetails.cpp new file mode 100644 index 0000000..7de8c0e --- /dev/null +++ b/EmailDetails.cpp @@ -0,0 +1,18 @@ +#include "EmailDetails.hpp" + +EmailDetails::EmailDetails(QWidget *parent) + : QWidget(parent) { + t = new QTextEdit; + + auto *lay = new QVBoxLayout; + + lay->addWidget(t); + setLayout(lay); + + resize(800, 600); +} + +void EmailDetails::setMail(const Email &m) { + setWindowTitle(QString::fromStdString(m.title())); + t->setPlainText(QString::fromStdString(m.message())); +} diff --git a/EmailDetails.hpp b/EmailDetails.hpp new file mode 100644 index 0000000..b84bd4e --- /dev/null +++ b/EmailDetails.hpp @@ -0,0 +1,19 @@ +#pragma once + +#include +#include +#include + +#include "Email.hpp" + +class EmailDetails : public QWidget { + Q_OBJECT + +public: + explicit EmailDetails(QWidget *parent = nullptr); + + void setMail(const Email &m); + +private: + QTextEdit *t; +}; diff --git a/ParametersProvider.cpp b/ParametersProvider.cpp new file mode 100644 index 0000000..f3ea995 --- /dev/null +++ b/ParametersProvider.cpp @@ -0,0 +1,57 @@ +#include "ParametersProvider.hpp" + +ParametersProvider::ParametersProvider(QWidget *parent) + : QDialog(parent) { + auto *layout = new QVBoxLayout; + + auto *user = new QLabel("Nom d'utilisateur", this); + userField = new QLineEdit; + + auto *pass = new QLabel("Mot de passe", this); + passField = new QLineEdit; + passField->setEchoMode(QLineEdit::Password); + + auto *imap = new QLabel("Serveur IMAP", this); + imapField = new QLineEdit("imap.gmail.com"); + + auto *port = new QLabel("Port", this); + portField = new QLineEdit("993"); + portField->setValidator(new QIntValidator(1, 1000, this)); + + auto *startButton = new QPushButton("OK", this); + + layout->addWidget(user); + layout->addWidget(userField); + layout->addWidget(pass); + layout->addWidget(passField); + layout->addWidget(imap); + layout->addWidget(imapField); + layout->addWidget(port); + layout->addWidget(portField); + layout->addStretch(1); + layout->addWidget(startButton); + + this->setLayout(layout); + + resize(300, 450); + + connect(startButton, &QPushButton::clicked, this, &ParametersProvider::start); +} + +void ParametersProvider::start() { + sett.port = portField->text().toInt(); + sett.userS = userField->text().toStdString(); + sett.passS = passField->text().toStdString(); + sett.imapS = imapField->text().toStdString(); + close(); + emit done(); +} + +void ParametersProvider::setFocusInternal() { + activateWindow(); + userField->setFocus(); +} + +const ParametersProvider::settings &ParametersProvider::getSettings() { + return sett; +} diff --git a/ParametersProvider.hpp b/ParametersProvider.hpp new file mode 100644 index 0000000..7b3d43f --- /dev/null +++ b/ParametersProvider.hpp @@ -0,0 +1,32 @@ +#pragma once + +#include +#include +#include +#include +#include +#include + +class ParametersProvider : public QDialog { + Q_OBJECT + +public: + struct settings { + std::string userS, passS, imapS; + int port; + }; + + explicit ParametersProvider(QWidget *parent = nullptr); + ~ParametersProvider() = default; + + void start(); + void setFocusInternal(); + const settings &getSettings(); + +signals: + void done(); + +private: + settings sett; + QLineEdit *userField, *passField, *imapField, *portField; +}; diff --git a/README.md b/README.md new file mode 100644 index 0000000..19d1dee --- /dev/null +++ b/README.md @@ -0,0 +1,10 @@ +# emailQt - A small & simple Qt email client + +![](demo.mkv) + +## Usage +If you are using gmail, you need to enable 2FA and then generate an application password. +This can be done at https://myaccount.google.com/security. + +## Building +You will need a C++23 compiler, cmake, Qt6, libcurl and [QtKeychain](https://github.com/frankosterfeld/qtkeychain). \ No newline at end of file diff --git a/demo.mkv b/demo.mkv new file mode 100644 index 0000000000000000000000000000000000000000..3ea417b74d54563fffc67d94bd345c4c59acf238 GIT binary patch literal 617827 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%0D#R}I6Gl|{{5)F0qqXj_or#pmxXK68WX_N| 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

WRhS6hGlzZz!J4E%p=7cjq0;4 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