summaryrefslogtreecommitdiff
path: root/src/message/queue_sender.cpp
diff options
context:
space:
mode:
authorclaiff <claiff@mail.ru>2022-10-19 18:17:14 +0300
committerclaiff <claiff@mail.ru>2022-10-19 18:17:14 +0300
commit235b75103d5fd2e7d0f8027d7b7e3b50a7deed2b (patch)
tree19840073cd01ccee5ed9a3159d8f1db88991f050 /src/message/queue_sender.cpp
parentebd8670701c6adc7bee929bd9911ca335b3223c5 (diff)
downloadobmc-sila-smtp-235b75103d5fd2e7d0f8027d7b7e3b50a7deed2b.tar.xz
refactor
Diffstat (limited to 'src/message/queue_sender.cpp')
-rw-r--r--src/message/queue_sender.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/message/queue_sender.cpp b/src/message/queue_sender.cpp
new file mode 100644
index 0000000..8f0172a
--- /dev/null
+++ b/src/message/queue_sender.cpp
@@ -0,0 +1,39 @@
+#include "queue_sender.hpp"
+#include "sender.hpp"
+
+namespace smtp::message
+{
+ QueueSender::QueueSender( manage::Settings const& settings_storage,
+ manage::Mail& mail_to,
+ thread::Queue& message_queue)
+ : mSettingsStorage( settings_storage )
+ , mMailTo( mail_to )
+ , mMessageQueue( message_queue )
+ {
+
+ }
+
+ void QueueSender::SendMessages()
+ {
+ Sender message_sender;
+ while (1)
+ {
+ auto message = mMessageQueue.WaitAndPop();
+ auto mail_from = GetMailfrom();
+ auto mails_to = mMailTo.GetMailToSend();
+ message_sender.Send( mSettingsStorage, mail_from, mails_to, message->subject, message->text );
+ }
+ }
+
+ std::string QueueSender::GetMailfrom() const
+ {
+ return mSettingsStorage.IsNeedAuth() ? mSettingsStorage.GetUserName() :
+ GetDefaultMailfrom();
+ }
+
+ std::string QueueSender::GetDefaultMailfrom() const
+ {
+ return "cp2-5422";
+ }
+
+}