From f1ce1c901bbea229827dc1913fe2f94bff8fdca1 Mon Sep 17 00:00:00 2001 From: "CHIEFSOFT\\ameye" Date: Thu, 3 Oct 2024 11:02:25 -0400 Subject: [PATCH] send welcome emaail --- wrenchboard/src/shared_tool/cron_email.cc | 50 ++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/wrenchboard/src/shared_tool/cron_email.cc b/wrenchboard/src/shared_tool/cron_email.cc index 49425b53..c29feb41 100644 --- a/wrenchboard/src/shared_tool/cron_email.cc +++ b/wrenchboard/src/shared_tool/cron_email.cc @@ -12,7 +12,7 @@ void vars2form(CVars &v, C_CGI_Form &form); extern int mailsend(CVars in, CVars &out); - +long CronWelcomeAccountMail(CVars in); /* CREATE TABLE email_message( @@ -39,5 +39,53 @@ CREATE TABLE email_message( long CronSendMail(CVars in, CVars &out){ logfmt(logINFO, " ***** CALL long CronSendMail(CVars in, CVars &out)"); + + + char vname[30]; + long ret = PHP_API_BAD_PARAM; + try { + out["total_record"] = "0"; + const PGresult *res; + res = pgsql_query("SELECT * FROM email_message WHERE topic ='WRENCHBOARD_ACCOUNT_LOGIN' AND status = 1 ORDER BY id ASC LIMIT 20"); + + if (res != NULL && pgsql_num_rows(res) > 0) { + out["total_record"] = pgsql_num_rows(res); + + for (int i = 0, n = pgsql_num_rows(res); i < n; i++) { + mapf = pgsql_fetch_assoc(res, i); + if (f.empty()) continue; + CVars rec; + map_to_cvars(f, rec); + pgsql_query("UPDATE email_message SET status = 2 WHERE id = %lu ", rec["id"].Long()); // move the status so no retry + CronWelcomeAccountMail(rec); // send the cron email + pgsql_query("UPDATE email_message SET status = 5, completed = now() WHERE id = %lu ", rec["id"].Long()); // move the status so no retry + } + } + ret = PHP_API_OK; + out["status"] = "OK"; + } catch (bad_parameter) { + logfmt(logINFO, "ERROR CALL long WRENCHBOARD_ACCOUNT_LOGIN(CVars in, CVars &out)"); + } + return 0; + } + + long CronWelcomeAccountMail(CVars in) // TESTED + { + REQ_LONG(in, "member_id", 1, -1); + CVars x; + CVars out; + CVars ml; + C_CGI_Form form("", ""); + form.LetStr("main_site_url", "https://www.wrenchboard.com/"); + out["server_name"] = CfgReadChar("system.server_name"); + form.LetStr("server_name", out["server_name"].c_str()); + form.LetStr("site_name", "WrenchBoard"); + + if (load_db_record(x, "SELECT *,to_char(now(), 'yyyy') AS YYYY FROM members WHERE id = %lu ", in["member_id"].Long())) { + vars2form(x, form); + form.LetStr("email", x["email"].c_str()); + form.Email("ACCOUNT/member_welcome.mailfile"); + } + return 0; } \ No newline at end of file