From e1e3f2ebdeac172530b587ed79663c86a0415376 Mon Sep 17 00:00:00 2001 From: "CHIEFSOFT\\ameye" Date: Thu, 3 Oct 2024 13:18:10 -0400 Subject: [PATCH] Pening emsil --- wrenchboard/src/shared_tool/cron_email.cc | 59 ++++++++++++++++++++++- wrenchboard/src/shared_tool/email.cc | 14 ++++-- 2 files changed, 69 insertions(+), 4 deletions(-) diff --git a/wrenchboard/src/shared_tool/cron_email.cc b/wrenchboard/src/shared_tool/cron_email.cc index 2533547f..7a805f05 100644 --- a/wrenchboard/src/shared_tool/cron_email.cc +++ b/wrenchboard/src/shared_tool/cron_email.cc @@ -13,6 +13,7 @@ void vars2form(CVars &v, C_CGI_Form &form); extern int mailsend(CVars in, CVars &out); long CronWelcomeAccountMail(CVars in); +long CronAccountPendingMail(CVars in) ; long CronJobEmail(long mailtype, CVars in, CVars &out); /* @@ -45,6 +46,32 @@ CREATE TABLE email_message( char vname[30]; long ret = PHP_API_BAD_PARAM; + + try { + out["total_record"] = "0"; + const PGresult *res; + res = pgsql_query("SELECT *, member_id AS pending_id FROM email_message WHERE topic ='WRENCHBOARD_ACCOUNT_PENDING' 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 + CronAccountPendingMail(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)"); + } + + try { out["total_record"] = "0"; const PGresult *res; @@ -98,6 +125,36 @@ CREATE TABLE email_message( return 0; } + +long CronAccountPendingMail(CVars in) //TESTED +{ + REQ_LONG(in, "pending_id", 1, -1); + CVars x; + CVars out; + C_CGI_Form form("", ""); + try{ + 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"); + form.LetStr("site_trade_name", "Connecting Opportunities"); + + if (load_db_record(x, "SELECT *,to_char(expire, 'Day Mon dd, yyyy HH:MI AM') AS expire,to_char(now(), 'yyyy') AS YYYY FROM members_pending WHERE id = %lu ", in["pending_id"].Long())) { + vars2form(x, form); + form.LetStr("email", x["email"].c_str()); + if (x["signup_random"] != "" && x["signup_random"].Long() > 0 && in["mobile_email"].Long() == 100) { + form.Email("ACCOUNT/member_pending_mobile.mailfile"); + + } else { + form.Email("ACCOUNT/member_pending_mobile.mailfile"); + } + } + } catch (bad_parameter) { + out["status"] = "ERROR"; + } + return 0; +} + long CronWelcomeAccountMail(CVars in) // TESTED { REQ_LONG(in, "member_id", 1, -1); @@ -153,7 +210,7 @@ long CronJobEmail(long mailtype, CVars in, CVars &out) { vars2form(yr, form); form.LetStr("subject", "New Job Offer Received"); form.LetStr("email", x["email"].c_str()); - form.Email("JOB/job_offer_invidual.mailfile"); + form.Email("JOB/job_offer_invidual.mailfile"); } break; diff --git a/wrenchboard/src/shared_tool/email.cc b/wrenchboard/src/shared_tool/email.cc index 9744f770..d2521044 100644 --- a/wrenchboard/src/shared_tool/email.cc +++ b/wrenchboard/src/shared_tool/email.cc @@ -1379,7 +1379,7 @@ long ManagerAccountLoginMail(CVars in) { long AccountPendingMail(CVars in) //TESTED { REQ_LONG(in, "pending_id", 1, -1); - CVars x; + CVars x,ml; CVars out; C_CGI_Form form("", ""); try{ @@ -1393,10 +1393,18 @@ long AccountPendingMail(CVars in) //TESTED vars2form(x, form); form.LetStr("email", x["email"].c_str()); if (x["signup_random"] != "" && x["signup_random"].Long() > 0 && in["mobile_email"].Long() == 100) { - form.Email("ACCOUNT/member_pending_mobile.mailfile"); + ml["action"] = WRENCHBOARD_ACCOUNT_PENDING; ml["action"].set_valid( true ); + ml["topic"] = "WRENCHBOARD_ACCOUNT_PENDING"; ml["topic"].set_valid( true ); + ml["member_id"] = in["pending_id"]; ml["member_id"].set_valid( true ); + submit_cron_email(ml); + // form.Email("ACCOUNT/member_pending_mobile.mailfile"); } else { - form.Email("ACCOUNT/member_pending_mobile.mailfile"); + ml["action"] = WRENCHBOARD_ACCOUNT_PENDING; ml["action"].set_valid( true ); + ml["topic"] = "WRENCHBOARD_ACCOUNT_PENDING"; ml["topic"].set_valid( true ); + ml["member_id"] = in["pending_id"]; ml["member_id"].set_valid( true ); + submit_cron_email(ml); + //form.Email("ACCOUNT/member_pending_mobile.mailfile"); } }