The following code can be added to event like AfterAppInit. It assumes that you have a table named smtp_settings that stores several sets of SMTP settings as different parts of your projects ( modules ) may have a different set of SMTP settings.
global $runnerProjectSettings;
$strEmailKey = "WebPortal"; // module name
$rs = DB::Query("select * from smtp_settings where module ='" + strEmailKey + "'");
if ($data = $rs->fetchAssoc())
{
runnerProjectSettings["security"]["emailSettings"]["SMTPUser"] = $data["SMTPUser"];
runnerProjectSettings["security"]["emailSettings"]["SMTPServer"] = $data["SMTPServer"];
runnerProjectSettings["security"]["emailSettings"]["SMTPPort"] = $data["SMTPPort"];
runnerProjectSettings["security"]["emailSettings"]["SMTPPassword"] = $data["SMTPPassword"];
runnerProjectSettings["security"]["emailSettings"]["fromEmail"] = $data["fromEmail"];
runnerProjectSettings["security"]["emailSettings"]["securityProtocol"] = 0; // no SSL or TLS
}