summaryrefslogtreecommitdiff
path: root/src/message/queue_sender.hpp
blob: a5724fbc7316ca02e64717d22a22518b6abd7e24 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#pragma once

#include <sdbusplus/asio/connection.hpp>

#include "management/settings.hpp"
#include "management/mail.hpp"
#include "thread/queue.hpp"

namespace smtp::message
{
    class QueueSender
    {
    public:
        QueueSender( manage::Settings const& settings_storage,
                     manage::Mail& mail_to,
                     thread::Queue& message_queue,
                     std::shared_ptr<sdbusplus::asio::connection> connection );
        ~QueueSender() = default;

        void SendMessages();
    private:
        std::string GetMailfrom() const;
        std::string GetDefaultMailfrom() const;

        manage::Settings const& mSettingsStorage;
        manage::Mail& mMailTo;
        thread::Queue& mMessageQueue;
        std::shared_ptr<sdbusplus::asio::connection> mConnection;
    };
}