#pragma once #include #include #include #include "service/settings.hpp" namespace smtp::message { struct WriteThis { int counter; }; class Sender { public: Sender( service::Settings const& settings_storage ); ~Sender() = default; bool Send( std::string const& mail_from, std::string const& mail_to, std::list const& cc, std::string const& subject, std::string const& text ); private: void UpdateMailText( std::string const& mail_from, std::string const& mail_to, std::list const& cc, 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, std::string const& mail_to, std::list const& cc, curl_slist* recipients ); std::string GetHostPortData() const; static size_t ReadCallBack( void *ptr, size_t size, size_t nmemb, void *userp ); service::Settings const& mSettingsStorage; bool InitCurl( CURL* curl, WriteThis const& upload_ctx, std::string const& mail_from ); }; }