diff options
Diffstat (limited to 'src/message/queue_sender.cpp')
-rw-r--r-- | src/message/queue_sender.cpp | 39 |
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"; + } + +} |