summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorclaiff <claiff@mail.ru>2022-10-19 14:22:11 +0300
committerclaiff <claiff@mail.ru>2022-10-19 14:22:11 +0300
commitebd8670701c6adc7bee929bd9911ca335b3223c5 (patch)
treeca9b09e946cdc925c95b934741342046404e41e6
parent79dcd12de0059eef4644ecfd362dec388489dca2 (diff)
parent249042f598b3b359ae136ff24b24b1c2bdd60750 (diff)
downloadobmc-sila-smtp-ebd8670701c6adc7bee929bd9911ca335b3223c5.tar.xz
Merge branch 'bugfix/date'
# Conflicts: # src/message/sender.cpp
-rw-r--r--src/message/builder/date.cpp5
-rw-r--r--src/message/sender.cpp53
2 files changed, 31 insertions, 27 deletions
diff --git a/src/message/builder/date.cpp b/src/message/builder/date.cpp
index 3268935..9fdc524 100644
--- a/src/message/builder/date.cpp
+++ b/src/message/builder/date.cpp
@@ -10,7 +10,10 @@ namespace smtp::message::builder
{
result = mBase->Get();
}
- result += "Date: Mon, 29 Nov 2010 21:54:29 +1100\r\n";
+ auto current_date = time(0);
+ auto current_date_as_string = ctime(&current_date);
+
+ result += "Date: " + std::string(current_date_as_string) + "\r\n";
return result;
}
}
diff --git a/src/message/sender.cpp b/src/message/sender.cpp
index a0ef6ee..8b5371a 100644
--- a/src/message/sender.cpp
+++ b/src/message/sender.cpp
@@ -1,4 +1,5 @@
#include <cstring>
+#include <iostream>
#include "sender.hpp"
#include "builder/date.hpp"
@@ -11,35 +12,36 @@
namespace smtp::message
{
- static std::string mText;
+ static std::string mText;
- //
- // Constructors/Destructors
- //
+ //
+ // Constructors/Destructors
+ //
Sender::Sender( manage::Settings const& settings_storage, manage::Mail& mail_to, thread::Queue& message_queue )
- : mSettingsStorage( settings_storage )
- , mMailTo( mail_to )
+ : mSettingsStorage( settings_storage )
+ , mMailTo( mail_to )
, mMessageQueue( message_queue )
- {
+ {
- }
+ }
- //
- //Public methods
- //
+ //
+ //Public methods
+ //
void Sender::Send()
- {
- static const std::string METHOD_NAME = "Send message";
+ {
+ static const std::string METHOD_NAME = "Send message";
- CURLcode result = CURLE_OK;
- curl_slist* recipients = nullptr;
- WriteThis upload_ctx{};
- auto curl = curl_easy_init();
- //TODO сделать инициализацию через регистратор инициализаторов
+ CURLcode result = CURLE_OK;
+ curl_slist* recipients = nullptr;
+ WriteThis upload_ctx{};
+ auto curl = curl_easy_init();
+ //TODO сделать инициализацию через регистратор инициализаторов
while(1)
{
+ mMailTo.WaitWhileEmptyMails();
auto message = mMessageQueue.WaitAndPop();
if( !InitCurl( curl, upload_ctx, mSettingsStorage.GetUserName() ))
{
@@ -47,7 +49,6 @@ namespace smtp::message
}
//TODO раздать mail_to другим методам
- mMailTo.WaitWhileEmptyMails();
auto mail_to = mMailTo.GetMailToSend();
FillRecipients( curl, recipients );
@@ -101,13 +102,13 @@ namespace smtp::message
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 >( mail_to ))
- .Apply( std::make_shared < builder::From >( mail_from ))
- .Apply( std::make_shared < builder::MailTo >( mail_to ))
- .Apply( std::make_shared < builder::Date >());
+ auto mail_to = mMailTo.GetMailToSend();
+ auto text_decorator = std::make_shared < builder::Text >( text );
+ text_decorator->Apply( std::make_shared < builder::Date >())
+ .Apply( std::make_shared < builder::Subject >( subject ))
+ .Apply( std::make_shared < builder::Cc >( mail_to ))
+ .Apply( std::make_shared < builder::From >( mail_from ))
+ .Apply( std::make_shared < builder::MailTo >( mail_to ));
mText = text_decorator->Get();
}