#pragma once #include #include #include #include "managment/settings.hpp" #include "managment/mail.hpp" namespace smtp::message { struct WriteThis { int counter; }; class Sender { public: Sender( manage::Settings& settings_storage, manage::Mail const& mail_to ); ~Sender() = default; bool Send( std::string const& mail_from, std::string const& subject, std::string const& text ); private: void UpdateMailText( std::string const& mail_from, std::string const& subject, std::string const& textt ) const; void InitSenders( std::string const& mail_from, std::list const& mail_to ); void FillRecipients(CURL* curl, curl_slist* recipients ); std::string GetHostPortData() const; static size_t ReadCallBack( void *ptr, size_t size, size_t nmemb, void *userp ); manage::Settings& mSettingsStorage; manage::Mail const& mMailTo; bool InitCurl( CURL* curl, WriteThis const& upload_ctx, std::string const& mail_from ); }; }