diff options
Diffstat (limited to 'src/service/smtp.cpp')
-rw-r--r-- | src/service/smtp.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/service/smtp.cpp b/src/service/smtp.cpp index 3c71161..6c2f1ad 100644 --- a/src/service/smtp.cpp +++ b/src/service/smtp.cpp @@ -14,6 +14,10 @@ namespace smtp::service CreateMessengerInterface( connection ); CreateSettingsManagerInterface( connection ); CreateMailManagerInterface( connection ); + + message::Sender sender{mSettingsStorage, mMailTo, mMessageQueue}; + std::thread sender_message( &message::Sender::Send, std::move(sender) ); + sender_message.detach(); } // @@ -33,9 +37,9 @@ namespace smtp::service static constexpr char SMTP_INTERFACE_NAME[] = "xyz.openbmc_project.Messenger"; mObjectServer = std::make_shared<sdbusplus::asio::object_server>( connection ); - mMessengerInterface = mObjectServer->add_interface( SMTP_OBJECT_NAME, SMTP_INTERFACE_NAME ); + mMessengerInterface = mObjectServer->add_interface( SMTP_OBJECT_NAME, SMTP_INTERFACE_NAME ); - AddMessengerMethods(); + AddMessengerMethods(); mMessengerInterface->initialize(); } @@ -70,10 +74,9 @@ namespace smtp::service { static constexpr char SMTP_SEND_MESSAGE_METHOD_NAME[] = "SendMail"; - mMessengerInterface->register_method( SMTP_SEND_MESSAGE_METHOD_NAME, [this]( std::string const& mail_from, - std::string const& theme, - std::string const& text ) - { return message::Sender{ mSettingsStorage, mMailTo }.Send( mail_from, theme, text );}); + mMessengerInterface->register_method( SMTP_SEND_MESSAGE_METHOD_NAME, [this]( std::string const& theme, + std::string const& text ) + { mMessageQueue.Push({theme, text});}); } void Smtp::AddSettingsManagerMethods() |