diff options
author | eportnov <eportnov@ibs.ru> | 2022-09-13 11:13:38 +0300 |
---|---|---|
committer | eportnov <eportnov@ibs.ru> | 2022-09-13 11:13:38 +0300 |
commit | a58088ec7a45bb86b155a8ef9514b35b0ba8d1c9 (patch) | |
tree | 95a796ba075edb1abf4edea29a11544fa7344754 /src/message/sender.cpp | |
parent | df33492b80495fd36a1a488c0b0a39753f1df415 (diff) | |
parent | dcbaf61e4968734d9b3bc41f704ea04d54746cea (diff) | |
download | obmc-sila-smtp-a58088ec7a45bb86b155a8ef9514b35b0ba8d1c9.tar.xz |
Merge branch 'feature/mail_user_managment'
Diffstat (limited to 'src/message/sender.cpp')
-rw-r--r-- | src/message/sender.cpp | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/src/message/sender.cpp b/src/message/sender.cpp index cabcb8f..20b8e9c 100644 --- a/src/message/sender.cpp +++ b/src/message/sender.cpp @@ -16,8 +16,9 @@ namespace smtp::message // // Constructors/Destructors // - Sender::Sender( service::Settings const& settings_storage ) - : mSettingsStorage( settings_storage ) + Sender::Sender( manage::Settings const& settings_storage, manage::Mail const& mail_to ) + : mSettingsStorage( settings_storage ), + mMailTo( mail_to ) { } @@ -26,8 +27,7 @@ namespace smtp::message //Public methods // - bool Sender::Send( std::string const& mail_from, std::string const& mail_to, std::list<std::string> const& cc, - std::string const& subject, std::string const& text ) + bool Sender::Send( std::string const& mail_from, std::string const& subject, std::string const& text ) { CURLcode result = CURLE_OK; curl_slist *recipients = NULL; @@ -38,8 +38,8 @@ namespace smtp::message { return false; } - FillRecipients( curl, mail_to, cc, recipients ); - UpdateMailText( mail_from, mail_to, cc, subject, text); + FillRecipients( curl, recipients ); + UpdateMailText( mail_from, subject, text); result = curl_easy_perform(curl); @@ -79,24 +79,23 @@ namespace smtp::message return true; } - void Sender::UpdateMailText( std::string const& mail_from, std::string const& mail_to, std::list<std::string> const& cc, - std::string const& subject, std::string const& text ) const + void Sender::UpdateMailText( std::string const& mail_from, std::string const& subject, std::string const& text ) const { + auto mail_to = mMailTo.GetMailToSend(); auto text_decorator = std::make_shared<builder::Text>( text ); text_decorator->Apply( std::make_shared<builder::Subject>( subject ) ) - .Apply( std::make_shared<builder::Cc>( cc ) ) + .Apply( std::make_shared<builder::Cc>( mail_to ) ) .Apply( std::make_shared<builder::From>( mail_from ) ) - .Apply( std::make_shared<builder::MailTo>( mail_to ) ) + .Apply( std::make_shared<builder::MailTo>( mail_to.front() ) ) .Apply( std::make_shared<builder::Date>() ); mText = text_decorator->Get(); std::cout << mText << std::endl; } - void Sender::FillRecipients( CURL* curl, std::string const& mail_to, std::list<std::string> const& cc, curl_slist* recipients ) + void Sender::FillRecipients( CURL* curl, curl_slist* recipients ) { - recipients = curl_slist_append( recipients, mail_to.c_str() ); - - for( const auto& recipient : cc ) + auto mail_to = mMailTo.GetMailToSend(); + for( const auto& recipient : mail_to ) { recipients = curl_slist_append( recipients, recipient.c_str() ); } |