polserver/pol-core/pol/email.cpp
turleypol 21577d8e5b
Clang Tidy concat namespaces (#855)
* tidy

* Automated clang-tidy change: modernize-concat-nested-namespaces

* compile test

* fix namespace

---------

Co-authored-by: Clang Tidy <clang-tidy@users.noreply.github.com>
2026-01-17 10:30:21 +01:00

53 lines
1.5 KiB
C++

#include <boost/algorithm/string/predicate.hpp> // for istarts_with
#include "clib/cfgelem.h"
#include "clib/cfgfile.h"
#include "clib/fileutil.h"
#include "globals/settings.h"
namespace Pol::Core
{
void clear_email_cfg()
{
settingsManager.email_cfg.url = "";
settingsManager.email_cfg.username = "";
settingsManager.email_cfg.password = "";
settingsManager.email_cfg.use_tls = false;
}
void load_email_cfg()
{
if ( !Clib::FileExists( "config/email.cfg" ) )
{
clear_email_cfg();
return;
}
Clib::ConfigFile cf( "config/email.cfg" );
Clib::ConfigElem elem;
cf.readraw( elem );
settingsManager.email_cfg.url = elem.remove_string( "URL" );
if ( !boost::algorithm::istarts_with( settingsManager.email_cfg.url, "smtp://" ) &&
!boost::algorithm::istarts_with( settingsManager.email_cfg.url, "smtps://" ) )
{
clear_email_cfg();
elem.throw_error( "URL must start with 'smtp://' or 'smtps://'." );
}
settingsManager.email_cfg.username = elem.remove_string( "Username", "" );
settingsManager.email_cfg.password = elem.remove_string( "Password", "" );
settingsManager.email_cfg.use_tls = elem.remove_bool( "UseTLS", false );
settingsManager.email_cfg.ca_file = elem.remove_string( "CAFile", "" );
if ( !settingsManager.email_cfg.ca_file.empty() &&
!Clib::FileExists( settingsManager.email_cfg.ca_file ) )
{
clear_email_cfg();
elem.throw_error(
fmt::format( "CAFile '{}' does not exist.", settingsManager.email_cfg.ca_file ) );
}
}
} // namespace Pol::Core